Data and Source Code
This page contains the code, input data, and experiment output for the research article, "Reconstructing paleoclimate fields using online data assimilation with a linear inverse model" (2017) in the Climate of the Past journal.
Authors:
Walter Perkins [wperkins (AT) atmos (DOT) washington (DOT) edu]
Gregory Hakim [ghakim (AT) uw (DOT) edu]
Discussion Paper (DOI:10.5194/cp-2016-129)
Experiment Code
LMR_code.tar includes the source code used to run all experiments in this study. A short README on the basics of this code are provided in the lmr_src directory in the tarball.
LMR_src.tar
The linear inverse modeling package developed for this project,
pyLIM
(release v0.8), can be acquired from github. After
downloading/cloning the package, install it by navigating to the source
folder and using the command: python setup.py install
Input Data
This tarball contains pre-processed input data in the default folder structure the LMR code utilizes. Untarring this file and pointing the configuration to the path of the input data directory is enough to run the experiments. Input data consists of some pickle and HDF5 files representing preprocessed data (proxy records, calibrated PSMs [observation models], lim calibrations, and pre-averaged gridded data). Config flags related to ignoring pre-processed files (e.g. core.ignore_pre_avg_files, and forecaster.LIM.ignore_precalib) need to be set to false in order to run using this input data.
LMR_input_data.tar.gzExperiment Output
The experiment output tarballs include output files for the global mean and spatial fields of surface temperatures between blending coefficients of 0.7 <= a <= 1.0, and the LMR_config.py files used for the experiment. All reconstructions cover the years from 1850 - 2000. The numerical output is stored as a numpy zip file (*.npz) which can be opened in python using the numpy load function. Note that loading using this function returns a dictionary-like object where different variables are stored as key-value pairs.
Offline Experiment
Offline (no forecasting) experiment used for comparison.
offline_exp_output.tar.gzPersistence Forecast Experiment
Reconstructions using persistence forecasts.
persistence_exp_output.tar.gz20CR LIM Experiment
Reconstructions using 20th Century Reanalysis calibrated LIM forecast.
20cr_lim_exp_output.tar.gzBE LIM Experiment
Reconstructions using Berkeley Earth calibrated LIM forecasts
be_lim_exp_output.tar.gzCCSM4 LIM Experiment
Reconstructions using CCSM4 Last Millennium calibrated LIM forecasts
ccsm4_lim_exp_output.tar.gzMPI LIM Experiment
Reconstructions using MPI Last Millennium calibrated LIM forecasts
mpi_lim_exp_output.tar.gz
Folder Structure
experiment_name
+-> monte carlo iteration folders(e.g. r0, r1, r2, ...)
+-> blending coefficient value folders(e.g. a0.7_d0.00)
+-> experiment output (LMR_config.py, ensemble_mean_tas_sfc_Amon.npz, gmt_ensemble.npz)
File Descriptions
ensemble average of reconstructed surface temperature anomaly fields in a numpy zip file with the following data:
| varname | description |
|---|---|
| nlat | length of latitude dimension |
| nlon | length of longitude dimension |
| nens | number of ensemble members that went into the average |
| years | reconstructed years |
| lat | grid of latitudes (nlat x nlon) |
| lon | grid of longitudes (nlat x nlon) |
| xam | analysis output fields (nyears x nlat x nlon) |
| xbm | static prior fields (nyears x nlat x nlon) NOTE: This is not the blended prior! |
full ensemble of reconstructed global mean temperature anomalies in a numpy zip file with the following data
| varname | description |
|---|---|
| recon_times | reconstructed years |
| gmt_ensemble | global average temerature anomalies (nyears x nens) |
| nhmt_ensemble | north hemisphere average temperature anomalies (nyears x nens) |
| shmt_ensemble | south hemisphere average temperature anomalies (nyears x nens) |
the configuration used in the experiment
Analysis Notes
The GMT analysis of the paper was performed using the average over all ensemble members and all Monte Carlo iterations. The averages were centered on the 1900 - 2000 mean.
Bootstrap uncertainty estimates were done using random 100 member samples from the total ensemble (10^4 members, 100 ensemble members x 100 MC iterations). The sample average was then centered to the 1900 - 2000 average before metric calculation.
GISTEMP trend uncertainty was calculated using bootstrap resampling of the timeseries (121 members sampled with replacement) followed by a linear trend calculation.
Revisions
-
v1.2
- Added clarifications about experiment output data
-
v1.1
- Added coauthor's email address
- Added instructions for installing pyLIM to the LMR code section
-
v1.0
- Initial webpage creation for Code and Data