Migrating climate analogs

The high dimensionality of climate change data makes it challenging to understand and communicate. I took a stab at a new approach the other day with this little animation depicting a century of projected climate change. Each color represents the climate signature of a distinctive combination of 27 biologically-relevant climate variables, which lets us see the predicted geographic movement of these climates over time.

Different types of change are occurring in different regions. Overland climate velocities are highest across the Midwest and Great Plains. The Gulf coast and the central Rockies have contracting climates that are projected to disappear by mid-century. In places like the northern Rockies and the Southeast, we see the emergence of novel climates representing combinations of climate variables with no historical analog.

For me, this helps internalize the contemporary climate change driving the ecological processes I study. In the face of this change, the biota has three choices: adapt in situ to novel conditions, migrate to remain within their baseline climate, or face local extripation.

Nerd notes

I made this video in R using the ‘animation’ package. Source climate data are the mean predictions across an ensemble of CMIP5 global circulation models run under the RCP 8.5 emissions scenario. Data are 30-year normals from the ClimateNA dataset for the 1961-1990 era and the 2080s era. I linearlly interpolated climate signatures between these two periods to produce a smooth animation.

The challenge here was representing high-dimensional data in 2D. The approach I took was to reduce the climate dimensions to a single color for each pixel, while leaving space and time in their native forms. I first used non-metric multidimensional scaling (NMDS) to embed the 27 climate variables into 3 dimensions, which I then mapped to RGB colorspace such that color similarity represents climatic similarity. This mapping could take many forms, but I rank-transformed the RGB values to increase contrast, produced a menu of possible palettes (below), and picked one with a nice gestalt.


There were a lot of subjective decisions in this process whose effects would be interesting to explore. The choice of climate variables, dimension reduction algorithm, RGB rescaling method, and number of clusters all influence the look and feel of the results. The code is posted on github. At some point I’d like to extend this to a global extent using a different base dataset like Worldclim, and experiment with higher-res animations of smaller regions.