...
An IDS can contain 0D (scalar) data or/and arrays with dimensions from 1 to 6.
As an example, let's consider the 'magnetics' IDS. It's description is given by the Data Dictionary. Here is a snapshot:
Like others IDSs, the 'magnetics' IDS contains data structures (like 'ids_properties') and array of structures (like 'flux_loop', 'bpol_probe', 'b_field_pol_probe', ...) which can contain (float, integer) data arrays with 1 to 6 dimensions, or scalars (0D).
Let's focus on the 'flux_loop' array of structures (see snapshot below). It contains an array of 'flux' structures.
Each flux structure contains a FLT_1D data array named 'data', a INT_1D array named ' 'validity_timed', a INT_0D scalar named 'validity', a FLT_1D data array named 'time'.
FLT_1D designates a 1 dimension array containing floats, INT_1D designates a 1 dimension array containing integers and INT_0D designates an integer scalar.
An IDS exposes the get() operation which reads all IDS data from an opened data_entry (see above).
When calling the get() operation on a IDS, all scalars and data arrays contained in the IDS are read. All these data are put in memory.
The code below reads an existing 'magnetics' IDS from a WEST pulse file:
...