Compare seasonal profiles
Each candidate city's real present-day climate (ERA5 reanalysis, 1991-2020) is compared with San Diego's projected future climate, season by season, for both temperature and rainfall.
DSC 106 climate visualization
Ask where San Diego's climate is heading and you'll hear one word: Phoenix.
But the real climate models tell a different story, and it ends somewhere most people would never guess. Scroll to find San Diego's actual climate twin.
Why climate twins?
Instead of only showing projected degrees of warming, this page compares San Diego's future seasonal temperature and rainfall patterns with climates that people can locate on a map today.
Scrollytelling explorer
This is climate space: warmer to the right, wetter toward the top. The teal line traces San Diego from today to your chosen future, pick 2050 or the 2080s to see how far it travels. Every other city sits at its climate today.
The Climate Twin Index scores how closely each present-day city matches San Diego's future, by default 60% temperature, 30% rainfall, 10% summer heat. Los Angeles wins, then Riverside; Phoenix sits near the bottom.
Zoomed in on San Diego and its two closest twins. The orange marker is San Diego's projected climate; drag the year or press play and it is pulled toward the city whose climate it most resembles today. The closer the match, the stronger the pull.
San Diego's projection against its two closest twins, Los Angeles and Riverside, today. The top panel is seasonal temperature, the bottom is rainfall; whiskers mark the model's p10 to p90 range.
Each bar is the best match San Diego can find in the selected scenario, one decade at a time. Use the scenario buttons above to compare low, moderate, and high emissions paths.
Step 1
The path runs from San Diego today to San Diego in your selected future period. Every other city is plotted at its present-day climate.
Each city is collapsed to two numbers, its average temperature and yearly rainfall, so a hot, dry desert city can land right next to San Diego's future even though its scorching summers and monsoon rains feel nothing alike. The Climate Twin Index in Step 2 compares all four seasons and summer heat, which is why the closest dot here is not always the real twin.
Each bar splits into weighted components. A city can top the ranking by being consistently close across all seasons, even if it's less famous as a heat comparison.
The orange marker is San Diego's projected climate, pulled toward the cities it most resembles today. The closer the climate match, the stronger the pull. These cities sit within ~150 km of each other, so this is climate distance, not map distance.
San Diego's future (teal) is shown beside Los Angeles and Riverside today. Matching heights in both the temperature and rainfall panels make a stronger twin; whiskers show how far the projection could shift across climate models.
Each bar is the best Climate Twin Index San Diego can reach in the selected scenario. The decade-by-decade view shows whether the closest twin fades gradually or falls away late in the century.
The takeaway
Across every emissions scenario, the closest present-day match to San Diego's projected climate is Los Angeles, followed by inland Riverside, not the desert cities most people name. Phoenix and Tucson rank near the bottom: their scorching, monsoon-fed summers look nothing like San Diego's mild, bone-dry ones. But follow the high-emissions path to the 2080s and even Los Angeles stops fitting, San Diego's summers warm so far that no city we compared has lived through that climate yet. A familiar twin makes the near future legible; the disappearance of any twin is the warning.
Watch
Methodology
Each candidate city's real present-day climate (ERA5 reanalysis, 1991-2020) is compared with San Diego's projected future climate, season by season, for both temperature and rainfall.
Seasonal temperature, rainfall, and summer-heat differences become match scores from 0 (totally different) to 100 (identical), so different units don't distort the result.
Index = w₁·Temperature + w₂·Rainfall + w₃·Summer heat. Defaults are 60/30/10, but the sliders let you decide what "similar" means and watch the ranking re-sort.
San Diego's future = its real ERA5 seasonal baseline plus the CMIP6 multi-model change signal (temperature added in °C, rainfall scaled by percent change), a standard delta-downscaling approach.
Uncertainty band = the p10 to p90 spread across the CMIP6 model ensemble, shown as whiskers on the seasonal fingerprint and a shaded box on the trajectory.
Distances use root-mean-square seasonal differences, with summer heat scored separately so monsoon-driven desert cities aren't mistaken for coastal ones.
Project writeup
We turned a dense dashboard into a scrollytelling explanation so the reader meets the question, then the Climate Twin Index, then the result, one step at a time. The ranking uses bar length because position and length are the most accurate channels for comparing ordered values. Step 1 plots cities in a shared temperature and rainfall space; later steps deliberately narrow focus, the map zooms to only the two closest twins so the reader compares climate, not geography.
The scenario and period buttons act as dynamic queries over the dataset, and the weight sliders let the reader redefine what "similar" means and watch the ranking re-sort, turning an arbitrary 60/30/10 choice into something testable. The signature interaction is the map's year slider: drag it or press play and a marker for San Diego's projected climate travels to whichever nearby city it most resembles that year, making a moving climate concrete. Step 5 uses the scenario buttons to compare SSP pathways, then shows the best available twin decade by decade.
We replaced every placeholder with real public data: ERA5 reanalysis for present-day cities and the CMIP6 ensemble for San Diego's future, combined with a standard delta-downscaling method. The most time-consuming work was expressing "similarity" without hiding temperature and rainfall behind one number, solved with the component-weighted bars and sliders. The challenge we were most unsure about, showing model uncertainty without burying the story, is now handled by the p10 to p90 whiskers and the trajectory's range box.
Data
Present-day climate for all ten cities comes from ERA5 reanalysis (1991-2020 climatology) sampled at each city's coordinates via the Open-Meteo archive. San Diego's future comes from the CMIP6 multi-model ensemble (SSP1-2.6, SSP2-4.5, SSP5-8.5; mid-century and end-of-century) via the World Bank Climate Change Knowledge Portal, with p10 / median / p90 percentiles for the uncertainty band.
The shipped thunder4champ_climate_dataset.csv holds the real long-format values (200+ rows across 11 columns), and the pipeline is fully reproducible: fetch_era5.py + fetch_cckp.py + build_data.py rebuild data.js directly from those public APIs.
Where you left it