Adaguc server is a C++ application which can be compiled to an executable. A webserver like Apache Tomcat or Apache HTTP server is needed to make it available via the web. Adaguc is hosted on github and consists of several components:

ADAGUC Server with Apache HTTP server

Below an overview of the ADAGUC server is displayed. The server and viewer can be use standalone with other tools as well, due to the use of open standards. When a request to the server is made via the internet, at first a BASH shell script is called. This script sets a number of environment variables and finally calls the ADAGUC server executable. The server on its turn reads out the environment variable (Config file, log file) and connects to the database and reads in NetCDF files. Finally the server returns an image or document. The required environment variables are:

  • ADAGUC_CONFIG - pointer to the configuration file
  • ADAGUC_LOGFILE - pointer where log messages should be stored, includes information logs and error logs
  • ADAGUC_ERRORFILE - optional pointer which logs only error messages
  • ADAGUC_FONT - Place where a TrueType font is stored, e.g. FreeSans.ttf
  • ADAGUC_DATARESTRICTION - Optional pointer which controls access restrictions, by default set to FALSE, can be combinations of "ALLOW_WCS|ALLOW_GFI|ALLOW_METADATA|SHOW_QUERYINFO", separated with the | token.
    • FALSE: No restrictions (default, same as "ALLOW_WCS|ALLOW_GFI|ALLOW_METADATA")
    • ALLOW_WCS: Allows the Web Coverage Service, download of data
    • ALLOW_GFI: Allows GetFeatureInfo requests, e.g. getting information about a certain location
    • ALLOW_METADATA: Allows getting NetCDF header metadata information
    • SHOW_QUERYINFO: When a query has failed, the corresponding query will be presented to the user. This feature is disabled by default.
  • ADAGUC_PATH - optional, is used as variable susbstitution {ADAGUC_PATH} in the configuration files, should point to the adagucserver installation
  • ADAGUC_TMP - optional, is used as variable susbstitution {ADAGUC_TMP} in the configuration files, location where tempfiles need to be written
  • ADAGUC_ONLINERESOURCE - optional, specify the online resource in the CGI script itself, see OnlineResource to configure in the xml file.

The server requires the following libraries:
- HDF5, NetCDF4, UDUNITS, GDAL, LIBXML2, GD, Cairo, Proj.4, SQLITE and PostgreSQL.

Example bash script:


export PROJ_LIB=/build/share/proj/
export ADAGUC_CONFIG=/data/services/config/config.xml
export ADAGUC_LOGFILE=data/log/server.log
export ADAGUC_ERRORFILE=/data/log/server.errlog
export ADAGUC_FONT=/data/fonts/FreeSans.ttf


Configuration details can be found under Configuration, serveral tutorials are available under Tutorials

The server is able to read CF compliant files. In case of projected source data, a number of CF projections are supported. The server uses the ADAGUC standard for projected files, this means that a proj4_params attribute is used in the projection definition. See for details.

The server can read single files, or multiple files varying along a dimension stored together in a directories. The server uses the database to lookup which dates belong to which file and time index. After changing the configuration, the database needs to be filled with data, this can be done with the following command:

adagucserver --updatedb --config myconfig.xml


The viewer is an independent and standalone package. After downloading and extracting the package in a www directory of a webserver, the viewer should already work. The viewer can be downloaded from the ADAGUC software download page at or it can be cloned from the repository at

For the Wiki and documentation see:

ADAGUC_Overview_system_small.jpg View (44.6 KB) Maarten Plieger, 06/15/2015 01:56 PM

ADAGUC_Overview_server.jpg View (45.5 KB) Maarten Plieger, 06/15/2015 02:03 PM

ADAGUC_Overview_server.jpg View (50.4 KB) Maarten Plieger, 06/15/2015 02:20 PM

ADAGUC_Overview_viewer.jpg View (32.1 KB) Maarten Plieger, 06/15/2015 02:30 PM