Skip to content

Add support for ICON model output #2425

@fluidnumerics-joe

Description

@fluidnumerics-joe

A user has reached out on Zulip and provided a dataset for ICON model data. In exploring this output, the schema for the UxDataset is found to look like

<xarray.UxDataset> Size: 22GB
Dimensions:  (time: 1, depth: 72, depth_2: 73, n_face: 14914033)
Coordinates:
  * time     (time) datetime64[ns] 8B 1990-01-02
  * depth    (depth) float64 576B 1.0 3.1 5.45 ... 5.279e+03 5.546e+03 5.816e+03
  * depth_2  (depth_2) float64 584B 0.0 2.0 4.2 ... 5.681e+03 5.951e+03
Dimensions without coordinates: n_face
Data variables:
    to       (time, depth, n_face) float32 4GB ...
    so       (time, depth, n_face) float32 4GB ...
    u        (time, depth, n_face) float32 4GB ...
    v        (time, depth, n_face) float32 4GB ...
    w        (time, depth_2, n_face) float32 4GB ...

In contrast with FESOM2,

  • The vertical dimensions are depth (for the vertical layer centers) and depth_2 (vertical interfaces).
  • The dataset is missing the UGRID convention in the attributes; which we currently require

To provide initial support for ICON, the following changes could be made

  1. Implement a single expected dimension naming convention for the vertical grid center and interfaces. All UxDataArray objects coming into Field.__init__ would be expected to have the correct dimension names. This would require updating how we handle FESOM2 data (I personally don't like the nz1 and nz naming convention we currently have in place; it's not clear from the variable name which represents cell centers and which is at the interfaces.
  2. Relax the requirement that the UGRID convention be defined in the attributes. This would likely need to be sorted out in the UxArray project to have this attribute defined correctly
  3. Add a Fieldset.from_icon method to load ICON data from file.

Since the dataset that is provided has all face registered output, but some variables are defined vertically centered while others are at vertical interfaces, we'll need an additional built-in interpolator to support data that is face-registered and on vertical interfaces.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions