How to reproduce and extend this work

This project is designed to be easy to reproduce and extend. Everything involved is kept under version control in a git repository. The repository is hosted on GitHub (and the documentation made with GitHub Pages). The repository is https://github.com/philip-brohan/Proxy_20CR; it contains everything you need to reproduce or extend this work.

If you are familiar with GitHub, you already know what to do (fork or clone the repository): If you’d prefer not to bother with that, you can download the whole thing as a zip file.

As well as downloading the software, some setup is necessary to run it successfully:

These scripts need to know where to put their output files. They rely on an environment variable SCRATCH - set this variable to a directory with plenty of free disc space.

These scripts will only work in a environment with the appropriate software and libraries available. I use conda to manage the required environment - which is specified in a yaml file:

name: ProxyR
channels:
  - defaults
  - conda-forge
dependencies:
# Basics
  - python=3.9
  - numpy=1.19.5 # tf-graphics requires this old version
  - iris=3.0
  - cmocean=2.0
  - parallel
# ML model building and diagnostics
# If you don't have a GPU, tensorflow-eigen might be faster
  - tensorflow-gpu=2.4.*
  - tensorflow-probability=0.12.*
# openexr is not used, but tf-graphics won't install without it (known bug). 
  - openexr=2.5.*
  - openexr-python=1.3.*
# Code formatter
  - black=20.*
# Documentation processor
  - sphinx=4.4.*
# Some packages are only available via pip
  - pip
  - pip:
  # Philip's library for Reanalysis data handling
    - git+https://github.com/philip-brohan/IRData.git@068a6a55bf5f6f687e0bbd072c7b0fe259884365
  # Needed by TensorBoard for profiling
    - tensorboard_plugin_profile
  # For bilinear interpolation
    - tensorflow-addons==0.14
  # For trilinear interpolation
    - tensorflow-graphics

Install anaconda or miniconda, create and activate the environment in that yaml file, and all the scripts in this repository should run successfully.

The project documentation (these web pages) are included in the repository (in the docs directory). The documentation is in reStructuredText format, and uses the Sphinx documentation generator.