Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Warning
titleMetview now uses ecCodes

With version 4.8.0, Metview is being built by default with ecCodes instead of GRIB-API for GRIB handling. See November synchronised release news item for more information.

Overview

From version 4.5, Metview uses CMake for its compilation and installation. This is part of the process of homogenising the installation procedures for all ECMWF packages. 

As with configure, CMake will run some tests on the system to find out if required third-party software libraries are available and notes their locations (paths). Based on this information it will produce the Makefiles needed to compile and install Metview.

CMake is a cross-platform free software program for managing the build process of software using a compiler-independent method.

Requirements

Platforms

At ECMWF, openSUSE 11.3, openSUSE 13.1, SLES 11 and Red Hat 6 Linux systems (64bit) were used for the regular usage and testing of Metview. Other Linux platforms are used for occasional testing.

ECMWF support libraries

All required support libraries from ECMWF are available without charge from the Software Services web page:

To produce plots, Magics must be installed:

Magics++ (2.22 or higher is required)

...

for a 'pure batch' installation of Metview with no user interface, it is possible to supply Magics with the option -DENABLE_METVIEW_NO_QT

The following two libraries need to be installed (both are required, even if you will not handle GRIB or BUFR data):

  • GRIB_API (1.9.9 or higher)

    • see the Installation FAQ for details of building GRIB_API for Metview, as this contains some important information

  • Emoslib

    • version 392 or higher

    • compiled with double floating point precision (answer “y” to “Do you want 64-bit reals? [y,n]”)

    • must be built with GRIB_API support

    • 64-bit versions should be built with -fPIC compilation flag

    • Remember to set the ARCH environment variable before building Emoslib, e.g. export ARCH=linux.
Info

The latest versions of EmosLib depend on GRIB_API, therefore GRIB_API must be installed before EmosLib.

Required third-party software

First, ensure that all third-party libraries required by Magics and GRIB_API are installed (this is likely to have been fulfilled already unless Magics was built on another system and copied across).

Additionally, the following list of software should be installed on your system before you try to install Metview. If you use a package manager, such as RPM, to install software make sure to include the corresponding development packages with the header files. CMake will test for these libraries and give error messages if an essential one is missing.

...

Include Page
SUP:General CMake installation instructions
SUP:General CMake installation instructions

Requirements to build Metview

The following table lists the dependencies Metview requires to be built from source. Please note, if you install these package from source you also might have to install the respective "-devel" packages.

Compilers
C++http://gcc.gnu.org/ 
Fortranhttp://gcc.gnu.org/fortran/ 
Utilities

make

http://www.gnu.org/software/make/ 

Third party packages

(best installed through system package manager)

Qthttp://www.qt.io/

if Metview's user interface is required (version 4.6.2 or later of Qt is needed).

Note that on some systems it is also necessary to install the libQtWebKit-devel development package (it may have different names on different systems)

...

...

...

...

...

OpenMotif (if  enabling the old user interface with -DENABLE_MOTIF)

...

gdbm

...

gdbm/ 
bashhttps://www.gnu.org/software/bash/ 
ImageMagickhttp://www.imagemagick.org/script/index.phpif Metview's user interface is required
projhttp://trac.osgeo.org/proj/if OPERA radar data support is required
netcdf 4http://www.unidata.ucar.edu/software/netcdf/

Please note: You also need to install the legacy C++ interface and HDF5

curl Optional for web services support (WMS, Download module)
bison  
flex  
ECMWF libraries
grib-apiGRIB-API HomeAlternatively you can use ECC
emoslibEMOS 
odb-apiODB-API Homeif ODB support needed
magicsMagicsif plotting support is needed. Note that Magics should be configured with the -DENABLE_METVIEW=ON option.

For a 'pure batch' installation of Metview with no user interface, it is possible to supply Magics with the option -DENABLE_METVIEW_NO_QT=ON

 

If you wish to access OPERA radar BUFR data, then you will need to also install the proj4 development libraries.

Compilation environment

Any C++ Compiler which supports features required for the ANSI C++ standard from 1998 (STL, namespaces, templates) should work with Metview. At ECMWF we tested GCC’s g++ 4.1, 4.3 and 4.5 successfully. A Fortran compiler is required to build some of Metview's modules. It will also be required to build EmosLib, for which Cray pointer support is required. At ECMWF the Portland Pgf90 compiler 7.2 and GFortran 4.5 and newer were tested successfully on Linux platforms.

Notes for installers of Metview 3

If you have installed Metview 3 before, then here are some things to note. Metview 4 does not use directly OpenGL for its on-screen graphics; therefore, it is not necessary to build your own Mesa library anymore. However, Metview 4 does not come with its own Emoslib; therefore, it will be necessary to install your own.

Metview 4 can be installed side-by-side with an existing Metview 3 installation. However, note that the default startup script will be

