Project

General

Profile

A. Installation:

EPyGrAM

The EPyGrAM directory is basically composed of 3 subdirectories:
  • epygram: the epygram core library/package
  • apptools: the command-line applicative tools, Python scripts based on epygram
  • site: some additional, external libraries or packages, needed by epygram or at least by some parts of it. Please note that the external packages which source code is managed within the Vortex project can be installed in this directory, if not already installed elsewhere (at Météo France, these are installed under the standard Vortex install).
Once these 3 directories de-tared or GIT-cloned (say, to $EPYGRAM_INSTALL_DIR), one has to:
  1. create a $HOME/.epygram directory
  2. copy the samples userconfig.py and user_Field_Dict_FA.csv, provided in _install directory, to it

Any configuration parameter of epygram.config can be overwritten in the userconfig.py, rather than in the epygram/config.py

The last step of installation is to complete the $PATH and $PYTHONPATH, with:
  • the directory apptools in the $PATH, for command-line tools to be accessible
  • the directories containing each package (epygram, footprints, arpifs4py...) in the $PYTHONPATH. Examples are provided in the _install directory.

Formats specific external libraries

Note that the formats handled by epygram can be deactivated in config, in which case the external libraries needed for a specific format are not needed either.
This allows a lighter installation in case one deliberately want to ignore a format.

In this case, the parameter to be specified in userconfig.py is implemented_formats, which should be copied from epygram/config.py, and removing the undesired formats.

arpifs4py

The arpifs4py library/package contains interfaces to FA/LFI/LFA I/O-routines and ARPIFS global/LAM spectral transforms.
It is composed of 2 nested levels:
  • a python declaration of the functions, interfacing the below Fortran routines (using ctypes "tricks" to convert data from Python to Fortran and reverse)
  • a set of Fortran interface routines, wrapping the calls to existing ARPIFS routines (from ifsaux, trans and etrans projects); these routines are gathered in a .so compiled shared object library.

This compilation is the most tricky part of the EPyGrAM installation.

  1. Create a pack with gmkpack (version 6.6.2 or newer), based (at least) on the latest export version (CY40T1_bf.05), and with target program libs4py
  2. Populate it with the patch patch_libs4py@40T1bf.tar available on module Files of this Redmine project
  3. Compile
  4. Do not forget to take notice of patch_libs4py@40T1bf.tar.info
  5. Copy or link the shared object library created, libs4py.so, to the site/arpifs4py directory of the EPyGrAM directory.

Note1: you may need to recompile some auxiliary dynamic libraries (so-called auxlibs, such as gribex) as shared objects (.so), with compilation options -fPIC and -shared
Note2: it is possible to install EPyGrAM without this package and formats, as mentioned above; spectral transforms will not be available, though.

Vortex packages

The above-mentioned Vortex packages (cf. vortex_packages) are provided in module Files, with several versions associated with epygram versions.
A proper installation should be to de-tar it into the site directory.

Other dependencies

  • mandatory:
  • numpy
  • pyproj
  • scipy
  • optional (to use some more applicative methods):
  • matplotlib
  • mpl_toolkits.basemap
  • pyresample
  • nbsphinx
  • PIL (only for TIFFMF format)

Documentation

The documentation may need to be re-generated locally using the script mk_html_doc.sh in directory epygram/doc_sphinx/
It is then available at epygram/doc_sphinx/html/index.html

B. Getting through:

Please report to the Introduction section of the documentation and the Tutorial !

C. Development & contributions:

Some recommendations:
  • contributors are requested, as much as possible, to follow the PEP8 (https://www.python.org/dev/peps/pep-0008/)
  • build new developments in separate GIT branches, prefixed by your initials
  • create an Issue on this platform to inform about your contribution

The merge of contributions into the master trunk will be done at Météo France, after exchange about the contributions.
However, the authors nor Météo France do not undertake to incorporate all proposed contributions into the main trunk of the code and the official releases.
For a smoother integration and in order to avoid double work by several people, please use the Issues module of this platform (with tracker Evolution) to inform other people about new developments.

D. Known issues:

  • GRIB: several problems due to gribapi...
  • H2DVectorField.compute_direction: has to be checked carefully !
  • mask_threshold in V2D plots does not work properly
  • duplicate points in Gauss grids plots (but non-blocking)
  • overflow in some Gauss grids processing (but non-blocking)