openPMD-standard
openPMD-standard copied to clipboard
Linter to fulfill VizSchema
Comparison of the openPMD standard to Tech-X's VisSchema:
Facts about VisSchema:
- very free set of namings of groups and records (can be good and bad at the same time)
- developed for visualization of various particle & mesh codes, but mainly for VORPAL
- very close to (serial) VTK/XDMF namings (can again be good and bad at the same time)
- they sometimes refer to it as a "markup language" for HDF5/NetCDF which is actually a good naming (e.g., in their composer)
- wiki, talk, IPAC2010, ICAP2009
- ADIOS (meshes only?), HDF5 & NetCDF VisIt plugins
- also a minimal kernel of required mark-ups
- provides C/Fortran/Python API (HDF5 & NetCDF? open source?)
- time: also with data sets, but allow axis of a multi-dim mesh to "represent time"
- markup-features:
- allows "time" as an axis for multi-dimensional data sets
- general section: try to capture also: compiler (version, tries to record flags...), host, cmd startup-line
- some labels (e.g., strings including non-generic units for axis)
- meshes are records that are defined and can be referenced by other records (useful abstraction for complicated geometries)
- dx, dy, ... implicit from lower and upper bounds & number of elements (for structured grids)
- derived records via groups; functions only what VisIt (better say VTK?) directly supports
- checker tool VizSchemaH5DataValidator.py open source?
- (intentionally) missing in VisSchema:
- not open source? (or only parts of it)
- out of VizSchema-scope: human-readability, documentation for archives/supplementary materials, domain-specific extensions, code-interoperability, filtered data sets (e.g., storing the same particle in multiple records)
- generally missing: a documentation that is not the wiki and not the code itself (xml descr.)? lacking parallel particle patch hints? staggered positions of components? units (besides hard-coded string labels)?
It might be actually possible to add all required "vs..." attributes out of an openPMD file.
If we find enough documentation (and if the performance is not as bad as "parallel"-xdmf reading in tools), we can add a small script that automatically adds VizSchema markdown for our records. nevertheless, for parallel reading hints like our particlePatches should lead to high(er) performance in native ParaView/VisIt implementations.