Global Warming Levels

Read the white paper

Author

Cal-Adapt

Published

January 1, 2024

Modified

July 2, 2026

Overview

This page describes the global warming level (GWL) framework, when to use it instead of a time-based approach, and the steps a user takes to access data on GWLs using climakitae. The tools in the Analytics Engine platform can calculate global warming levels for dynamically downscaled (WRF) or statistically downscaled (LOCA) data using the same methods. The specific methodology and calculations underlying the generation of GWL data are covered in this page.

For more information on how to select a dataset for an application of interest, refer to the WRF vs. LOCA2-Hybrid page. For additional information on the motivation and methods behind Cal-Adapt’s operationalization of the Global Warming Level (GWL) framework, please see the following report: Global Warming Levels: Bringing Global Warming Levels into Regional Climate Planning for the Energy Sector1.

What are global warming levels?

The GWL framework provides an alternative approach to assessing climate impacts, as compared to a time- or scenario-based approach. A user can tailor their analyses to a specific amount of global warming, such as 2˚C or 3˚C, rather than to a particular time period like mid-century or end-of-century (i.e., 2100). This method has gained traction in international policy frameworks, including the Paris Agreement and the 6th IPCC Assessment Report because it isolates the uncertainty of regional climate responses from other variables, such as emissions trajectories and the rate of global climate response to greenhouse gas concentrations associated with scenario-based approaches. By using GWLs, a greater number of high-quality simulations can be included in regional assessments, even if some models have higher-than-likely climate sensitivity. The GWL approach allows a data user to conduct a more comprehensive analysis by incorporating simulations that accurately represent atmospheric variability but may otherwise be excluded.

For example, consider two simulations: simulation A and simulation B. In a Shared Socioeconomic Pathway (SSP) framework under the SSP2-4.5 scenario, a data user might initially consider only simulation A because simulation B is designed only for the SSP5-8.5 scenario. This prevents them from incorporating any regional climate information from simulation B into their analysis. Instead, by employing a GWL framework, a user can examine how each simulation depicts regional climate at specific warming levels, such as 2˚C. This approach allows both simulations A and B to be included in the analysis, assuming that each reaches 2˚C of warming at some point in their projection. Thus, the GWL framework allows users to enhance their understanding of climate projection insights beyond simulation A alone. This approach also helps identify when the world is likely to reach a particular level of warming, and provides a robust framework for characterizing the risk of climate extremes and making informed policy decisions.

Why use global warming levels?

Until the last few years, it was most common to assess climate projections at a particular time period, such as mid-century or end-of-century, and for different emission scenarios (RCPs or SSPs). However, it is becoming increasingly common to assess climate projections at different levels of warming, for example how regional climate change might look like in a world that is 2˚C or 3˚C warmer on average than pre-industrial levels. Key national and international climate assessments such as the IPCC AR6 and the NCA5, are using the warming level framework for several reasons. This blog post and slides 11-17 of this presentation explain in detail why the warming level framework has been preferred.

Broadly, one of the main reasons for using GWLs rather than a time-based approach, is that there is less certainty around the rate (timing) of climate change than the range of possible temperature outcomes at a given level of warming (see this Analytics Engine blog post for a visual representation). When using a time-based approach to plan for a specific target year(s), users are often forced to pick projections from a particular emissions trajectory. This limits the overall sample size of model runs and therefore reduces the ability to holistically characterize future outcomes, specifically extremes and rare events.

On the other hand, the GWL framework allows users to avoid choosing among the different emissions trajectories and hence increases the sample size of model runs that they can use. That is, to evaluate climate impacts in a 2˚C world one must combine the regional projections from all available simulations, regardless of the emissions scenario and regardless of when they reach 2˚C of global average warming. This larger sample size provides users with a greater ability to holistically examine risks and, in particular, to better characterize risks from extremes. The approach also allows for isolation of the different sources of uncertainty in regional climate responses, which lends itself to a more adaptive management approach (see this Analytics Engine blog for more details). Overall, the GWL framework allows more robust climate change analyses, as summarized in the IPCC AR6 “…robust projected geographical patterns of many variables can be identified at a given level of global warming, common to all scenarios considered and independent of timing when the global warming level is reached.”

