2009-06-26 7 views
7

El marco de análisis de datos ROOT comúnmente utilizado en la física de alta energía utiliza un formato de archivo binario que tiene una estructura interna como un sistema de archivos real (es decir, archivos de la carpeta &). La salida método ls() del programa semejante a lo siguiente:¿Implementando una interfaz directa en emacs para algo que no sea el sistema de archivos?

KEY: TH1D  name1 
    KEY: TH1D  name2 
    KEY: TH2D  name3 
.... 

Donde "TH1D" y "TH2D", etc., son solo tipo de objeto. Sería tan agradable navegar por el archivo en una interfaz similar a emacs. Ciertamente no tengo la energía/tiempo para escribir una interfaz directa desde cero (incluso con la ayuda de la fuente dired.el). Mi pregunta es: si es posible, ¿cómo puedo simplemente grabar en la interfaz directa reintroduciendo algunas funciones para hacer una interfaz similar a la de la salida como en el ejemplo anterior?

No espero una solución completa aquí, sino sugerencias para ejemplos, tutoriales y otra información útil.

+0

He intentado hacer cosas como esta (pestaña completa nombres de directorio ROOT). Lo molesto es que el acceso a los archivos ROOT es extremadamente pesado; tienes que inicializar el marco solo para mirar un archivo, que toma ~ 1s. Claro, funciona, pero es un poco torpe. Si almacena sus datos en otro formato (es decir, HDF5), tendrá un mejor momento. – Shep

Respuesta

3

Si es similar a un sistema de archivos, quizás podría escribir algún tipo de controlador de bucle que le permita montar el archivo de datos como un sistema de archivos, similar a la forma en que puede montar una imagen ISO como un sistema de archivos. Mi comprensión muy limitada es que esto no es algo terriblemente difícil de hacer en Linux.

+0

Sí, es muy fácil y puede usarlo para muchos propósitos diferentes. Ver fuse.http: //fuse.sourceforge.net/ – Ben

4

archive-mode o tar-mode pueden ser buenos puntos de partida.

1

xRootdfs de alguien en slac parece hacer esto ahora. "rootdFS es un sistema de archivos Posix para un clúster de almacenamiento Xrootd. Se basa en FUSE (sistema de archivos en el espacio de usuario) y se ejecuta en el espacio de usuario".

pero espero que necesite acceso de administrador para cargar el módulo FUSE.

Cuestiones relacionadas