-
Notifications
You must be signed in to change notification settings - Fork 14
Epic: Zarr support #166
Description
- refactor!: Generalize tile traversal interface #391
- Finish refactor to generalize tile traversal #392, refactor(deck.gl-raster)!: Finish generalizing tile traversal #394
- Create @developmentseed/geozarr package #393
- Find simplest geozarr dataset; maybe eopf sentinel TCI?
The @developmentseed/deck.gl-raster subpackage defines RasterTileset2D. This is a generic description of a (potentially but not necessarily) multi-resolution set of image tiles.
This was designed to extend naturally to Zarr data as well.
For COGs we have the function
deck.gl-raster/packages/deck.gl-geotiff/src/cog-tile-matrix-set.ts
Lines 23 to 26 in 790b5f5
| export async function parseCOGTileMatrixSet( | |
| tiff: GeoTIFF, | |
| geoKeysParser: GeoKeysParser, | |
| ): Promise<TileMatrixSet> { |
that parses GeoTIFF metadata and constructs the
TileMatrixSet, a generic representation of the tile layout that we can pass into RasterTileset2D.
We'll need to do something similar for Zarr data. That is, we'll need to construct the Zarr tile layout based on Zarr metadata. Something like parseZarrMetadataToTileMatrixSet. This is something I don't know exactly how to do. It may be something that we want to be user-customizeable. But it would be nice to have defaults for GeoZarr (if it's stable? Maybe @maxrjones has some input there?). Alternatively, we can look for common named strings like lat/lon/latitude/longitude and infer the grid from those attributes.
We should support ndpyramid-based Zarr tile grids out of the box, and when stable the new Zarr multi-resolution extension.
I want to use Zarrita as the Zarr data loader here.