Horizon 2020 H2020-EO-2014 New ideas for Earth-relevant Space Applications
EUSTACE: EU Surface Temperature for All Corners of Earth https://www.eustaceproject.org/
The EUSTACE project produced:
- Surface air temperature estimates (with estimates of uncertainty) for all surfaces of Earth, derived from satellite surface skin temperature retrievals
- Global daily analyses of surface air temperature (with estimates of uncertainty) since 1850, based on combined information from satellite and in situ data sources
The data products are available via the CEDA archive.
The code used to produce these data products is located in the eustace-data/eustace-system repository.
This repository contains code modules for a partial implementation of an extended method for global daily analyses. It its present form it does not produce output.
This repo is archived and static - we are not able to reply to comments, suggestions for improvements, bug fixes or pull requests.
Further development of this code will take place under https://github.com/finnlindgren/eustace-ambitious
The code uses the cmake build system:
- mkdir build
- cd build
- cmake ../src
- make
Partial system requirements under Ubuntu: cmake, libcppunit, libopenmpi-dev, libboost-all-dev, libpnetcdf-dev, doxygen
The are three main modules:
- eustace: Reading the intermediate raw binary data files produced by eustace-system
- fmesher: Handling unstructured triangulation mesh data structures; Originally part of R-INLA
- ambitious: A collection of submodules for an extended method, handling join estimation of daily mean temperatures and daily temperature ranges with non-Gaussian marginal distributions.
All code in the fmesher and ambitious modules was written by Finn Lindgren
The ambitious C++ modules are:
- qtool Matrix methods for block calculations; solving linear systems and computing conditional covariances.
- poq Functions for the POwer Quantile model used for the diurnal temperature range distributions.
- po_tool Program Options methods to allow algorithm and data locations options to be set in text configuration files, based on Boost::program_options.
- bidirmap Bidirectional maps; low level methods needed e.g. to navigate the hierarchically structured global triangulation at different subdivision levels.
- timer Timing tool used for algorithm testing.
- versions Method for keeping track of the source file versions.
- test A collection of unit tests.
- rarandom Repeatable random access random number sequences: allows rerunning the exact same simulation generation, including the problem setup code, for the entire ensemble.
- po The Program Options methods that are specific to the Ambitious system.
- observe Methods for interfacing with the EUSTACE raw binary data reader, restructuring the data into the required internal formats.
- debuglog Methods for logging program status and actions.
- blocks The core system for scanning through data and structuring the model into its constituent components.
- to_string Helper methods for I/O.
- ostreamer Helper methods for I/O.
- ncdf Wrapper module for calling plain netcdf reader functions, or handling parallel netcdf actions.
- meshes Methods for interfacing with the point locator methods in fmesher, and wrapping the logic for space-time basis functions of various types.
- informal Standalone programs that make use of the other modules, used for high-level testing, and partial implementation of the block-scale-solver needed by the PCG iterations.
EUSTACE has received funding from the European Union's Horizon 2020 Programme for Research and Innovation, under Grant Agreement no. 640171