/usr/local/bin/metview

so make sure this will not clash with an existing installation. See Compilation and installation on page 6 for details of flags which will allow you to change this.

Compilation, testing and installation

It is advisable to perform an 'out-of-source build', meaning that the build should take place in a directory separate from where the source code is. Here is an example set of commands to set up and build Metview using default settings:

Code Block
languagebash
# unpack the source tarball into a temporary directory
mkdir -p /tmp/src
cd /tmp/src
tar xzvf Metview-4.5.0-Source.tar.gz

# configure and build in a separate directory
mkdir -p /tmp/build
cd /tmp/build
cmake /tmp/src/Metview-4.5.0-Source
make

The Metview distribution includes a small set of tests which can help ensure that the build was successful. To start the tests, type:

Code Block
make test

 

Although it is possible to run Metview directly from the build directory, it is best to install it. The installation directory is /usr/local by default, but can be changed by adding the -DCMAKE_INSTALL_PREFIX  flag to the cmake command. In this case, the configure, build, test and install step would look like this:

...

languagebash

...

CMake options used in Metview

CMake options are passed to the cmake command by prefixing them with -D, for example -DENABLE_UI=OFF.

CMake option
Description
Default
CMAKE_INSTALL_PREFIXwhere you want to install Metview /usr/localCMAKE_BUILD_TYPE

to select the type of compilation:

  • Debug
  • RelWithDebInfo
  • Release
  • Production

In most cases Release is preferable for an optimised version with no debug information

RelWithDebInfoCMAKE_CXX_FLAGSadditional flags  for the C++ compiler, e.g. -DCMAKE_CXX_FLAGS="-O2 -march=native" CMAKE_C_FLAGSadditional flags  for the C compiler CMAKE_Fortran_FLAGS
additional flags  for the Fortran compiler 
ENABLE_UIenables the Qt-based user interfaceON
ENABLE_
MOTIF
QT5
enables the deprecated Motif-based

build the Qt user interface

Metview can be started with option -old-ui

using Qt5 libraries
(also requires that Magics is built with this option enabled)
might require the flag: -DCMAKE_PREFIX_PATH=/path/to/qt5/

OFF
ENABLE_PLOTTINGenables plotting capabilities using
Magics
MAGPON
ENABLE_OPERA_RADARenables the Opera Radar Filter module (requires the proj4 library and headers)OFF
ENABLE_MARSenables MARS access (not required if using through the Web API)OFF
MARS_LOCAL_HOMEsets the path to where local MARS is installed 
ENABLE_ECCODESEnables ecCodes being used instead of GRIB_API. We recommend
to use ecCodes, but if require GRIB-API you can set this to OFF.
ON
ENABLE_ODBenables processing and plotting of ODB dataOFF
ENABLE_MARS_ODBenables ODB capabilities in MARS clientOFF
ENABLE_USAGE_LOGenables logging of Metview startup callsOFF
LOG_DIRpath to where to log the Metview startup calls 
METVIEW_SCRIPTname of the generated Metview startup scriptmetview
EXTRA_CONFIG_PATHpath to optional directory containing metview_local* script files 
ENABLE_QT_DEBUGoutputs additional log messages from Qt-based modulesOFF
EXTRA_TITLEbuild-specific title to add to the log entries 
ENABLE_INPEenables INPE modulesON
Path options - only required when support libraries are not installed in default locations
CMake OptionDescriptionNotes
ECCODES_PATHpath to where ecCodes has been installed 
GRIB_API_PATHpath to where GRIB_API has been installed 
MAGICS_PATHpath to where Magics has been installedOnly required if plotting is enabled
NETCDF_PATHpath to where netCDF has been installed 
ODB_API_PATHpath to where ODB_API has been installedOnly required if ODB is enabled
ODB_PATHpath to where the original ODB has been installedOptional if ODB is enabled
EMOS_PATHpath to where Emoslib has been installedAlso set EMOS_LIB_NAME
FDB_PATHpath to where fdb has been installedOnly required if MARS is enabled
PROJ4_PATHpath to where proj4 has been installedOnly required if OPERA Radar is enabled
FLEXTRA_PATHpath to where the FLEXTRA executable has been installedSee Tutorials for more on FLEXTRA

Notes for installers of Metview 3

If you have installed Metview 3 before, then here are some things to note. Metview 4 does not use directly OpenGL for its on-screen graphics; therefore, it is not necessary to build your own Mesa library anymore. However, Metview 4 does not come with its own Emoslib; therefore, it will be necessary to install your own.

Metview 4 can be installed side-by-side with an existing Metview 3 installation. However, note that the default startup script will be

/usr/local/bin/metview

so make sure this will not clash with an existing installation. See the table of CMake options for the flag which will allow you to change this.

FAQ

See also the Installation FAQ.