Montana Mesonet

How a sensor reading becomes a record
215 active stations · 127 HydroMet · 88 AgriMet · growing toward 290+
Precision agriculture · 88 active stations
ATMOS 41
All-in-one weather: T, RH, BP, solar, wind, rain.
TEROS 12 × 4
Soil moisture, temperature, EC at 10, 20, 50, 90 cm.
METER ZL6
Cellular logger. Samples every 10 s, reports 15-min aggregates.
Research-grade weather, water, fire, drought · 127 active stations · cameras at every site
Discrete sensor suite
Vaisala T/RH, RM Young wind (10 m), OTT Pluvio2 L, Acclima TDR-310N (5 depths), SnowVue10.
Campbell CR1000X
Datalogger. Weather 3 s, precip 1 min, soil/snow 5 min. Reports 5-min aggregates.
Bespoke station programs
AirTable metadata → Jinja2 → per-station CRBasic programs.
PTZ camera
PTZ at every site. Six views archived to S3.
Zentra Cloud
METER-hosted · pulled by MCO
Two stacks — METER and Campbell don't share a protocol
LoggerNet Server
Campbell software, MCO-hosted in Docker
fcfc-mesonet-ln.cfc.umt.edu:6789
Cyberinfrastructure
where the two paths converge
AirTable
Metadata source of truth — stations, sensors, deployments, elements. Field staff edit via spreadsheet UI.
stations · elements · component_models
deployments · component_inventory
component_elements · request_schemas · response_schemas
↓ airtable sync → PostgreSQL
PostgreSQL on-premises
600M+ obs · monthly partitioned · raw → L0 → L1
inventory observations qa_results
QA / QC
Range · step · delta · spatial. Nightly. Flags, never deletes.
mesonet-qc
mesonet-db
DB schema, R backfill, cron jobs
mesonet-db
mesonet-ln-*
LoggerNet server, CRBasic generator
mesonet-ln-*
mesonet_app
FastAPI · public API v2
mesonet_app
mesonet-aq
PurpleAir archiving
mesonet-aq
cellular API pull cellular .dat ETL REST
Keys: next · prev · Home/End · 17 jump · f full
Upload station images
AgriMet:
HydroMet:
Images stay local — never uploaded.
Saved in browser for next time.

Speaker notes

~60 seconds