GISS Surface Temperature Analysis

Uncertainty Quantification

This page provides computer code for a new, improved uncertainty analysis for the GISS Surface Temperature Analysis (GISTEMP) v4, and which can be similarly applied to v3. The analysis is described in detail in the journal article "Improvements in the uncertainty model in the Goddard Institute for Space Studies Surface Temperature (GISTEMP) analysis" by Lenssen et al. (2019). The code is written in the R programming language; instructions for downloading the code and replicating the analysis are given below.

The production GISTEMP global mean temperature time series with the total (LSAT and SST) 95% confidence interval calculated in our study for annual mean temperature smoothed with LOWESS with 5-year bandwidth. Anomalies are calculated with respect to the 1951-1980 climatology.

GISTEMP processes spatial variations in surface temperature anomalies that are derived from historical weather station data and ocean data from ships, buoys and other sensors. Uncertainties arise from measurement uncertainty, changes in spatial coverage of the station record, and systematic biases due to technology shifts and land cover changes.

In Lenssen et al (2019), we have updated previous uncertainty estimates using currently available spatial distributions of source data and state-of-the-art reanalyses, and incorporate independently derived estimates for ocean data processing, station homogenization and other structural biases. The resulting 95% uncertainties are near 0.05°C in the global annual mean for the last 50 years, and increase going back further in time reaching 0.15°C in 1880.

Quick Start Guide

0. Make sure the required packages are installed for your R configuration by running:
install.packages(c('fields', 'doParallel', 'foreach', 'ncdf4'))

1. Check the Namelists to make sure that the number of cores used in the calculation (variable nCores) is compatible for your machine. We suggest starting with 2 cores for 8 GB of RAM and 3 cores for 16 GB.

2. Run the full analysis with source('Scripts/FullAnalysis.R'). Note: takes around 8 hours with 3 cores on a 2018 MacBook Pro.

Download Options

Confidence Interval for annual global means (csv)
Table showing the 95% confidence intervals for the annual global mean anomaly graph above. Note that table and graph were created in 2019 based on the then available data. An updated version is available on the graphs page, e.g. this graph.
gistempUncertaintyCode.tar.gz
Contains only the code. Raw data needs to be downloaded from the respective repositories.
When requested to authorize, use user ID "uncertainty" and password "analysis".
gistempUncertaintyRaw.tar.gz
Contains all raw and processed data. Runs the analysis without any additional downloaded data.
When requested to authorize, use user ID "uncertainty" and password "analysis".
This archive is about 1.2 GB and will take a minute or two to download. Please be patient.

gistempUncertaintyFull.tar.gz
Contains all raw, processed, intermediate, and final data and results.
When requested to authorize, use user ID "uncertainty" and password "analysis".
This archive is about 14.0 GB and will take several minutes to download. Please be patient.

We recommend downloading gistempUncertaintyRaw.tar (1.3 GB) to avoid downloading and processing the raw reanalysis and ERSST data which is not provided as part of our repository.

Code Organization

The codebase is to be run with GistempUncertainty/ as the working directory. It should have the following subdirectories:

  • Code/ — The analysis scrips and user functions for the analysis.
    • Preprocessing — Scripts used in the preprocessing of raw data products.
  • Data/ — All raw and intermediate data used in the analysis.
  • Figures/ — Plots saved from Code/paperPlots.R .
  • Namelists/ — Scripts that set run parameters. These should be altered before diving deeper into the code.
  • Scripts/ — Full analysis scripts.

Versions

Ver. 1.0 (2019-05-23):
Original code release with publication of Lenssen et al. (2019).

Ver. 1.1 (2019-07-18):
Equation (7) in Lenssen et al. (2019) was misspecified and should have read:

Ak(t) = αk + βkμ(t) + εk(t)          (7)

This slightly reduces the limiting sampling bias in section 6.2.2. from 1.5% to 1.2% and changes Figure 7. The corrected graph (PDF) now shows general agreement between all three reanalyses.

Ver. 1.2 (2019-11-18):
The results and code for the GISTEMP uncertainty analysis have been corrected following the discovery of a coding error affecting the Southern Hemisphere LSAT sampling error calculation and a correction of the weighting used to compute the LSAT global mean. We thank Dr. Alexandre Galvão Patriota for bringing this to our attention.

Most of the resulting changes to the analysis are small and are currently being processed by the journal to update into the article of record. Updates to statements in the abstract and sections 6.1, 6.2.1, 6.2.2, 6.2.3, and 7.1 are provided here (PDF). Figures 3, 4, 6, 7, 8, 11, 12, and 13 have been updated to accord with the corrected results (ZIP). In addition, comparison figures of key results are provided to facilitate comparison (ZIP).

Ver. 1.2.1 (2019-12-14):
The changes implemented to the global mean calculation in version 1.2 also impact the SST uncertainty calculation resulting in a small decrease in the total SST uncertainty and a very small decrease in the total global uncertainty.

Reference

Lenssen, N., G. Schmidt, J. Hansen, M. Menne, A. Persin, R. Ruedy, and D. Zyss, 2019: Improvements in the uncertainty model in the Goddard Institute for Space Studies Surface Temperature (GISTEMP) analysis, J. Geophys. Res. Atmos., in press, doi:10.1029/2018JD029522.

Note: PDF documents require the free Adobe Reader or compatible viewing software to be viewed.

• Return to GISTEMP homepage