Closed eldond closed 3 years ago
Okay, I gave a specific example, but it happens when combining any arrays with different lengths. That is, if I define a different number of X-points for different time-slices in equilibrium, I can't combine them:
xr = ods['equilibrium.time_slice.:.boundary.x_point.:.r']
xz = ods['equilibrium.time_slice.:.boundary.x_point.:.z']
The above sample only works if all the slices that have any X-points defined have the same number of X-points. Some slices are allowed to have totally missing X-point data and they get filled in with NaNs, which is very convenient.
Langmuir probes are allowed to have independent timing for different probes. That is, they use
langmuir_probes.embedded.:.time
, notlangmuir_probes.embedded.time
. Accessinglangmuir_probes.embedded.:.time
SOMETIMES works, and it seems that some padding with NaNs can be done to account for missing times. However, it doesn't work for varying array lengths, which are allowed in IMAS and make sense on the basis of how LPs work. It would be useful iftimes = ods['langmuir_probes.embedded.:.time']
would return a NaN padded 2D array for an ODS with varying lengths of time arrays, uneven time-bases, and missing time information for some probes (it's normal and useful to record probe physical R-Z coordinates even when they're off and have no data or time).Here are commands for filling in sample data in an ODS that won't work with
times = ods['langmuir_probes.embedded.:.time']
.