2009-06-26 10 views
7

Il framework di analisi dei dati ROOT comunemente utilizzato nella fisica delle alte energie utilizza un formato di file binario che ha una struttura interna simile a un file system reale (ovvero i file della cartella &). Il metodo di uscita LS() dal programma sembra qualcosa di simile:Implementare un'interfaccia dired in emacs per qualcosa di diverso dal filesystem?

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

Dove "TH1D" e "TH2D", ecc sono solo tipo di oggetto. Sarebbe così bello sfogliare il file in un'interfaccia simile a quella di emacs. Certamente non ho l'energia/tempo per scrivere un'interfaccia dired per questo da zero (anche con l'aiuto del sorgente dired.el). La mia domanda è: se possibile, come posso semplicemente registrare l'interfaccia dired ri-implementando alcune funzioni per creare un'interfaccia simile a quella diretta per l'output come sopra?

Non mi aspetto certo una soluzione completa qui, ma piuttosto degli esempi, tutorial e altre informazioni utili.

+0

Ho provato a fare cose del genere (tab completa i nomi delle directory ROOT). La cosa fastidiosa è che l'accesso ai file ROOT è estremamente pesante; devi inizializzare il framework solo per guardare un file, che richiede ~ 1 s. Certo, funziona, ma è un po 'goffo. Se memorizzi i tuoi dati in un altro formato (ad esempio HDF5) avrai un tempo migliore. – Shep

risposta

3

Se è abbastanza simile a un filesystem, forse potresti scrivere un po 'di driver di loopback che in realtà ti permette di montare il file di dati come un filesystem, in modo simile al modo in cui puoi montare un'immagine ISO come un filesystem. La mia comprensione molto limitata è che questa non è una cosa terribilmente difficile da fare sotto Linux.

+0

Sì, è molto semplice e puoi usarlo per molti scopi diversi. Vedi fuse.http: //fuse.sourceforge.net/ – Ben

4

archive-mode o tar-mode potrebbero essere buoni punti di partenza.

1

xRootdfs da qualcuno in Slac sembra farlo ora. "rootdFS è un file system Posix per un cluster di archiviazione Xrootd, basato su FUSE (Filesystem in Userspace) e eseguito nello spazio utente."

ma mi aspetto che sia necessario l'accesso root per caricare il modulo FUSE.

Problemi correlati