Check the setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Station-level daily temperature, precipitation, snow, and weather summaries for building climate profiles and threshold-monitoring tools.
From source to product signal
NCEI Daily Summaries provide weather observations aggregated by station and day. Start with one documented station, one calendar year, and a few named data types. Missing observations and quality attributes must be inspected before a threshold count is interpreted as a climate pattern.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import pandas as pd
import requests
response = requests.get(
"https://www.ncei.noaa.gov/access/services/data/v1",
params={
"dataset": "daily-summaries",
"stations": "USW00094728",
"startDate": "2025-01-01",
"endDate": "2025-12-31",
"dataTypes": "TMAX,TMIN,PRCP",
"format": "json",
"units": "standard",
"includeAttributes": "true",
"includeStationName": "true",
},
timeout=30,
)
response.raise_for_status()
daily = pd.DataFrame(response.json())
daily["DATE"] = pd.to_datetime(daily["DATE"])
daily["TMAX"] = pd.to_numeric(daily["TMAX"], errors="coerce")
hot_days = daily[daily["TMAX"] >= 90]
hot_days = hot_days.assign(retrieved_at_utc=pd.Timestamp.now(tz="UTC"))
print(hot_days[["DATE", "TMAX", "TMAX_ATTRIBUTES"]].head(20))Test a useful signal
Count days with a maximum temperature of at least 90 degrees Fahrenheit at one station in 2025.
NOAA National Centers for Environmental Information is a government source. Last verified 2026-08-11. Temporal coverage: station-dependent historical records through recent days.