🌦️ 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_ |
string | no | NWS station ID (e.g., 'KORD') |
station_ |
string | yes | Station name |
state_ |
string | no | 2-letter state abbreviation (e.g., 'CA') |
latitude |
double | yes | Station latitude |
longitude |
double | yes | Station longitude |
elevation_ |
double | yes | Elevation in meters |
timezone |
string | yes | IANA timezone (e.g., 'America/Chicago') |
forecast_ |
string | yes | NWS forecast zone ID |
county_ |
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_ |
string | no | NWS alert identifier |
state_ |
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_ |
string | yes | Issuing office |
affected_ |
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_ |
string | no | CDO station ID (e.g., 'GHCND:USW00094846', 'COOP:110050') |
station_ |
string | yes | Station name |
state_ |
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_ |
string | yes | Earliest data available (ISO date) |
max_ |
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_ |
string | no | 2-digit state FIPS code (e.g., '06' for California) |
station_ |
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_ |
string | no | 2-digit state FIPS code (e.g., '06' for California) |
station_ |
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_ |
string | no | GHCND station ID (e.g., 'USW00094846') |
station_ |
string | yes | Station name |
state_ |
string | no | 2-digit state FIPS code (e.g., '06' for California) |
county_ |
string | yes | 5-digit county FIPS (nearest Census county centroid) |
latitude |
double | yes | Station latitude |
longitude |
double | yes | Station longitude |
elevation_ |
double | yes | Elevation in meters |
data_ |
integer | yes | First year of observations (from ghcnd-inventory.txt) |
data_ |
integer | yes | Most recent year of observations (from ghcnd-inventory.txt) |
distance_ |
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_ |
string | no | GHCND station ID (e.g., 'USW00094846') |
state_ |
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_ |
double | yes | Maximum temperature in °C (NCEI TMAX, tenths-of-°C ÷ 10) |
tmin_ |
double | yes | Minimum temperature in °C (NCEI TMIN, tenths-of-°C ÷ 10) |
tavg_ |
double | yes | Average temperature in °C (NCEI TAVG, tenths-of-°C ÷ 10) |
prcp_ |
double | yes | Precipitation in mm (NCEI PRCP, tenths-of-mm ÷ 10) |
snow_ |
double | yes | Snowfall in mm (NCEI SNOW, native mm) |
snwd_ |
double | yes | Snow depth in mm (NCEI SNWD, native mm) |
awnd_ |
double | yes | Average wind speed in m/s (NCEI AWND, tenths-of-m/s ÷ 10) |
tmax_ |
string | yes | Measurement flag for tmax |
tmin_ |
string | yes | Measurement flag for tmin |
prcp_ |
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_ |
string | no | 5-digit county FIPS code |
state_ |
string | no | 2-digit state FIPS code (e.g., '06' for California) |
state_ |
string | no | 2-letter state abbreviation (e.g., 'CA') |
county_ |
string | yes | County name |
year |
integer | no | Calendar year |
week_ |
string | no | Tuesday release date of the drought report (YYYY-MM-DD) |
valid_ |
string | yes | Start date of the drought week period (YYYY-MM-DD) |
valid_ |
string | yes | End date of the drought week period (YYYY-MM-DD) |
none_ |
double | yes | % of county area with no drought |
d0_ |
double | yes | % Abnormally Dry (exclusive D0 only) |
d1_ |
double | yes | % Moderate Drought (exclusive D1 only) |
d2_ |
double | yes | % Severe Drought (exclusive D2 only) |
d3_ |
double | yes | % Extreme Drought (exclusive D3 only) |
d4_ |
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_ |
string | no | 5-digit county FIPS code |
state_ |
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_ |
double | yes | % of county covered by any smoke |
heavy_ |
double | yes | % of county covered by heavy smoke |
medium_ |
double | yes | % of county covered by medium smoke |
light_ |
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_ |
string | no | GHCND station ID |
state_ |
string | no | 2-digit state FIPS code (e.g., '06' for California) |
county_ |
string | yes | 5-digit county FIPS (from ghcnd_stations_with_county join) |
month |
integer | no | Month (1-12) |
normal_ |
double | yes | 30-year normal daily max temperature (°C) |
normal_ |
double | yes | 30-year normal daily min temperature (°C) |
normal_ |
double | yes | 30-year normal daily mean temperature (°C) |
normal_ |
double | yes | 30-year normal daily precipitation (mm) |
normal_ |
double | yes | 30-year normal daily snowfall (mm) |
tmax_ |
double | yes | Standard deviation of daily tmax (°C) |
tmin_ |
double | yes | Standard deviation of daily tmin (°C) |
prcp_ |
double | yes | Standard deviation of daily prcp (mm); NULL if not available from CDO |