docker run --rm ghcr.io/hypertidy/gdal-system:dev sh -c "gdal mdim info /vsis3/dynamical-noaa-gefs/noaa-gefs-analysis/v0.1.2.icechunk --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-west-2 "
Driver: Icechunk
Dimensions:
docker run --rm ghcr.io/hypertidy/gdal-system:dev sh -c "gdal mdim info /vsis3/dynamical-noaa-gefs/noaa-gefs-analysis/v0.1.2.icechunk --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-west-2 "
Driver: Icechunk
Dimensions:
NOAA GEFS analysis on dynamical.org in earthmover marketplace: https://app.earthmover.io/marketplace/6970566255e09e23d5bcbbc0?tab=dataset
Open an icechunk store in gdalxarray, using the icechunk GDAL driver
# docker run --rm -ti ghcr.io/hypertidy/gdal-r-python:dev
## uv pip install gdalxarray (if docker image not updated yet)
import xarray
import os| ``` | |
| variables: | |
| float stereographic ; | |
| stereographic:missing_value = -1.e+34f ; | |
| stereographic:_FillValue = -1.e+34f ; | |
| stereographic:long_name = "Antarctic Polar Stereographic" ; | |
| stereographic:grid_mapping = "polar_stereographic" ; | |
| stereographic:standard_name = "polar_stereographic" ; | |
| stereographic:authority = "EPSG:3031" ; | |
| stereographic:latitude_of_origin = -71.f ; |
vrt = gdalxarray.warp("/vsicurl/https://projects.pawsey.org.au/idea-gebco-tif/GEBCO_2024.tif",
cutlineDSName = "/vsicurl/https://github.com/mdsumner/geoboundaries/releases/download/latest/geoBoundariesCGAZ_ADM0.parquet",
cutlineSQL = "SELECT shapeGroup FROM geoBoundariesCGAZ_ADM0 WHERE shapeGroup IN ('AUS')",
cropToCutline = True, resolution = 0.1)
ds = xarray.open_dataset(vrt, engine = "gdalxarray", multidim = False)
ds
<xarray.Dataset> Size: 858kB
Dimensions: (band: 1, y: 447, x: 947)## 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
gdal mdim info "/vsis3/earthmover-icechunk-era5/icechunkV2" --config AWS_NO_SIGN_REQUEST YES --config AWS_REGION us-east-1 | head -n 120
ERROR 6: Unsupported codec: numcodecs.pcodec
{
"type": "group",
"driver": "Icechunk",
"name": "/",
"groups": {
"500hPa": {
"groups": {from osgeo import gdal
gdal.SetConfigOption("AWS_NO_SIGN_REQUEST", "YES"); gdal.SetConfigOption("AWS_REGION", "us-west-2")
import gdalxarray
from gdalxarray import GDALBackendEntrypoint
backend = GDALBackendEntrypoint()
xds = backend.open_dataset(
"/vsis3/dynamical-ecmwf-aifs-single/ecmwf-aifs-single-forecast/v0.1.0.icechunk"
) xyll <- expand.grid(x= seq(100, 150, length.out = 15), y = seq(-70, -40, length.out = 12))
library(tissot)
ti <- tissot(xyll, "EPSG:3031")
atan2(ti$dy_dlam, ti$dx_dlam)
#> [1] -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996 -2.119329
#> [8] -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328 -2.555662
#> [15] -2.617995 -1.745330 -1.807663 -1.869996 -1.932330 -1.994663 -2.056996
#> [22] -2.119329 -2.181662 -2.243996 -2.306329 -2.368662 -2.430995 -2.493328finally, do the basic thing - this is like one line of basic generic config and code in GDAL ...
import fsspec
import xarray as xr
import zarr
pawsey_s3_config = {
"anon": True,
"client_kwargs": {f <- c("/rdsi/PUBLIC/raad/data/data.marine.copernicus.eu/SEALEVEL_GLO_PHY_L4_NRT_008_046/cmems_obs-sl_glo_phy-ssh_nrt_allsat-l4-duacs-0.25deg_P1D_202311/2022/01/nrt_global_allsat_phy_l4_20220111_20220111.nc",
"/rdsi/PUBLIC/raad/data/data.marine.copernicus.eu/SEALEVEL_GLO_PHY_L4_NRT_008_046/cmems_obs-sl_glo_phy-ssh_nrt_allsat-l4-duacs-0.25deg_P1D_202311/2022/01/nrt_global_allsat_phy_l4_20220112_20220118.nc",
"/rdsi/PUBLIC/raad/data/data.marine.copernicus.eu/SEALEVEL_GLO_PHY_L4_NRT_008_046/cmems_obs-sl_glo_phy-ssh_nrt_allsat-l4-duacs-0.25deg_P1D_202311/2022/01/nrt_global_allsat_phy_l4_20220113_20220116.nc")
fs::file_size(f)
#9.05M 7.49M 9.03M