Atlanta, by degrees

Methods

What this data can and can't see

Every chart on this site is built from real, verifiable numbers. This page is where the caveats live, instead of being scattered as footnotes or left out.

What ERA5 actually is

Every historical number on the citywide chapters of this site (the 86-summer wall, the inter-city comparison, the nights trend) comes from ERA5, the European Centre for Medium-Range Weather Forecasts' global reanalysis. It is not a network of thermometers. It is a physics model that assimilates every observation available (satellites, weather balloons, ships, real ground stations) and produces a consistent, gap-free estimate of the atmosphere at roughly 0.25° resolution, about 28 kilometers per grid cell, for every day back to 1940.

That gap-free consistency is exactly why it is useful for an 86-year daily record: there is no missing decade, no station that moved or shut down, no instrument change halfway through the dataset. The tradeoff is resolution. Atlanta's city limits span roughly one to two ERA5 grid cells, so every neighborhood in the city inherits essentially the same modeled weather. That rules ERA5 out for comparing one Atlanta neighborhood to another. It does not rule ERA5 out for comparing Atlanta to other cities: Charlotte, Nashville, Birmingham, Jacksonville, and New Orleans each sit hundreds of kilometers away, in entirely separate, independent grid cells, which is what makes the comparison chapter a fair one.

The grid-vs-station gap, with a real example

On June 30, 2012, the hottest day in this site's entire record, the ERA5 grid cell over Atlanta shows a daily high of 103.9°F. The official station record for that same day, measured at Hartsfield-Jackson International Airport, is 106°F, the actual all-time record high for the city, breaking a 105°F mark set in 1980.

That 2°F gap is not an error in either number. A 28-kilometer grid cell mean and a single tarmac thermometer measure genuinely different things: one is a spatial average, the other is a point reading at one specific, famously heat-retentive location (airport tarmac readings tend to run hot). ERA5's daily values track the official station record closely on an ordinary day, and diverge by a degree or two, sometimes more, on the most extreme ones. That is the direction a spatial average should diverge from a single hot point. Where a specific number on this site is close to a record, the honest reading is "this is what the regional atmosphere was doing," not a claim to beat the official station record.

Where the "recent years" windows come from

The comparison chapter's day-count metrics (days ≥95°F/year, warm nights/year) are computed over 2005 to present, not the full 86-year record. A full-record average blends in the cooler mid-century decades and understates what a typical recent summer actually looks like in each city today. The point of those two numbers is how it feels now, not how it has felt on average since 1940. The temperature and humidity-premium averages elsewhere on that same chapter use the full record, since those are less sensitive to which decades are included.

heat-risk-data-api: the tool behind the neighborhoods chapter

Every other chapter on this site runs on one citywide reanalysis number. The neighborhoods chapter is different: it resolves real intra-city variation, and it does that by running on heat-risk-data-api, the production heat-vulnerability API Nishant built and maintains at CrisisReady for public-health heat assessments in cities worldwide. This chapter is not a side experiment layered on top of that work. It is the same tool, pointed at Atlanta, run the same way it runs for a paid public-health engagement.

The pipeline registers a project on the API consisting of Atlanta's 247 official neighborhood boundaries (City of Atlanta GIS), then runs the same two backfill jobs the API runs for any client city: a land-surface-temperature composite-prep pass and a heat-vulnerability backfill. The LST pass builds a three-warm-season composite from Landsat thermal imagery at roughly 100-meter resolution, more than 250 times finer than an ERA5 grid cell, and expresses each neighborhood's result as an anomaly against the citywide mean. The vulnerability backfill adds tree canopy fraction over 3 meters, built-surface fraction, and age-structured population from WorldPop (the elderly 65-plus share), all computed per neighborhood from the same underlying satellite and demographic layers the API uses in production. Poverty rate is the one field on this chapter that does not come from the API: it is a separate Census ACS pull, crosswalked from tract to neighborhood by centroid, joined in afterward.

The API's public docs are at crisisready.io/heat-risk/docs. A longer, informal account of why it was built and what it costs to run a heat-risk assessment without it is in this piece.

What the air-quality chapter is and isn't

The air chapter runs on CAMS, the Copernicus Atmosphere Monitoring Service's global reanalysis, delivered through the same Open-Meteo platform as the weather data. It is a physics-and-chemistry model, not a network of ground sensors, at roughly 45-kilometer resolution, coarser than ERA5, and the same one-grid-cell-over-the-whole-metro limitation applies. The record itself has a hard floor: CAMS's global archive starts August 1, 2022, so this chapter covers under four years, not 86.

The higher-resolution option is OpenAQ's real ground monitoring stations, which would let a reader check whether their side of town tracks the citywide model line or diverges from it. That layer is scoped, not built. OpenAQ's newest API requires a registered key with no keyless path, and turning that key on is a real credential decision that has not been made yet, not a data-availability problem. The chapter runs on the model-grid version until that decision happens, and says so.

Sources

  • Daily temperature and apparent-temperature archive: Open-Meteo's ERA5-derived archive API, 1940 to present, all six cities in the comparison chapter.
  • Hartsfield-Jackson station record: National Weather Service climate records for Atlanta.
  • Hourly ozone, PM2.5, and US AQI: Open-Meteo's CAMS-derived air quality API, August 2022 to present, downtown Atlanta.
  • Land surface temperature, tree canopy, built fraction, and age-structured population, per neighborhood: heat-risk-data-api, the production heat-vulnerability tool Nishant built and maintains at CrisisReady.
  • Neighborhood boundaries (247 official areas) and tree canopy change by NPU: City of Atlanta GIS, via its public ArcGIS services.
  • Poverty rate: U.S. Census Bureau, American Community Survey 5-year estimates, tract-level, crosswalked to neighborhood boundaries.
  • Site code, including the scripts that pull and process this data, is part of the same portfolio codebase this page is served from.

Built by Nishant Kishore using ERA5 reanalysis data and heat-risk-data-api, the heat-vulnerability tool he built and maintains at CrisisReady. See About for the short version of this page.