## list the structure elements (Icechunk) gdal vsi ls "/vsis3/earthmover-icechunk-era5/icechunkV2" --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-east-1
repo
chunks
manifests
overwritten
snapshots
transactions
## list the logical (virtual) elements (Zarr)
gdal vsi ls /vsiicechunk/{/vsis3/earthmover-icechunk-era5/icechunkV2} --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-east-1
zarr.json
500hPa
pressure
single
## delve deeper:
gdal vsi ls /vsiicechunk/{/vsis3/earthmover-icechunk-era5/icechunkV2}/pressure/spatial --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-east-1
zarr.json
latitude
longitude
lsm
pressure_level
pv
q
r
status
t
u
v
valid_time
w
z
## spit out the zarr.json to virtual stdout
gdal vsi copy /vsiicechunk/{/vsis3/earthmover-icechunk-era5/icechunkV2}/pressure/spatial/pv/zarr.json /vsistdout --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-east-1
{
"shape": [
753888,
13,
721,
1440
],
"data_type": "float32",
"chunk_grid": {
"name": "regular",
"configuration": {
"chunk_shape": [
1,
1,
721,
1440
]
}
},
"chunk_key_encoding": {
"name": "default",
"configuration": {
"separator": "/"
}
},
"fill_value": "NaN",
"codecs": [
{
"name": "numcodecs.pcodec",
"configuration": {
"level": 8
}
}
],
"attributes": {
"GRIB_paramId": 60,
"GRIB_dataType": "an",
"GRIB_numberOfPoints": 1038240,
"GRIB_typeOfLevel": "isobaricInhPa",
"GRIB_stepUnits": 1,
"GRIB_stepType": "instant",
"GRIB_gridType": "regular_ll",
"GRIB_uvRelativeToGrid": 0,
"GRIB_NV": 0,
"GRIB_Nx": 1440,
"GRIB_Ny": 721,
"GRIB_cfName": "unknown",
"GRIB_cfVarName": "pv",
"GRIB_gridDefinitionDescription": "Latitude/Longitude Grid",
"GRIB_iDirectionIncrementInDegrees": 0.25,
"GRIB_iScansNegatively": 0,
"GRIB_jDirectionIncrementInDegrees": 0.25,
"GRIB_jPointsAreConsecutive": 0,
"GRIB_jScansPositively": 0,
"GRIB_latitudeOfFirstGridPointInDegrees": 90.0,
"GRIB_latitudeOfLastGridPointInDegrees": -90.0,
"GRIB_longitudeOfFirstGridPointInDegrees": 0.0,
"GRIB_longitudeOfLastGridPointInDegrees": 359.75,
"GRIB_missingValue": 3.4028234663852886e+38,
"GRIB_name": "Potential vorticity",
"GRIB_shortName": "pv",
"GRIB_totalNumber": 0,
"GRIB_units": "K m**2 kg**-1 s**-1",
"long_name": "Potential vorticity",
"units": "K m**2 kg**-1 s**-1",
"standard_name": "unknown",
"coordinates": "lsm",
"_FillValue": "AAAAAAAA+H8="
},
"dimension_names": [
"valid_time",
"pressure_level",
"latitude",
"longitude"
],
"zarr_format": 3,
"node_type": "array",
"storage_transformers": []
}0...10...20...30...40...50...60...70...80...90...100 - done.
and much more: https://github.com/rouault/gdal/blob/eaf6001c655ac2004e6c61735f6de1db83d4773e/doc/source/drivers/raster/icechunk.rst
here's a minimal example opening in gdalxarray at different levels in the tree (no datatree support yet)