Load EOPF multiscale HEALPix stores; drop EGI DataHub auth#1
Open
annefou wants to merge 4 commits into
Open
Conversation
- Drive v3 indexing from the ROOT consolidated metadata for EOPF-style stores, where consolidated metadata lives only at the .zarr root and the level groups (under a multiscales group) have none. Find the multiscales group, enumerate the finest level's variables + cell_ids from the root tree, and build the index with store=<root> + dataset=<level path>. - Resolve multiscales layout 'asset' paths against the .zarr root (they are root-relative), fixing the path-doubling that produced 404s and 'could not determine grid type'. - Remove EGI DataHub token auth: createFetchStore now returns a plain FetchStore; drop setAuthToken and the token URL param in HashGlobeView. Enables loading e.g. data.grid4earth.eu/sentinel-2-l2a/<product>.zarr directly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- gridTypeDetector: recognise HEALPix from the grid group's 'dggs' attribute (dggs.name == 'healpix'), not only a CF grid_mapping_name CRS variable. - Healpix.vue getHealpixCRSInfo: derive nside from dggs.refinement_level (nside = 2**level) and the ellipsoid from dggs.ellipsoid, falling back to the CF crs variable when present. - sourceIndexing (EOPF index): set datasource/grid/time store to the level-group URL with dataset="", so the multiscales LOD (rewriteDatasourcesUrl swaps the store per level) resolves variables at <level>/<var> instead of doubling the path. Verified: data.grid4earth.eu Sentinel-2 L2A EOPF store renders in the viewer. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
✅ Verified working: the Sentinel-2 L2A EOPF store at |
…ings) Extract checkDggsHealpix, findMultiscalesLayout, and readDggsCrsInfo so getGridType, buildEopfMultiscalesIndex and getHealpixCRSInfo stay under max-lines-per-function; apply prettier formatting. No behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Revert before/after merge (this branch should not stay in the deploy trigger). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goal: visualise a GRID4EARTH EOPF store directly, e.g.
https://data.grid4earth.eu/sentinel-2-l2a/S2B_MSIL2A_20250522T105619_N0511_R094_20250522T121018.zarrWhy it didn't load before
That store is Zarr v3 with consolidated metadata only at the
.zarrroot. A subgroup (measurements/reflectance) carries amultiscaleslayout whoseassetpaths are root-relative ("measurements/reflectance/20"), and each level group holds the bands +cell_idsbut has no consolidated metadata of its own.The existing v3 path (a) recursed into level subgroups expecting per-group metadata (none there), and (b) resolved
assetasbaseUrl + "/" + asset, doubling the path (…/measurements/reflectance/measurements/reflectance/20/…→ 404 → "could not determine grid type").Changes
buildEopfMultiscalesIndex): when consolidated metadata is present at the root, find themultiscalesgroup, enumerate the finest level's variables +cell_idsfrom the root tree, and build the index withstore=<root>+dataset=<level path>(no recursion into metadata-less level groups).cell_idsis marked hidden..zarrroot (zarrRoot()), fixing the path-doubling for both initial indexing and LOD switching (baseUrlis now the root).createFetchStorereturns a plainFetchStore; droppedsetAuthToken/getAuthTokenand thetokenURL param inHashGlobeView. Datasets are expected to be public + CORS-enabled.Testing
npm run build(vue-tsc + vite) passes.🤖 Generated with Claude Code