A working archive of weather-radar and atmospheric-science Jupyter notebooks, spanning 2012–2026. It documents more than a decade of radar signal processing, field-campaign analysis, quantitative precipitation retrievals, model/satellite data workflows, and — more recently — urban environmental and air-quality sensing.
The collection is built primarily on the open-source atmospheric-science Python stack: Py-ART, MetPy, xarray, Cartopy, and ACT. It ranges from polished, reusable examples to raw experiments — the structure below separates the two so you can find the showcase pieces quickly.
Left: notebooks by topic and maturity tier. Right: activity by year (most recent commit touching each notebook).
- 201 notebooks total across six directories
- 26 featured — substantial, documented, largely runnable, showcase-worthy
- 86 solid — working and useful, lightly documented or single-purpose
- 89 works-in-progress — experiments, tests, and drafts, quarantined in
00_works_in_progress/ - Notebooks in both the current (nbformat v4) and legacy (nbformat v3 / IPython worksheets) formats are preserved as-is
The 26 most complete and instructive notebooks, grouped by topic:
- advection_interpolation/Radar_Volume_Advection_Interpolation.ipynb — Temporal interpolation of radar volumes by optical-flow advection morphing on native gate geometry (C-SAPR / MC3E)
- AGU_analysis.ipynb — Phase processing and attenuation correction using linear programming for ARM X-band radars
- Demonstration of Py-ART for the Computation Instutute .ipynb — Py-ART tutorial: radar I/O, dual-pol fields, smoothing, map display
- LP processing of PHIDP.ipynb — Linear programming phase unwrapping for differential phase PHIDP
- Quick Slice.ipynb — Quick 2D slicing and visualization of NEXRAD radar data for rapid laptop exploration
- nexrad_echo_area_timeseries.ipynb — Compute 24-hour NEXRAD echo-area timeseries above reflectivity threshold
- xarray pyart integration.ipynb — Fetch NEXRAD from AWS, grid with Py-ART, visualize with xarray and MetPy
- DYNAMO AIME workshop workbook.ipynb — DYNAMO field campaign radar processing and VAD wind retrieval workbook
- Image segmentation.ipynb — Image segmentation analysis of MC3E C-SAPR radar rainfall fields
- Tracking for ERAD.ipynb — Image segmentation and object tracking on C-SAPR radar rain rates from MC3E campaign
- Tracking-Manus.ipynb — Image segmentation and rainfall object tracking on ARM C-SAPR radar data using watershed algorithm
- Tracking.ipynb — Image segmentation and object tracking on MC3E C-SAPR radar rainfall data
- sgp_goes_nexrad.ipynb — Fetch NEXRAD from AWS, grid with ISCCP satellite data over SGP site
- CAPE_k_cloud_phase_case_study.ipynb — ARM CAPE-k cloud-phase (THERMOCLDPHASE) + AERI (TROPoe) Southern Ocean mixed-phase case at Kennaook/Cape Grim, Tasmania
- U-Bonn-reduced.ipynb — Retrieves propagation and backscatter differential phase from X-Band radar
- 04_models_satellite_gridded/EarthCARE_ARM_SGP_Overpass_Lidar.ipynb — EarthCARE ATLID overpass of ARM SGP with cal/val against ground-based lidars (Doppler, HSRL, MPL, ceilometer/CL61)
- HRRR_CAPE_SREH_Chicagoland.ipynb — HRRR severe-weather analysis: CAPE, SRH, soundings over Chicagoland
- HRRR_Smoke_Forecast_Animation.ipynb — HRRR-Smoke forecast animation with AirNow PM₂.₅ observations overlay
- Herbie_Clouds_Example.ipynb — Downloads HRRR cloud/meteorology forecasts via Herbie, extracts Chicago column profiles
- NWSAPI.ipynb — Query NWS API, fetch alert zones, visualize warnings on Cartopy map
- totallynormal.ipynb — Compares climate normals between Bend and Mt Bachelor using NOAA gridded data
- Boston Snow Retrieval.ipynb — Retrieves snowfall rates from WSR-88D radar using Z-S relations
- Historic_Smoke_AirNow.ipynb — Ranks July 2026 Chicago wildfire smoke against 16 years of AirNow PM2.5 observations
- Wildfire_Smoke_AirNow.ipynb — Maps wildfire smoke PM2.5 across US/Canada using AirNow API and ACT visualization
- Wildfire_Smoke_Source_to_City.ipynb — Traces Canadian wildfire smoke to US cities via HMS, AirNow, HRRR wind fields.
- boston.ipynb — Boston radar reflectivity mapping and recent-time radar retrieval workflow
| Directory | Notebooks | Focus |
|---|---|---|
00_works_in_progress/ |
71 | Experiments, tests, scratch analyses, and abandoned drafts. Kept for provenance and the occasional reusable snippet, but not polished. Expect broken cells, hard-coded paths, and half-finished ideas. |
01_radar_processing_qc/ |
45 | Dealiasing, differential-phase (PHIDP/KDP) processing, attenuation correction, CMAC, gridding, gate filtering, dual-pol corrections, and radar I/O — the core Py-ART processing chain. |
02_case_studies/ |
27 | Analyses tied to a specific storm, event, location, or field campaign — hurricanes, tornadoes, hail, and campaigns such as TWP-ICE, DYNAMO, MC3E, and CACTI. |
03_retrievals_microphysics/ |
11 | Quantitative retrievals: T-matrix scattering, self-consistency, drop-size distributions, disdrometer analysis, rainfall/QPE estimation, and path-integrated attenuation. |
04_models_satellite_gridded/ |
10 | Working with HRRR, GOES, Herbie, GRIB/ZARR, reanalysis, NWP output, satellite imagery, and gridded product workflows — including the NWS API. |
05_environmental_airquality_urban/ |
37 | AirNow/smoke air-quality analysis, the CROCUS urban testbed, WXT weather stations, SAGE/ambient IoT sensors, lidar/ceilometers, and other non-radar in-situ sensing. |
Each directory has its own README.md index with a full table of its notebooks, descriptions, maturity status, and dates. Self-contained project folders (e.g. CROCUS/, canned_sapr_investigations/, tracer/, nexrad/, scipy2014/, UBonn/, urban/, gap_anal/) were moved as units into their best-fit category so their internal data and relative paths remain intact.
Most-used scientific libraries across the collection:
| Library | Notebooks | Role |
|---|---|---|
pyart |
143 | Radar I/O, gridding, dual-pol processing |
xarray |
55 | Labeled N-D arrays |
cartopy |
48 | Geographic mapping |
metpy |
27 | Meteorological calculations |
netCDF4 |
79 | NetCDF file I/O |
pandas |
43 | Tabular / time-series data |
scipy |
39 | Signal processing & optimization |
act |
13 | ARM/atmospheric data toolkit |
sage_data_client |
19 | CROCUS / SAGE sensor data |
herbie |
5 | HRRR/NWP model retrieval |
xmovie |
8 | Animated xarray fields |
pytmatrix |
7 | T-matrix scattering |
nexradaws |
8 | NEXRAD AWS access |
Every notebook was parsed and profiled — documentation depth, code volume, fraction of cells executed, presence of figures, error states, imports, and git history — and its content was read to assign a topical category and a maturity tier. The two signals (quantitative profile + content read) were combined into the featured / solid / work-in-progress tiers used throughout. The complete machine-readable index, including per-notebook descriptions and metrics, is in notebook_inventory.csv.
Note on descriptions and tiers: the one-line descriptions and maturity labels are automated assessments meant to aid navigation, not authoritative summaries. Corrections welcome.
Author: Scott Collis. Collection restructured and indexed with assistance from Claude (Anthropic).
