NOAA NCEI Global Historical Climatology Network hourly
38,868 stations
238 countries
12,916 with WMO ID
1,554 no elevation
Click a station for its record. Click open ground to move the reference point.
Station IDNameStCtyNetworkLatitudeLongitudeElev mDist km
Sources & data notes
Source: NOAA NCEI GHCNh (Global Historical Climatology Network hourly) station
list, ghcnh-station-list.txt, supplied directly rather than downloaded
by this script, retrieved 13 September 2026. Column positions and network-code meanings
are taken from NOAA's ghcnh_DOCUMENTATION.pdf, Version 1.1.0 (10 March
2026), Section II.
Basemap tiles are fetched live from OpenStreetMap and Esri; choose
No basemap if you are offline.
Three places where this file disagrees with its own documentation.
First, Section II implies a 90-character record with an ICAO field at columns
87-90; every line in the shipped file is exactly 88 characters.
Second, columns 87-88 hold an ISO 3166 country code, not ICAO. All 238
distinct values are two-letter country codes; they differ from the FIPS code
embedded in the station ID on 18,285 of 38,870 records, in exactly the
way FIPS and ISO differ (Antigua is FIPS "AC" but ISO "AG";
Algeria is FIPS "AG" but ISO "DZ"); and genuine ICAO
identifiers appear inside the station IDs instead (AEI0000OMAA is Abu Dhabi
Intl, ICAO OMAA). This map reads that column as country.
Third, network code "P" appears on 332 records but is not among the
eight values Section II lists. All are US stations with IDs of the form
USP000NNN-N. The GHCN-Daily readme documents "P" as
"Pre-Coop", an internal NCEI identifier for records predating the
U.S. Weather Bureau, which fits the ID pattern, but GHCNh's own
documentation does not say so.
The documented GSN and HCN/CRN flag fields exist in the layout
but are empty for all 38,870 records in this file.
The STATE field is not reliable outside the United States. Section II
calls it the U.S. postal code for U.S. stations only, but also points to
ghcn-states.txt for state/province/territory codes, and the file uses it both
ways. 191 non-US records carry a value: 55 are self-consistent (state equals
country) and 4 are valid Canadian provinces, but 132 are inconsistent -
16 Puerto Rico stations are tagged with mainland US states (SAN JUAN as AK,
MAYAGUEZ as TX, MONA ISLAND as NY), 15 Antarctic stations carry AS or VI,
Greenland carries NL, Barbuda carries TX. These are shown as published, not
corrected.
Two records are excluded for carrying a transposed latitude/longitude
in the source file itself (latitude above 90°): RUU71-00102 (Chabarowka)
and RUU71-00113 (Irkutsk). The correct coordinate is not recoverable from this
file alone.
Elevation is blank where the source carried a sentinel: the documented
−999.9, plus −999.0, 9999.0 and 8191.0, which the documentation
does not mention. Total affected among plotted stations: 1,554.
This station list carries no period-of-record field. Unlike the ISD
and upper-air maps on this site, there is no way to filter by when a
station's record begins or ends from this file; presence in the
inventory says nothing about current reporting status.
Presence in this inventory does not mean a station reports hourly wind and
sky condition. Confirm the variables and period of record in the station's
own data file before using it in AERMET.