Weather · Observations
Surface observations
What the weather actually did: temperature, dew point, wind, pressure and visibility from 25 airport stations across the eight ERCOT weather zones. Filed hourly and again whenever conditions change. Collected from the NWS API, reconciled against live responses.
noaa-station-observationshourly, plus specials · 1h rows25 entitiesWhat is in it
- Updates
- hourly, plus specials · 1h rows
- Entities
- 25 entities — KAUS, KDFW, KIAH…
- Source timezone
- UTC — every timestamp Dryos serves is UTC
- Coverage
- 31 August 2026 to now
- Rows held
- 79,358
- Primary key
- station, interval_start_utc
- On the map
- 25 of 25 placed
What it measures
Every value, its unit, and what the source means by it.
- Temperature°C
Air temperature at the station.
temperature_c - Dew point°C
Dew point — how much moisture the air is holding.
dewpoint_c - Relative humidity%
Relative humidity, derived from temperature and dew point.
relative_humidity_pct - Wind speedm/s
Wind speed at the standard 10 m observing height.
wind_speed_ms - PressurehPa
Barometric pressure at station level.
pressure_hpa
Columns
Exactly what a request answers with, read from the API rather than written here.
| Column | Type | Description |
|---|---|---|
| interval_start_utcrequired | timestamp | Start of the hour the values describe, UTC.e.g. 2026-08-31T12:00:00Z |
| stationrequired | string | NWS station identifier — the ICAO code for an airport station.e.g. KAUS |
| zonerequired | string | ERCOT weather zone the station sits in, in the load reports' spelling. An attribute of the station, not the entity — assigned by Dryos.e.g. SOUTH_C |
| temperature_crequired | number | Air temperature, degrees Celsius.e.g. 24.0 |
| dewpoint_c | number | Dew point, degrees Celsius.e.g. 23.0 |
| relative_humidity_pct | number | Relative humidity, percent.e.g. 94.1 |
| wind_speed_ms | number | Wind speed, metres per second. Converted from the km/h the source reports.e.g. 3.6 |
| wind_gust_ms | number | Peak gust, metres per second.e.g. 9.3 |
| wind_direction_deg | number | Wind direction, degrees from north.e.g. 180 |
| pressure_hpa | number | Barometric pressure at station level, hectopascals. Converted from pascals.e.g. 1015.9 |
| visibility_m | number | Horizontal visibility, metres.e.g. 16093.4 |
| latrequired | number | Latitude of the reading, degrees north. Published by the source, not inferred: this is where the instrument is or the point that was sampled.e.g. 30.19 |
| lonrequired | number | Longitude of the reading, degrees east of Greenwich.e.g. -97.67 |
| collected_at_utcrequired | timestamp | When Dryos collected this row, UTC. Stamped by the platform, not the collector.e.g. 2026-08-31T13:02:00Z |
Read it
Public, read-only, no key and no sign-up. Relative times stay relative, so a URL keeps working.
The newest rows
curl "https://api.dryos.ai/v1/datasets/noaa-station-observations/query?node=KAUS&limit=12"The catalogue entry — every column, its type and the source
curl "https://api.dryos.ai/v1/datasets/noaa-station-observations"Full parameters — bucketing, aggregation, filters and search — are on the API reference.
Ask an agent
The same stream through the Model Context Protocol, so Claude, ChatGPT, Cursor or any MCP client can query it directly.
claude mcp add --transport http dryos https://api.dryos.ai/mcpThen ask:
What has Temperature been at KAUS over the last 24 hours, and when did it peak?
Setup for every client is on the MCP server page.
Changes to this collector
A change in the collector is a change in the data. Anyone reading a step in a series is owed the day it moved under them.
- 2026-09-18
The gap from 2026-09-04 to 2026-09-18 is a collector fault, not a source one. The run after this heals it back to 2026-09-11 in one batch; 2026-09-04 to 2026-09-11 stays a hole, because the observations endpoint serves about seven days and the rest had aged out before the fault was found.
The row-count check compared raw batch size against a median taken from twenty-minute runs. This collector reads from the watermark to now, so once a run failed the next batch covered the whole gap — 49,777 rows against a median of 103, which failed the check, which held the watermark, which made the next batch bigger still. The count is normalised per timestamp now, so healing a gap looks like ordinary weather.
How this stream is checked
- Pulled straight from NOAA · National Weather Service API — no reseller in between — and compared against that file before it is served.
- Null means the source did not report it — never zero.
- A reading lands hourly, plus specials; the interval timestamp is the start of the interval, in UTC.
- Every weather timestamp is UTC at the source and at Dryos.
Related streams
- Hourly forecast by weather zone
Seven days of hourly forecast sampled at each ERCOT weather zone — including wind at 100 m and surface irradiance, the two variables that predict wind and solar output and that no NOAA endpoint publishes.
hourly, 7 days ahead · 1h rows8 entitiesopenmeteo-zone-forecast - NWS forecast by weather zone
The National Weather Service's own forecast for the same eight zones — the official record, sampled at the same points as the Open-Meteo stream so the two are directly comparable.
reissued through the day · 1h rows8 entitiesnoaa-gridpoint-forecast - Hub-height wind field
Wind speed and direction at 100 m on a one-degree grid across Texas and its surroundings — the field itself, to be drawn rather than charted.
every 3 hours · 1h rows168 entitiesopenmeteo-wind-field - HRRR national weather field
Temperature, hub-height wind speed and surface irradiance every hour at 19,080 points across the continental United States — the three weather series that load, wind output and solar output are functions of, at one resolution across every grid operator rather than one.
hourly · 1h rows19,080 entitiesnoaa-hrrr-field