Skip to content

Commit be0f5ee

Browse files
authored
Add page on WOZ (#9)
1 parent 7f7b01a commit be0f5ee

File tree

6 files changed

+28
-64
lines changed

6 files changed

+28
-64
lines changed

README.md

+1-59
Original file line numberDiff line numberDiff line change
@@ -6,65 +6,7 @@ This repository contains in-progress work towards GeoZarr examples. If useful, t
66
[Cloud Optimized Geospatial Formats Guide](https://github.com/cloudnativegeo/cloud-optimized-geospatial-formats-guide) or the [GeoZarr spec](https://github.com/zarr-developers/geozarr-spec)
77
repository.
88

9-
## Goals
10-
11-
- Demonstrate how to write GeoZarr compliant data.
12-
- Provide a demonstration of writing only the MUST include metadata (most importantly grid_mapping).
13-
- Provide a demonstration of writing data with a WebMercatorQuad TMS.
14-
- Provide a demonstration of writing data with a Custom TMS that maps to simple downsampled version of the raw data, without any change in extent or CRS.
15-
- Provide a demonstration of storing raw data in NetCDF and overviews in native Zarr, with a virtual GeoZarr compliant entrypoint.
16-
- Demonstrate how to read GeoZarr compliant data.
17-
- Provide a demonstration of reading in GeoZarr data with only MUST include metadata.
18-
- Provide a demonstration of reading in GeoZarr data with raw data and overviews in "native" zarr.
19-
- 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.
20-
- Demonstrate how to work with GeoZarr data in Xarray using the prototypes for flexible coordinates and the xproj extension.
21-
- Demonstrate whether the GeoZarr v0.4 and flexible coordinates solve the limitations highlighted in https://discourse.pangeo.io/t/example-which-highlights-the-limitations-of-netcdf-style-coordinates-for-large-geospatial-rasters/4140.
22-
- Demonstrate how GeoZarr would need to be adapted for Zarr specification v3.
23-
24-
## Feedback cadence
25-
26-
We will provide progress and solicit community feedback during the following events:
27-
28-
- March 05, 2025 GeoZarr Monthly Community Meeting
29-
- March 05, 2025 Pangeo Community Meeting
30-
- April 02, 2025 GeoZarr Monthly Community Meeting
31-
- April 02, 2025 Pangeo Community Meeting
32-
- April 02, 2025 posts on Pangeo and CNG forums
33-
- EGU 2025 Conference
34-
- CNG 2025 Conference
35-
36-
## FAQ
37-
38-
### What's the status of GeoZarr?
39-
40-
GeoZarr is currently being developed as a [Open Geospatial Consortium Standard](https://www.ogc.org/announcement/ogc-forms-new-geozarr-standards-working-group-to-establish-a-zarr-encoding-for-geospatial-data/).
41-
There is a [GeoZarr Standards Working Group](https://portal.ogc.org/index.php?m=public&orderby=default&tab=7) that meets once a month. We now have
42-
experimental prototypes of [all](https://github.com/pydata/xarray/pull/9543) [of](https://github.com/zarr-developers/VirtualiZarr/pull/271) [the](https://xproj.readthedocs.io/en/latest/usage.html)
43-
[pieces](https://zarr.dev/blog/zarr-python-3-release/) to move GeoZarr out of a discussion phase and into a demonstration phase. This repository stems from the hope that building demonstrations will lead to
44-
adoption, iteration, and formalization of a stable GeoZarr specification.
45-
46-
### How does Zarr Specification V3 spec influence GeoZarr?
47-
48-
The GeoZarr spec is designed for Zarr specification version 2. This repository will demonstrate how the differences between Zarr format 2 and Zarr format 3 would
49-
influence GeoZarr. My expectation is that there is not much difference in the metadata requirements between the two formats. However, best practices will likely be impacted by new features available
50-
in Zarr specification version 3 (e.g., sharding).
51-
52-
### How does the release of Zarr-Python 3 influence GeoZarr?
53-
54-
The Zarr-Python 3 release will help GeoZarr users through its increased performance, modernized codebase, and support for extensions. But, it only really interacts with the GeoZarr spec in-so-far
55-
as Zarr-Python 3 supports Zarr specification V3 (see prior question on "How does Zarr Specification V3 spec influence GeoZarr").
56-
57-
### What is the relationship between GeoZarr and Web-Optimized-Zarr?
58-
59-
Web-Optimized Zarr (WOZ) right now is just an idea. I hope that the term WOZ will promote the use of overviews in GeoZarr (which are optional in the core spec) and familiarize practitioners with the concept of storing full-resolution "archival" versions in other file formats and reduced resolution versions in "native" zarr. GeoZarr would allow a single "web-optimized" entrypoint to both via virtualization. A prototype will part of this repository.
60-
61-
Depending on initial experimentation, WOZ may involve additional restrictions on top of the GeoZarr spec such as a minimum and maximum chunk size, sharding requirements for V3 data, compression requirements, encoding requirements around, for example, fill values, and rendering metadata (e.g., min and max values).
62-
63-
## References
64-
65-
- [GeoZarr validator](https://github.com/briannapagan/geozarr-validator) by [@briannapagan](https://github.com/briannapagan) [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/)
66-
- [GeoZarr spec](https://github.com/zarr-developers/geozarr-spec) [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/)
67-
- Quarto configuration based on [Cloud Native Geospatial Formats Guide](https://github.com/cloudnativegeo/cloud-optimized-geospatial-formats-guide) and [Tile Benchmarking](https://developmentseed.org/tile-benchmarking/).
9+
More information is available in the [GeoZarr examples website](https://developmentseed.org/geozarr-examples/).
6810

6911
## License
7012

docs/_quarto.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,12 @@ website:
1515
contents:
1616
- href: index.qmd
1717
text: Home
18-
- href: diagram.qmd
18+
- href: spec-diagram.qmd
1919
text: Visual explainer
20+
- href: web-optimized-zarr.qmd
21+
text: Web-optimized Zarr (WOZ)
22+
- href: woz-diagram.qmd
23+
text: Visual WOZ comparison
2024
- href: slides.qmd
2125
text: Slides
2226
- section: Pre-requisites

docs/index.qmd

+1-3
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,7 @@ as Zarr-Python 3 supports Zarr specification V3 (see prior question on "How does
5858

5959
### What is the relationship between GeoZarr and Web-Optimized-Zarr?
6060

61-
Web-Optimized Zarr (WOZ) right now is just an idea. I hope that the term WOZ will promote the use of overviews in GeoZarr (which are optional in the core spec) and familiarize practitioners with the concept of storing full-resolution "archival" versions in other file formats and reduced resolution versions in "native" zarr. GeoZarr would allow a single "web-optimized" entrypoint to both via virtualization. A prototype will part of this repository.
62-
63-
Depending on initial experimentation, WOZ may involve additional restrictions on top of the GeoZarr spec such as a minimum and maximum chunk size, sharding requirements for V3 data, compression requirements, encoding requirements around, for example, fill values, and rendering metadata (e.g., min and max values).
61+
Please see the [web-optimized Zarr overview page](web-optimized-zarr.qmd).
6462

6563
## References/Acknowledgements
6664

Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
21
<iframe src="https://link.excalidraw.com/readonly/22k271SZdWUXq2hKxPZA" width="100%" height="100%" style="border: none;"></iframe>

docs/web-optimized-zarr.qmd

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Web-optimized Zarr
2+
3+
Web-optimized zarr provides a set of additional recommendations on top of the GeoZarr specification for optimal browser-based analysis and visualization. The specific recommendations are still
4+
under development. We anticipate the following to be included as web-optimized Zarr recommendations:
5+
6+
1. The WOZ MUST be chunked in either the spatial or temporal dimensions. The WOZ guide will include a reference to a separate document for recommended chunking schemes and compression algorithms for different use-cases, which will be updated as browsers and infrastructures change.
7+
2. The dimension order for 2-dimensional data MUST be (y, x) (or the equivalent spatial dimension names) for maximum interoperability.
8+
3. The dimension order for 3-dimensional data MUST be (time, y, x) (or the equivalent spatial dimension names) for maximum interoperability.
9+
4. The WOZ MUST include multi-scales.
10+
5. The WOZ may contain full-resolution "archival" versions in other file formats and reduced resolution versions in "native" zarr.
11+
12+
The following criteria may be included after further evaluation:
13+
14+
1. The multi-scales must align with a well-known TMS.
15+
2. The WOZ should include sharding to allow clients to request smaller individual chunks or larger shards.
16+
3. The multi-scales should contain rendering metadata (e.g., min and max values and preferred color mapping representations).
17+
18+
These recommendations will be expanded or updated after additional experimentation.
19+
20+
For a graphical depiction of how WOZ compares to GeoZarr, please see [the excalidraw diagram](woz-diagram.qmd).

docs/woz-diagram.qmd

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<iframe src="https://link.excalidraw.com/readonly/zNFS3VCbHRF6f1e3T53E" width="100%" height="100%" style="border: none;"></iframe>

0 commit comments

Comments
 (0)