Skip to content

🌦️ weather

U.S. weather and climate data from NWS (weather.gov), NOAA Climate Data Online (CDO v2), and NOAA bulk observation feeds. NWS tables provide weather station metadata and active severe weather alerts by state (no auth required). CDO tables provide historical monthly and annual climate summaries (GSOM/GSOY) with temperature, precipitation, and snowfall metrics (requires NOAA_CDO_TOKEN). All state-level tables join with geo.states via state_abbr or state_fips; county-grain tables join geo.counties via county_fips. (EPA AQS air-quality data now lives in the environment schema.)

12 datasets · 111 columns

weather_daily_by_county · table

Pre-aggregated county-level daily weather derived from ghcnd_daily joined to ghcnd_stations_with_county. One row per county per day. Simple mean of all reporting stations in the county. Primary join anchor for cross-schema research: join on county_fips + date to correlate with SEC filings, BLS wages, FEC contributions, census demographics, and health data.

View — columns are resolved by the query engine at runtime.

nws_stations · table

NWS weather station metadata from weather.gov. Includes station ID, name, coordinates, elevation, timezone, and zone IDs. One row per station. Cross-references geo.states via state_abbr. No authentication required.

Column Type Null Description
station_id string no NWS station ID (e.g., 'KORD')
station_name string yes Station name
state_abbr string no 2-letter state abbreviation (e.g., 'CA')
latitude double yes Station latitude
longitude double yes Station longitude
elevation_m double yes Elevation in meters
timezone string yes IANA timezone (e.g., 'America/Chicago')
forecast_zone string yes NWS forecast zone ID
county_zone string yes NWS county zone ID

nws_alerts · table

NWS active weather alerts from weather.gov. Includes alert type, severity, certainty, urgency, and temporal bounds. Snapshot of current alerts per state. Cross-references geo.states via state_abbr. No authentication required.

Column Type Null Description
alert_id string no NWS alert identifier
state_abbr string no 2-letter state abbreviation (e.g., 'CA')
event string yes Event type (e.g., 'Tornado Warning')
severity string yes Extreme, Severe, Moderate, Minor, Unknown
certainty string yes Observed, Likely, Possible, Unlikely
urgency string yes Immediate, Expected, Future, Past
headline string yes Alert headline
description string yes Full description
onset string yes ISO datetime of onset
expires string yes ISO datetime of expiration
sender_name string yes Issuing office
affected_zones string yes Comma-separated zone IDs

cdo_stations · table

NOAA CDO weather station metadata. Includes GHCND station ID, name, coordinates, elevation, data coverage dates, and coverage fraction. One row per station. Cross-references geo.states via state_fips. Requires NOAA_CDO_TOKEN environment variable.

Column Type Null Description
station_id string no CDO station ID (e.g., 'GHCND:USW00094846', 'COOP:110050')
station_name string yes Station name
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
latitude double yes Station latitude
longitude double yes Station longitude
elevation double yes Elevation (nullable)
min_date string yes Earliest data available (ISO date)
max_date string yes Most recent data available (ISO date)
datacoverage double yes Coverage fraction 0-1

cdo_monthly_summaries · table

NOAA CDO Global Summary of the Month (GSOM) data. Includes temperature (TAVG, TMAX, TMIN), precipitation (PRCP), snowfall (SNOW), and other monthly climate metrics per station. One row per station+month+datatype. Cross-references geo.states via state_fips and cdo_stations via station_id. Requires NOAA_CDO_TOKEN environment variable.

Column Type Null Description
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
station_id string yes CDO station ID
year integer no Calendar year
month integer yes Month (1-12)
datatype string yes Measurement type (TAVG, TMAX, TMIN, PRCP, SNOW, etc.)
value double yes Value in standard units
attributes string yes Quality flags
date string yes ISO date of measurement period

cdo_annual_summaries · table

NOAA CDO Global Summary of the Year (GSOY) data. Includes annual temperature, precipitation, and other climate metrics per station. One row per station+datatype+year. Cross-references geo.states via state_fips and cdo_stations via station_id. Requires NOAA_CDO_TOKEN environment variable.

Column Type Null Description
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
station_id string yes CDO station ID
year integer no Calendar year
datatype string yes Measurement type
value double yes Value in standard units
attributes string yes Quality flags
date string yes ISO date

ghcnd_stations_with_county · table

NOAA GHCN-Daily station inventory enriched with county_fips via nearest Census county centroid assignment. One row per US station. Prerequisite for all cross-schema joins using ghcnd_daily and weather_daily_by_county. No auth needed. county_fips is assigned by nearest Euclidean distance to Census TIGER county centroids. state_fips is derived from the 2-letter state code in the station file. data_start_year and data_end_year come from ghcnd-inventory.txt.

Column Type Null Description
station_id string no GHCND station ID (e.g., 'USW00094846')
station_name string yes Station name
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
county_fips string yes 5-digit county FIPS (nearest Census county centroid)
latitude double yes Station latitude
longitude double yes Station longitude
elevation_m double yes Elevation in meters
data_start_year integer yes First year of observations (from ghcnd-inventory.txt)
data_end_year integer yes Most recent year of observations (from ghcnd-inventory.txt)
distance_to_county_centroid_km double yes Distance used for nearest-county centroid assignment

ghcnd_daily · table

