TRANSP CDF Compatibility - metxchris/TRANSVIZ GitHub Wiki
Note: TRANSVIZ does not work with every different type of TRANSP CDF output.
TRANSVIZ has been optimized specifically for use with DII-D/NSTX TRANSP output format. Variables of Datatype 'single' (standard variables) are formatted using the following tree-structure (within finfo):
- Variables (1xN struct)
- Name (string)
- Dimensions (1x1 or 1x2 struct)
- Name (string)
- Length (double)
- Unlimited (boolean)
- Size (double)
- Datatype (string)
- Attributes (1x2 struct)
- Name (string)
- Value (string)
Because of this specific data structuring, TRANSVIZ will produce errors for any TRANSP CDF that does not mirror this tree format.
Otherwise, variables of Datatype 'int8' (pointers), follow nearly the same tree-layout as above, except that the Attributes element is a 1x3 struct with the additional child-element 'Fct_Ids'.
In terms of balancing compatibility versus speed, the function that loads single variables could be rewritten using more general data extraction methods, but the variable and pointer lists would suffer greatly without the optimizations that have been applied. Since it didn't make sense to write a program that only half-worked for arbitrary CDF formats, we decided to apply optimizations to both cases and focus our support on the DIII-D/NSTX tree structure. Alternatively, it would be very straight-forward to modify TRANSVIZ to work with other data-tree formats.