GeoZarr examples¶
Overview¶
GeoZarr examples provides examples and documentation for working with GeoZarr-compliant Zarr stores, using the modular Zarr conventions:
- spatial: - Spatial coordinate and transformation information
- proj: - Coordinate Reference System (CRS) information
- multiscales - Multiscale pyramid layout
These examples leverage the Python library geozarr-toolkit for creating and validating GeoZarr-compliant Zarr stores.
Goals¶
- Demonstrate how to write GeoZarr compliant data.
- Provide a demonstration of writing CRS information.
- Provide a demonstration of writing bounding box information.
- Provide a demonstration of writing multiscale data.
- Provide a demonstration of writing multi-scale data conforming to a specific well-known tile matrix set (TMS)
- Provide a demonstration of storing raw data in NetCDF and overviews in native Zarr, with a virtual GeoZarr compliant entrypoint.
- Demonstrate how to read GeoZarr compliant data.
- Provide a demonstration of reading in GeoZarr data with raw data in "native" zarr.
- Provide a demonstration of reading in GeoZarr data with raw data and overviews in "native" zarr.
- Provide a demonstration of reading in GeoZarr data with raw data in archival formats and overviews in "native" zarr via a single virtual GeoZarr compliant entrypoint.
- Demonstrate how to work with GeoZarr data in Xarray using flexible coordinates and the xproj extension.
- Demonstrate how to work with GeoZarr data in OpenLayers.
- Demonstrate how to work with GeoZarr data in GDAL.
Feedback cadence¶
We will provide progress and solicit community feedback during the monthly OGC SWG Meetings. Find out more at geozarr.org.
See the GeoZarr FAQ for common questions about GeoZarr.
References/Acknowledgements¶
Specifications and Standards¶
- GeoZarr spec CC BY 4.0
- CF Conventions - Climate and Forecast metadata conventions
- STAC Extensions Template - Convention documentation structure
- EOPF-Explorer Data Model - Base implementation for geo-proj and spatial conventions
- Zarr Extensions PR #21 - Original draft of conventions
Code Attribution¶
The Python convention models (Spatial, Proj, Multiscales, etc.) in this library follow patterns established in:
- eopf-geozarr - Pydantic models for GeoZarr conventions, part of the EOPF (Earth Observation Processing Framework) ecosystem
Software Libraries¶
Examples in this repository use the following open-source libraries:
- Geozarr-toolkit - Tools for creating and validating GeoZarr data (MIT License)
- Zarr - Chunked array storage format (MIT License)
- xarray - N-dimensional labeled arrays (Apache 2.0)
- rioxarray - Rasterio xarray extension (Apache 2.0)
- cf-xarray - CF conventions for xarray (Apache 2.0)
- Rasterio - Geospatial raster I/O (BSD 3-Clause)
- pyproj - Cartographic projections (MIT License)
- Affine - Affine transformation library (BSD 3-Clause)
- morecantile - Tile Matrix Set utilities (MIT License)
- rio-tiler - Rasterio plugin for COG tiles (MIT License)
- earthaccess - NASA Earthdata access (MIT License)
Tools and Validators¶
- https://inspect.geozarr.org/ - Browser based inspector and validator
- AJV - JSON Schema validator used in convention tests (MIT License)
Data¶
Example notebooks use data from:
- NASA JPL MUR-SST - Multi-scale Ultra-high Resolution Sea Surface Temperature
- Copernicus Sentinel-2 via Earth Search
Prior art¶
- GeoZarr validator by @briannapagan CC BY 4.0 - Test validator used during the development of the GeoZarr spec. Not applicable to the proposed release candidate (i.e., outdated).
License¶
Content in this repository is licensed under the MIT License.