-
Notifications
You must be signed in to change notification settings - Fork 1
notebooks: binder-runnable reader demos (hhdc_viewer, waveform_viewer) #540
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
ae00901
1b96153
347e72e
bb797b2
c0f38f8
a92d84a
dd59f40
a3bae14
ec66ce9
cf62491
20cdf48
eefbb1b
2912736
3f8919b
21da9fc
487fa7f
96f6d25
0df2d62
5ab6913
62ca510
ef5497f
4410762
5400b1d
eb7ef39
d3c26be
616fe4d
b7fd245
b9d7631
d217dc8
0d08fd0
d1372ae
7141cf4
f33fecc
06b001b
7f40f46
cbd89c9
7ebed91
e59ce04
2ff7a37
a076d57
b1b3ab1
603a6db
5933e1b
2c7fb10
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -127,27 +127,26 @@ The store path and output grid parameters are defined in the YAML config (`outpu | |
|
|
||
| ### Step 4: Visualize Results | ||
|
|
||
| The output Zarr is a public DGGS dataset. The included notebook rasterizes HEALPix cells to a polar stereographic grid for fast rendering with `imshow`. | ||
| The output Zarr is a public DGGS dataset. The included notebooks read it back anonymously — a paired 3-D view of one shard, and the cell-level GEDI × ATL03 digest join. | ||
|
|
||
| ```bash | ||
| uv run jupyter notebook notebooks/rasterized_zarr.ipynb | ||
| uv run jupyter notebook notebooks/hhdc_viewer.ipynb | ||
| ``` | ||
|
|
||
| Adjust `GRID_SPACING` in the notebook to control output resolution. | ||
|
|
||
| ## Example Notebooks | ||
|
|
||
| The notebooks under `notebooks/` run on [Binder](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks) — no install, no credentials. They install `zagg[analysis]` via the `.binder/` conda config and read only synthetic in-notebook data or the **anonymous, public** [source.coop](https://source.coop/englacial/zagg/benchmarks) benchmark store. | ||
| The notebooks under `notebooks/` run on [Binder](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks) — no install, no credentials. Both are **reader-only**: they import `mortie` + `moczarr[zagg]` and nothing from zagg itself, reading the anonymous, public [source.coop](https://source.coop/englacial/zagg) demo stores (ICESat-2 ATL03 + GEDI L1B over California and the NEON AOP sites). Each carries its own `%pip install` line, so they run outside Binder unchanged. | ||
|
|
||
| | Notebook | What it shows | Binder | | ||
| |----------|---------------|--------| | ||
| | `custom_aggregations.ipynb` | Config-driven aggregation API on synthetic data | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/custom_aggregations.ipynb) | | ||
| | `rasterized_zarr.ipynb` | Rasterize the published HEALPix store to an 8 km polar-stereo grid | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/rasterized_zarr.ipynb) | | ||
| | `jupyterhub_example.ipynb` | Drive the API from a science hub; read & visualize a published result | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/jupyterhub_example.ipynb) | | ||
| | `cryocloud_example.ipynb` | End-to-end ISMIP6 read + **AWS Lambda fan-out** on CryoCloud | **not Binder-runnable** (needs live AWS + Earthdata credentials) | | ||
| | `cost_reporting.ipynb` | Max / estimated / actual invoke cost + progress-bar dispatch wrapper | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/cost_reporting.ipynb) | | ||
| | `hhdc_viewer.ipynb` | Polygon → MOC → shard → **rotatable paired 3-D view** (ATL03 + GEDI), binned or exact → numpy tensors | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/hhdc_viewer.ipynb) | | ||
| | `waveform_viewer.ipynb` | The cell-level join: one GEDI footprint against the 2×2 ATL03 cells beneath it, both from stored digests | [](https://mybinder.org/v2/gh/englacial/zagg/main?urlpath=lab/tree/notebooks/waveform_viewer.ipynb) | | ||
|
|
||
| They share `notebooks/viewers.py`, which holds the drawing so the notebooks stay about the read path. The two are split because one needs `%matplotlib widget` for its rotatable 3-D view and the other `%matplotlib inline`; the backends collide in a single kernel. | ||
|
|
||
| **Archived notebooks.** The earlier examples (`custom_aggregations`, `rasterized_zarr`, `jupyterhub_example`, `cryocloud_example`, `cost_reporting`, `aoi_mask`, `shardmap_viewer`, `tdigest_reader_example`, `sentinel2_fusion`) were written against older APIs and had drifted out of date — stale documentation being worse than none. They are preserved on the [`claude/archive-notebooks-2026-08-26`](https://github.com/englacial/zagg/tree/claude/archive-notebooks-2026-08-26/notebooks) branch and removed from `main`. | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤖 from Claude (review) Four permanent doc links now point into a This line plus — but Two stable alternatives, either fine:
Separately: this is a scope change the PR body does not describe. The body opens "Two reader-only demo notebooks … plus the
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤖 from Claude Split this one: the link half is folded, the scope half is not mine to take and stays open. Folded (62ca510) — your first alternative, the commit permalink. All four links now resolve through
Verified
I did not create a tag; agents do not push tags here, and a Left standing — the scope point. You are right that Leaving this thread unresolved for that reason. Generated by Claude Code |
||
|
|
||
| `cryocloud_example.ipynb` is the only Lambda demo; it dispatches to a deployed AWS Lambda and reads private-account S3 via the CryoCloud IRSA role, so it cannot run on Binder. | ||
| `hhdc_viewer.ipynb` and `waveform_viewer.ipynb` are **reader-only**: they run on `mortie` + `moczarr[zagg]` with no zagg-internal imports, reading the anonymous public [source.coop](https://source.coop/englacial/zagg) demo stores (ICESat-2 ATL03 + GEDI L1B over California and the NEON AOP sites). Each carries its own `%pip install` line, so they run outside Binder unchanged. They are split in two because `hhdc_viewer` needs `%matplotlib widget` for its rotatable 3-D view and `waveform_viewer` needs `%matplotlib inline` — the two backends collide in one kernel. | ||
|
espg marked this conversation as resolved.
Outdated
espg marked this conversation as resolved.
Outdated
|
||
|
|
||
| ## Project Structure | ||
|
|
||
|
|
||
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.