2. DEPENDENCIES

You need Python and a machine that can run it, and a network
connection; there are no explicit operating system or CPU architecture
dependencies so "any" operating system or CPU should be okay.

Python comes in several versions. We recommend Python 2.6 or Python
2.7, but ccc-gistemp should work on any version of Python from the
2.x branch (since 2.4). It will not work with Python 3.x. Support for
Python 2.4 (and to some extent 2.5) remains fragile, and it has caused
some problems in the past.

The code should run on OS X, FreeBSD, Windows, and probably a variety of
other Unix-like operating systems.

A network connection is required to download the input files (which
need only be done once), and to display an optional graph from the
results. If you use a proxy to access the internet then Python requires
that the "http_proxy" environment variable is set. The proxy will need
to handle both HTTP and FTP requests (this seems to cause some trouble,
see "INPUT DATA" below for downloading data by hand).

Python may already be installed on your machine (for example, it comes
pre-installed on OS X), it may be possible to install it using your
operating system's package manager; for Windows you can download an
installer from http://www.python.org/download/ . We recommend you use a
stable production release from the Python 2.x series (Python 3.x will
not work).

3. INSTALLATION

Unpack ccc-gistemp-0.6.x.tar.gz.

4. INPUT DATA

ccc-gistemp uses input data in the subdirectory input/. This input
data includes large files (a few megabytes to a few dozen megabytes)
of temperature records from GHCN, USHCN, and sea surface data, and
small files of additional temperature records and station tables from
GISS. These files are all specified in config/sources, and there is
code in tool/fetch.py to fetch them from the originating organisations
over the internet. It will not download a file if it is already
present in the input/ directory, so if you wish to run ccc-gistemp
with updated input data, you can delete the input/ directory before
you start.

Downloading the input data is a common causes of problems. Maintaining
the part of the code that does this (which has nothing to do with the
core GISTEMP algorithm) is a significant cost. If the tools
we provide do not seem to download the input data correctly, you can
download the data "by hand" and install it in the input/ directory. See
doc/input.txt for more details.

5. RUNNING

To run ccc-gistemp:

python tool/run.py

That command runs steps 0 through 5. To run only a single step or a shorter
sequence of steps, use the -s argument. For instance:

Running the code should write to the input/ directory when fetching
input data, but subsequently only write to the work/ log/ and result/
directories. Before running tool/run.py, these directories can all be
deleted (if you wish, for example, to have a clean run).

This will produce a file called index.html in the current directory,
including various statistical comparisons of the two result files.

7. REGRESSION TESTING

To test ccc-gistemp against GISTEMP:

python tool/regression.py

This will fetch a tarball from
http://ccc-gistemp.googlecode.com/files/ccc-gistemp-test-2009-12-28.tar.gz
and uncompress it to a local directory ccc-gistemp-test-2009-12-28/.
This contains input files and result data kindly provided to the
ccc-gistemp project by Dr Reto Ruedy of NASA GISS, from an actual run
of GISTEMP at GISS on 2009-12-28. Once the tarball is fetched and
unpacked, the local ccc-gistemp code will be run on it and the results
compared, generating a report in index.html.

Note that there are indeed some changes between the results of the
reference run and 0.4.1 (and subsequent versions), mainly caused
by a change to the GISTEMP algorithm, for rural/urban station
distinction, made at GISS since the reference run. We have replicated
that change in ccc-gistemp (see
http://ccc-gistemp.googlecode.com/issues/detail?id=54). To test
ccc-gistemp running the same algorithm as the reference GISTEMP
run, edit code/parameters.py to set use_global_brightness = False
before running tool/regression.py.

C. COPYRIGHT AND LICENSE

Redistribution and use of this document in any form, with or without
modification, is permitted provided that redistributions of this
document retain the above copyright notice, this condition and the
following disclaimer.

THIS DOCUMENT IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.