NOAA GHCN-Daily station observations from NCEI annual bulk files (https://www.ncei.noaa.gov/pub/data/ghcn/daily/by_year/YYYY.csv.gz). One row per station per day. Wide-format with daily temperature, precipitation, snow, and wind in metric units (°C, mm, m/s). Q_FLAG-filtered (only rows that passed all NCEI quality checks are included). Cross-references ghcnd_stations_with_county via station_id for county_fips joins. No auth needed.

Column Type Null Description
station_id string no GHCND station ID (e.g., 'USW00094846')
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
date string no Observation date (ISO format YYYY-MM-DD)
year integer no Calendar year
month string no 2-digit month (01-12), derived from date
tmax_c double yes Maximum temperature in °C (NCEI TMAX, tenths-of-°C ÷ 10)
tmin_c double yes Minimum temperature in °C (NCEI TMIN, tenths-of-°C ÷ 10)
tavg_c double yes Average temperature in °C (NCEI TAVG, tenths-of-°C ÷ 10)
prcp_mm double yes Precipitation in mm (NCEI PRCP, tenths-of-mm ÷ 10)
snow_mm double yes Snowfall in mm (NCEI SNOW, native mm)
snwd_mm double yes Snow depth in mm (NCEI SNWD, native mm)
awnd_ms double yes Average wind speed in m/s (NCEI AWND, tenths-of-m/s ÷ 10)
tmax_flag string yes Measurement flag for tmax
tmin_flag string yes Measurement flag for tmin
prcp_flag string yes Measurement flag for prcp

drought_monitor_weekly · table

National Drought Monitor weekly county-level drought severity from the USDM API at droughtmonitor.unl.edu. Covers all US counties since 2000. Includes D0-D4 drought category percentages (exclusive area fractions) and the Drought Severity and Coverage Index (DSCI, range 0-500). week_date is the Tuesday release date. Cross-references geo.counties via county_fips and geo.states via state_abbr. No authentication required.

Column Type Null Description
county_fips string no 5-digit county FIPS code
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
state_abbr string no 2-letter state abbreviation (e.g., 'CA')
county_name string yes County name
year integer no Calendar year
week_date string no Tuesday release date of the drought report (YYYY-MM-DD)
valid_start string yes Start date of the drought week period (YYYY-MM-DD)
valid_end string yes End date of the drought week period (YYYY-MM-DD)
none_pct double yes % of county area with no drought
d0_pct double yes % Abnormally Dry (exclusive D0 only)
d1_pct double yes % Moderate Drought (exclusive D1 only)
d2_pct double yes % Severe Drought (exclusive D2 only)
d3_pct double yes % Extreme Drought (exclusive D3 only)
d4_pct double yes % Exceptional Drought (exclusive D4)
dsci double yes Drought Severity and Coverage Index (0-500, sum of cumulative D0+D1+D2+D3+D4)

hms_smoke_daily · table

NOAA Hazard Mapping System (HMS) satellite smoke detection aggregated to county level. Daily smoke coverage by density category (light/medium/heavy). Available 2005-present. Downloads daily smoke polygon shapefiles from NESDIS (https://satepsanone.nesdis.noaa.gov/pub/FIRE/web/HMS/Smoke_Polygons/Shapefile/), performs a JTS spatial intersection against TIGER/Line county boundaries, and emits per-county coverage percentages. One batch per year+month; each batch processes all days in that month. Uses HmsSmokeSpatialJoinProvider.

Column Type Null Description
county_fips string no 5-digit county FIPS code
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
date string no Observation date (YYYY-MM-DD)
year integer no Calendar year
month string no 2-digit month (01-12)
smoke_coverage_pct double yes % of county covered by any smoke
heavy_smoke_pct double yes % of county covered by heavy smoke
medium_smoke_pct double yes % of county covered by medium smoke
light_smoke_pct double yes % of county covered by light smoke

hms_smoke_polygons · table

Raw NOAA HMS smoke plume polygon geometries retained for spatial re-analysis. One row per smoke polygon per day. Geometry stored as WKT for direct use with DuckDB ST_GeomFromText() or re-joining against any boundary table (tracts, zip codes, watersheds, etc.) without re-downloading from NESDIS. Produced in the same pass as hms_smoke_daily — the HmsSmokeSpatialJoinProvider caches polygon rows during the hms_smoke_daily batch and emits them here.

Column Type Null Description
date string no Observation date (YYYY-MM-DD)
year integer no Calendar year
month string no 2-digit month (01-12)
density string no Smoke density classification: Light, Medium, or Heavy
geometry string yes WKT polygon geometry of the smoke plume in WGS84 (EPSG:4326)

climate_normals_monthly · table

NOAA CDO Monthly Climate Normals (NORMAL_MLY dataset, 1981-2010 period). One row per station per month. Values are in metric units (°C, mm). CDO returns temperature in tenths of °C and precipitation in tenths of mm; the transformer divides by 10 to produce standard units. county_fips is joined from ghcnd_stations_with_county. Requires NOAA_CDO_TOKEN. Static dataset — update logic is not needed until NOAA releases a new 30-year period. Cross-references ghcnd_stations_with_county via station_id.

Column Type Null Description
station_id string no GHCND station ID
state_fips string no 2-digit state FIPS code (e.g., '06' for California)
county_fips string yes 5-digit county FIPS (from ghcnd_stations_with_county join)
month integer no Month (1-12)
normal_tmax_c double yes 30-year normal daily max temperature (°C)
normal_tmin_c double yes 30-year normal daily min temperature (°C)
normal_tavg_c double yes 30-year normal daily mean temperature (°C)
normal_prcp_mm double yes 30-year normal daily precipitation (mm)
normal_snow_mm double yes 30-year normal daily snowfall (mm)
tmax_stddev double yes Standard deviation of daily tmax (°C)
tmin_stddev double yes Standard deviation of daily tmin (°C)
prcp_stddev double yes Standard deviation of daily prcp (mm); NULL if not available from CDO