# [Greenline] IO Prototype <!-- Add the tag for the current cycle number in the top bar --> - Shaped by: - Appetite (FTEs, weeks): - Developers: <!-- Filled in at the betting table unless someone is specifically required here --> ## Problem <!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this --> Finish and clean up left overs from last cycle. Requirements for IO POC are defined in this [document](#IO). Functionality recap: Design `IOMonitor`: that can be configured to write fields at configured time intervals to output files. The Monitor decides based on configuration what fields from the state it needs to pick. - Output is NetCDF4. The monitor also re-writes the gridfile into a UGRID extended version. Datafiles are such that they can be loaded together with the UGRID-file - Currently due to a lack of a complete *model state* (including all meta data) only prognostic fields are available. Output fields are 3D with on model levels on the unstructured grid, no regridding. ## Appetite <!-- Explain how much time we want to spend and how that constrains the solution --> Several components of the task were explored in the last cycle an need to be combined and tested properly. ## Solution <!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand --> Steps to be completed: [#IO](https://hackmd.io/U202TVPoQveNej2xMbtUMw) see below ## Rabbit holes <!-- Details about the solution worth calling out to avoid problems --> ## No-gos <!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the ## appetite or make the problem tractable --> ## Progress <!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. --> - [x] Task 1 ([PR#451](https://github.com/C2SM/icon4py/pull/451) - [x] contigurable field groups - [x] write ugrid file - [x] write data files - [x] Netcdf (need netcdf4-python directly) - [x] CF convention like - [x] support for half level fields - [ ] add physical height dimension (vct_a for now)? - [x] allow for rolling files per group _1.nc,, _2.nc - [ ] Documentation - [ ] how to use? - [x] Test - [x] improve test coverage - [x] integration test: check whether output is readable with uxarray