GISTEMP: An Overview

March 2, 2009
This is the first in a series of articles about GISTEMP, a software system created by the NASA Goddard Institute for Space Studies (GISS) that is used to produce the GISS Surface Temperature Analysis.  GISTEMP processes data files containing historical temperature data from various sources in order to create a set of output files that represent temperature anomalies for land areas only or for both land and sea areas on a global, zonal, and gridded basis.  The output files can be used as is or fed into other programs in order to produce graphs, charts, maps, and other products to display temperature changes over time.  GISTEMP creates one of the major temperature series used by climate researchers and the Intergovernmental Panel on Climate Change (IPCC) to analyze trends in global warming and climate change.

The GISTEMP system is available to download from the GISS web site as a compressed tar file.  There is a document available on-line and included in the tar file that minimally describes how the system works and the basic operation of each step involved.  After downloading, uncompressing, and extracting the tar file there will be five top level directories named STEP0, STEP1, STEP2, STEP3, and STEP4_5 as well as the text file gistemp.txt, which contains the aforementioned minimal documentation.  Each top level directory contains various subdirectories, data files, shell scripts, python scripts, and/or Fortran source code. The software assumes it will be running on a UNIX-like system with a minimum of ksh, some basic UNIX utility programs, a Fortran 90 or 95 compiler, and Python version 2.5 or higher already installed.  The input data files necessary to run the system are not included as part of the download. 

This is not a system you can expect to download, install, and run in a few minutes; plan on spending at least several hours.  It helps to have significant experience with UNIX, Fortran, Python, porting software to new systems, and good general troubleshooting skills in order to make the system operational as it really is a kludge.  While there are a few portions that seem to be well written and actually have comments, for the most part it appears to be a hack job that was just thrown together and it was obviously not designed or developed by software and system engineering professionals.  Apparently the normal standards you would expect to be followed on a government project for software design, development, coding, testing, documentation, quality control, and configuration management do not apply at GISS, at least not for GISTEMP.  It is hard to believe that we may spend hundreds of billions of dollars for global warming mitigation activities at least partially based on the outputs from this system.

It is not overly difficult to get the system operational, but it does require considerable patience and perseverance.  You will have to set environment variables, tweak some of the scripts, build and install some Python extensions, download the input data files, massage some of the data files into the expected format, and hunt down a few other files that are required but not included in the download.  Because parts of the system are written in Fortran, you may also run into big endian/little endian issues depending on your hardware.  There are undoubtedly a number of other programs and utilities that GISS has developed to generate, analyze, and maintain the input data files among other things but, for some reason, they chose not to include them and make things easier.  The lack of documentation means there is a lot of trial and error involved.  In some cases you will probably even have to dig through the code to determine file formats or figure out why some part or another is not working.  If you really want to get the system up and running but run into problems you can't resolve, we may be able to help.  Just send us a message and we will try to assist you.