Description
WRF output can easily have a couple hundred data variables in a dataset, which is not ideal for interactive exploration of a dataset's contents. With DataTree, we would have a tree-like hierarchical data structure for xarray which could be used for this.
From @lpilz in #10:
- Which diagnostics do we want to provide and do we want to expose them in a DataTree eventually?
One suggestion might be:
DataTree("root")
|-- DataNode("2d_variables")
| |-- DataArrayNode("sea_surface_temperature")
| |-- DataArrayNode("surface_temperature")
| |-- DataArrayNode("surface_air_pressure")
| |-- DataArrayNode("air_pressure_at_sea_level")
| |-- DataArrayNode("air_temperature_at_2m") (?)
| ....
|-- DataNode("3d_variables")
|-- DataArrayNode("air_temperature")
|-- DataArrayNode("air_pressure")
|-- DataArrayNode("northward_wind")
|-- DataArrayNode("eastward_wind")
....
Implementation
This would likely become a new accessor method, such as .xwrf.organize().
Tests
After xwrf.postprocess(), we have a post processed dataset (with likely many data variables). Then, after xwrf.organize(), we would have a DataTree with (a yet to be decided) tree-like grouping of data variables. Calling xwrf.organize() without xwrf.postprocess() would fail.
Questions
What form of heirarchy would we want to have and how deep?
- 2d_variables vs. 3d_variables?
- semantic grouping of variables, such as thermodynamic, grid_metrics, kinematic, accumulated, etc.?
- Parse the WRF Registry somehow and assign groups based on that?
- some other strategy?
Description
WRF output can easily have a couple hundred data variables in a dataset, which is not ideal for interactive exploration of a dataset's contents. With DataTree, we would have a tree-like hierarchical data structure for xarray which could be used for this.
From @lpilz in #10:
Implementation
This would likely become a new accessor method, such as
.xwrf.organize().Tests
After
xwrf.postprocess(), we have a post processed dataset (with likely many data variables). Then, afterxwrf.organize(), we would have a DataTree with (a yet to be decided) tree-like grouping of data variables. Callingxwrf.organize()withoutxwrf.postprocess()would fail.Questions
What form of heirarchy would we want to have and how deep?