Old_specs_bert - softwareunderground/xsdf GitHub Wiki
(this is a document I made a couple of years ago. It summarizes a lot of aspects that I think will become important when you want to make 'the true alternative'. A seismic data storage library that would be able to take the role that formats like PNG have nowadays. Open and used by everyone because use is easy, fast and free. I personally feel that the available solutions today - which have been there for some time already - did not succeed because they failed to handle all aspects that count)
General requirements
- Project on github
- Everything available through git/svn on github
- Release under e.g. LGPL: anything goes as long as you do not hijack it
- Will not use anything proprietary above OS level
- Minimize dependencies
- Internationalisation-prepared from day 1
- Support SEG-Y Rev.1 in/out, Rev.0 in
- The project focuses on storage and exchange of seismic data
General design
- Core library covers minimal set
- All I/O as adapters (enabling 'in-place' usage)
- Flat file hi performance implementation available
Release components
- Cross-platform language delivers interfaces for different target languages
- libs/DLLs/jars etc. for different platforms
- Tools (in-browser, loose) available on all target platforms
- Docs internationalized
- Target platforms: as many as possible
- Starting with Windows/Linux/Mac
- Android please
- Versioning
- strong versioning
- few releases
- even fewer interface changes (once released)
Data model
- Handling of position identification
- Centralized semantic key repository
- For headers at different levels
- For semi-free format comments on different levels
Programmer access
- Quick access to header values on different levels
- Rich access possibilities to seismic data
- Full random access
- Virtual subsets
- Random trace, slice
- Ranged subsets (subcubes, line parts)
- Polylines
- Different ways to start writing
- Start with one trace
- Start with known parameters
- In-place editing
Data storage native format
- Database-style modification
- support 'staged for commit'
- write-locking mechanism when editing
- Bricking supported
- Compression if feasible
- Full backward compatibility guaranteed
Tools
- GUI Tool to read (legacy) SEG-Y
- Indicate keys (inl/crl, X/Y, tracenr/cdp/SP)
- Add missing data
- Make sure all harvested header data can be kept available
- Browser tools for view and edit
- Headers
- Sections (View only)
- Specific data parts (Edit)