Skip to content

Representation of dimension/variable auxiliary coordinates #33

@fmigneault

Description

@fmigneault

The Variable Object mentions how to represent data variables vs auxiliary variables containing coordinates (e.g.: lat variable derived from dimensions (y, x)). In this case, auxiliary makes a lot of sense because it depends on multiple dimensions.

However, another common occurrence in NetCDF files is to have 1:1 dimension/variable mappings in order to list the value instances composing that dimension, as shown below through time, rlat and rlon.

>>> data
<xarray.Dataset> Size: 197MB
Dimensions:         (time: 13, rlat: 1290, rlon: 2540)
Coordinates:
  * time            (time) datetime64[ns] 104B 2024-01-01 ... 2024-01-01T12:0...
  * rlat            (rlat) float32 5kB -12.3 -12.28 -12.26 ... 16.66 16.68 16.7
  * rlon            (rlon) float32 10kB -14.82 -14.8 -14.78 ... 42.28 42.31
    lon             (rlat, rlon) float32 13MB ...
    lat             (rlat, rlon) float32 13MB ...
Data variables:
    rotated_pole    float32 4B ...
    HRDPS_P_PR_SFC  (time, rlat, rlon) float32 170MB ...
Attributes:
    Remarks:                         Variable names are following the convent...
    License:                         These data are provided by the Canadian ...
    product:                         HRDPS
    Conventions:                     CF-1.6
    DODS_EXTRA.Unlimited_Dimension:  time

It is not clear whether from the extension's description if those should also be considered auxiliary variables or not (omitting them in favour of cube:dimensions). Notably, the Dimension Object provides extent/bbox, values and step properties to describe these values, and it could seem confusing for users to have "duplicate" entries between cube:variables and cube:dimensions.

STAC examples using this extension seem to omit these 1:1 variable cases. Is that the expectation, or should it still to the actual metadata of the NetCDF?

In a similar fashion, would all those dimensions/variables be potential candidates for presentation by cf:paramter, or does it limit itself to only data variables?

Reference: crim-ca/stac-populator#114 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions