Improve .NSX data format
-
Add a version to the file, in the root attributes. This version specifies the data definition and changes very slowly whenever the definition of the data format changes. This helps to keep backward compatibility when the data definition changes. See Merge Request !278 (merged)
-
Merge 'Info' and 'Meta' groups. Currently 'Info' stores string-typed metadata while 'Meta' stores the metadata of integer and float64 types. There seems to be no need to keep these metadata in different groups. See Merge Request !278 (merged)
-
Use a uniform metadata structure for all sections. Currently, PeakCollections
has a specific metadata of typemap<string, float>
whileDataCollections
uses theMetaData
class to represent its metadata (essentially,map<string, variant<string, double, int>>
).See Merge Request !278 (merged)
-
A better H5::DataSpace
(= shape) forPeakCollections/Metric
dataset is(nr-of-peaks * 9)
, instead of(nr-of-peaks * 3, 3)
.Metric
is a 3x3 row-major matrix which can be stored in an array of size 9. -
Avoid costly copies of detector images during conversion from a column-major to a row-major alignment.