Skip to content

Notebooks

Interactive marimo notebooks covering the full canVODpy pipeline — from raw GNSS file reading to vegetation optical depth retrieval, versioned storage, and visualisation.


Browser preview

Each notebook can be previewed read-only in molab:

Not runnable in the browser

canVODpy depends on native C extensions (icechunk, NumPy, xarray) that cannot compile to WebAssembly. The browser previews are read-only — the code is visible and navigable, but cells will not execute. To run the notebooks interactively, see Run locally below.

Pipeline notebooks

# Notebook Topic Preview
00 Speedrun — Full Pipeline Raw GNSS files → VOD in five cells molab
01 Naming Convention & Validation IGS/RINEX filename parsing and validation molab
02 RINEX v3 Observation Reading RINEX v3.04 → xarray.Dataset molab
03 Satellite Catalog IGS SatelliteCatalog — PRN metadata molab
04 SBF Binary Reading Septentrio binary file reading molab
05 Ephemeris & Coordinate Augmentation SP3/CLK augmentation, ECEF → spherical molab
06 Hemispheric Grids Equal-area, equal-angle, geodesic, Fibonacci molab
07 VOD Retrieval Tau-Omega radiative transfer model molab
08 Icechunk Store Versioned Icechunk/Zarr storage molab
09 Store Metadata & FAIR Compliance DataCite/ACDD/STAC provenance molab
10 Visualization 2D/3D hemispheric plots molab
11 Configuration & Utilities Pydantic configuration models molab

API notebooks

# Notebook Topic Preview
12 API Levels Overview Four API levels side by side molab
13 L1 — Convenience API One-liner process_date() molab
14 L2 — Fluent Workflow FluentWorkflow().read().augment().grid().vod() molab
15 L3 — Site Pipeline Site().pipeline().process_range() molab
16 L4 — Functional API Pure functions for custom pipelines molab

Workflow notebooks

# Notebook Topic Preview
17 Single-Day Workflow End-to-end single-day processing molab
18 Batch Processing Multi-day processing with Dask molab
19 Store Operations Store read/write/branch operations molab
20 Grid Exploration Interactive hemispheric grid explorer molab

Run locally

To run the notebooks interactively, clone (or fork) canvodpy-demo and install uv.

1. Clone

git clone https://github.com/nfb2021/canvodpy-demo.git
cd canvodpy-demo

2. Run a notebook

Each notebook declares its own dependencies via a PEP 723 header. uv resolves and installs them automatically on first run — no uv sync or manual setup required.

# Interactive editing
uv run marimo edit 07_vod_retrieval.py

# Read-only app mode
uv run marimo run 07_vod_retrieval.py

3. Test data

Notebooks that read GNSS data download the test dataset (~1.7 GB) automatically from Zenodo on first run and cache it at ~/.cache/canvodpy/. Subsequent runs are instant.

To use a local copy instead, clone the test data into test_data/:

git clone https://github.com/nfb2021/canvodpy-test-data.git test_data

_paths.py detects this directory automatically and skips the Zenodo download.