The Analytics Engine’s Warming Level Notebooks allow users to easily examine regional climate impacts for a specific global warming level. In these notebooks, users can first identify target warming levels (e.g. 2˚C or 3˚C global warming), and then calculate the regional climate response of interest for those GWLs with the largest possible set of model runs. These notebooks also have functionalities that allow users to examine the median time period when a given warming level might be reached (i.e. go from GWL to time estimates), thereby also providing a time-based estimate for planning purposes. Similar to the recommendations on choice of timeframes, it is also recommended that users do not fix-in on any one warming level, but also undertake exploratory analyses at additional warming levels. In particular, including a higher-end warming level may be beneficial for capturing potential nonlinear impacts of climate change, which can enable adaptive planning.

Choosing between GWLs and a time-based approach

Determining whether to use GWLs versus time- or scenario-based approaches will depend on the goals of the analysis, and/or external requirements for planning. As a starting point for making these decisions:

  • If planning occurs around discrete future time periods that use a climatology (i.e. averaging conditions over a 30-year period), it is recommended that a GWLs approach is used.
  • If planning relies on viewing a long-term trend (e.g. through the end of the century) as a continuous time-series, it is recommended that a time-based approach is used.

The sections below provide more detail on making decisions between these approaches.

When to choose GWLs

Using Global Warming Levels (GWLs) for planning comes with some distinct advantages over a traditional time-based approach:

For these reasons, it is recommended that GWL approaches are used with CMIP6 data whenever possible. This is particularly true when a climate analysis needs to be conducted around a future time period, such as 30 years in the middle or end of the century (i.e. a future climatology).

