Observations
Read archived station reports and current METAR with the same measurement fields.
Fetch historical reports, current observations, forecast models, official daily summaries, and station-level satellite measurements. Every row keeps its units, timestamps, and source.
from mostlyright import weather rows = weather.observations( "KNYC", "2025-01-06", "2025-01-07" ) rows[["event_time_utc", "temp_c", "source"]].tail(1) # event_time_utc temp_c source # 2025-01-07 23:51+00:00 -1.1 ghcnh
Use one API for archived observations, current reports, model forecasts, daily summaries, and satellite measurements.
Read archived station reports and current METAR with the same measurement fields.
Compare station and gridded models with run time and target time attached.
Add cloud, temperature, aerosol, and radiation measurements.
Your code receives descriptive fields, documented units, explicit timestamps, and source identity.
temp_c, cloud_height_m, and pixel_value.event_time_utc states when it applies; knowledge_time_utc states when it became available.Query a station for cloud, surface-temperature, aerosol, and radiation measurements from NOAA, JMA, and EUMETSAT. Product, unit, scan time, and source stay on every row.
from datetime import datetime, timezone from mostlyright import weather pixels = weather.satellite( "KNYC", satellite="goes19", product="ABI-L2-ACMC", from_time=datetime(2026, 7, 1, tzinfo=timezone.utc), to_time=datetime(2026, 7, 2, tzinfo=timezone.utc), ) # one station pixel per variable and scan
Choose the station and data type. Receive named columns with units, timestamps, and source fields attached.
Start with a weather station or the place you need to model.
Request observations, forecasts, daily summaries, or satellite measurements.
Receive consistent fields with units, timestamps, and sources attached.