For California’s Investor Owned Utilities, the California Public Utilities Commission specifically requires planning (Rulemaking 18-04-019, Agenda ID #22703) around global warming levels of 1.5 and 2.0 °C when completing a Climate Adaptation and Vulnerability Assessment (CAVA).

Using GWLs in the Analytics Engine is as straightforward as using time-based climate data. The sections below describe how to retrieve GWL data and how it is calculated. The table on the Reference Periods page can help users choose GWLs that correspond to a relevant future period for their analysis, and communicate results in situations where time-based planning may be more familiar.

Retrieving GWL data using climakitae

The method is described in the following section. Supplementary resources include the climakitae technical documentation, which covers performing GWL analyses with the library, and the notebook warming_level_methods.ipynb on GitHub and the Analytics Engine JupyterHub.

# Initalize a ClimateData object 
from climakitae.new_core.user_interface import ClimateData
cd = ClimateData()

# Set the arguments to retrieve warming levels data
# You can use this method for either LOCA or WRF data 
tasmax_gwl_data = (
    cd.catalog("cadcat")
    .activity_id("LOCA2")
    .table_id("mon")
    .grid_label("d03")
    .variable("tasmax")
    .processes(
        {
            "warming_level": {
                "warming_levels": [0.8, 1.5, 2.0, 3.0, 4.0],
                "warming_level_window": 15,
            },
        }
    )
    .get()
)

The object returned by .get() for GWL-processed data looks like this once printed. Expand the sections below to explore the coordinates and attributes, just like in a Jupyter notebook:

<xarray.Dataset> Size: 257GB
Dimensions:        (sim: 129, warming_level: 5, time_delta: 360, lat: 495,
                    lon: 559)
Coordinates:
  * sim            (sim) object 1kB 'LOCA2_UCSD_INM-CM5-0_ssp245_mon_d03_r1i1...
  * warming_level  (warming_level) float64 40B 0.8 1.5 2.0 3.0 4.0
  * time_delta     (time_delta) int64 3kB -180 -179 -178 -177 ... 177 178 179
  * lat            (lat) float32 2kB 29.58 29.61 29.64 ... 44.95 44.98 45.02
  * lon            (lon) float32 2kB -128.4 -128.4 -128.4 ... -111.0 -111.0
    centered_year  (sim, warming_level) float64 5kB 2.057e+03 ... 2.079e+03
    spatial_ref    int64 8B 0
Data variables:
    tasmax         (sim, warming_level, time_delta, lat, lon) float32 257GB dask.array<chunksize=(1, 1, 4, 290, 327), meta=np.ndarray>

The above example is loading data at five specific warming levels (0.8, 1.5, 2.0, 3.0, and 4.0) with a 15-year window for the variable maximum air temperature.

A SSP was not specified to load the data because simulations from any SSP can be used to measure climate impacts at a given GWL. This ability to utilize data from all SSPs equivalently is one of the benefits of the GWL approach.

How GWLs are calculated

This section outlines the methodology for calculating GWL data used by climakitae. These are the calculations that take place “under the hood” (via internal climakitae methods) when you retrieve GWL data as described in the previous section. The methods described here follow the approach used by the IPCC AR6 report as closely as possible2.

NoteNote

The lookup tables described here are used for selecting data from each model, but are not an accurate way to estimate what year a GWL is most likely to be reached. To estimate the timing of GWLs, the Analytics Engine uses the IPCC’s warming trajectories, as described on the Climate Model Simulations page. Approximate time ranges for each warming level are summarized on the Reference Periods page.

Calculating GWLs on the Analytics Engine is a two-step process, described below.

Step 1: Generate GWL lookup tables by model

For each global climate model (GCM) simulation in the CMIP6 archive, the average global temperature increase relative to pre-industrial conditions (1850-1900) is measured for each year. This time-series of global warming is smoothed with a 20-year running average and used to create a lookup table to determine when each simulation reaches a given global warming level.

The GWL lookup table captures what year each global climate simulation reaches each warming level. This table is pre-generated in the climakitae repository, and is only updated if changes are made to the methodology or new warming levels are added to the platform. No actions are required by the user for this step, but the section is provided as technical documentation and outlines the method used to generate this table for transparency.

1a. Select CMIP6 models and ensemble members

From the CMIP6 catalog, all CMIP6 models and their ensemble members are selected via the Pangeo CMIP6 table.

1b. Calculate global average surface temperature

Global average surface air temperature for each ensemble member is then calculated by a spatially weighted average of the tas (or appropriate surface air temperature) variable using this formula (which is essentially a weighted average of all grid cells around the world, which accounts for the fact that grid cells towards the poles are smaller than grid cells near the equator):

weightlat = np.sqrt(np.cos(np.deg2rad(ensemble_mem[lat])))
weightlat = weightlat / np.sum(weightlat)
timeseries = (ensemble_mem * weightlat).sum(lat).mean(lon)

1c. Smooth time series and identify GWL crossing years

Each time series is smoothed with a 20-year running average window. Then, the month/year that each time-series first exceeds a certain degree of warming (1.5, 2.0, 2.5, 3.0, 4.0) relative to the average temperature from a given reference period is computed and then saved per model into a lookup table of GWL, with the model as the index.

1d. Save GWL lookup tables

The lookup tables are saved in the data directory of the climakitae repository.

  • gwl_1850-1900ref.csv uses the reference period 1850-1900, consistent with the IPCC warming level definitions. This reference period can not be used to calculate anomalies (different from historical), because the downscaled data only extends back to 1950.

    Table 1: Example excerpt from gwl_1850-1900ref.csv, showing the year each GCM/run/scenario combination crosses each warming level.
    GCM run scenario 0.8 1.0 1.2 1.5 2.0 2.5 3.0 4.0
    ACCESS-CM2 r3i1p1f1 ssp585 2005-09-16 2012-01-16 2017-05-16 2024-04-16 2037-08-16 2046-06-16 2053-12-16 2068-05-16
    ACCESS-CM2 r3i1p1f1 ssp370 2005-10-16 2012-11-16 2020-02-15 2028-09-16 2039-06-16 2049-01-16 2058-11-16 2079-01-16
    ACCESS-CM2 r3i1p1f1 ssp245 2005-09-16 2013-09-16 2020-03-16 2029-08-16 2040-07-16 2051-02-15 2066-03-16 —
  • gwl_1980-2010ref.csv uses the reference period 1980-2010, and is only used when calculating anomalies.

  • A 20-year running average window is used to determine the “crossing year” for each GWL by the center of the window. This ensures that any one particularly high value year does not skew the results when the overall average temperature trend has not yet reached the warming level.

1e. Save time-indexed GWL translation tables

Additionally, the GWL at each month is saved for each ensemble member from 1860-2090 into gwl_1850-1900ref_timeidx.csv and gwl_1980-2010ref_timeidx.csv. These act as translations between time and GWLs.

Table 2: Example excerpt from gwl_1850-1900ref_timeidx.csv, showing the GWL (°C above the 1850-1900 baseline) reached by each GCM/run/scenario combination at a given time. The full file has one column per GCM/run/scenario combination (490+ columns).
time ACCESS-CM2_r3i1p1f1_ssp585 ACCESS-ESM1-5_r3i1p1f1_ssp585 AWI-CM-1-1-MR_r1i1p1f1_ssp585 CESM2_r11i1p1f1_ssp585
2000-1 0.6006125647093152 0.45405188235651056 1.0232514633514898 0.6213813987637752
2020-1 1.3108536939844477 1.142057817584557 1.6253960100043647 1.3088474841003275
2050-1 2.7253699553814195 2.4850610309728554 2.712248957754721 2.7661379693234354
2080-1 4.855009532684353 4.31016555630567 4.365879658891602 4.791641459896719
  • These files have time as the index, whereas the files generated in Step 1d have the model as the index.

  • The time range of these files is 1860-2090 because the 20-year running average window clips the first and last 10 years.

The above steps are calculated for all CMIP6 models. The CESM2-LENS data is processed separately due to a slightly different data structure, but follows the same methodology.

Step 2: Retrieve model data at each GWL

When data on warming levels is retrieved using get_data() or the Select GUI, the following procedure is run for each warming level, and for each simulation within our Analytics Engine WRF/LOCA2-Hybrid catalog (depending on downscaling method):

2a. Find the centered year

Find the centered year that the simulation passes this global warming level, using the table generated in step 1d (gwl_1850-1900ref.csv).

2b. Slice the time window

Slice the window (i.e. +/- 15 years) around the centered year found in the previous step, for the current simulation.

2c. Filter months and remove leap days

Filter for desired months and remove leap days.

2d. Reset the time index

Reset the time index so that all simulations can be stacked on top of each other.

  • Change timestamps to timedeltas with centered_year coordinates.

  • For example, a 30-year simulation with monthly frequency data from 2010-2040 is transformed into a dataset with time-deltas from -180 to 179 (360 months in 30 years) with an added centered_year coordinate of 2025.

  • The time dimension is now called time_delta because it represents the time distance from the central year.

2e. Simulations that don’t reach this given warming level are set to NaN.

References

1.
Krantz, W., Roman, J., Ford, V., Freitas, N., Ordonez, A., Machuca, V., Koenig, M., & Doherty, O. (2026). Global Warming Levels: Bringing Global Warming Levels into Regional Climate Planning for the Energy Sector. Zenodo. https://doi.org/10.5281/ZENODO.21890476.
2.
Intergovernmental Panel On Climate Change (IPCC). (2023). Climate Change 2021 – The Physical Science Basis: Working Group I Contribution to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change. Cambridge University Press. https://doi.org/10.1017/9781009157896.

Citation

For attribution, please cite this work as:
Cal-Adapt. (2026). Global Warming Levels. Cal-Adapt. https://analytics.cal-adapt.org/scientific-guidance/global-warming-levels.html.