Skip to content

A set of RPM packages to supplement Jaspy to provide an scientific analysis environment for CentOS7

Notifications You must be signed in to change notification settings

cedadev/extra-sci-packages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

extra-sci-packages

A set of RPM packages to supplement Jaspy to provide an scientific analysis environment for CentOS7, principally for use on JASMIN.

To use these packages:

source /opt/rh/jasmin-sci/enable

Removed packages

The following packages which were previously supported under JAP are not provided:

  • Any packages provided under Jaspy are not also provided under extra-sci-packages unless it is necessary to do so in order to satisfy a dependency.

  • CMOR: Owing to the strong version-dependency, we now advise groups requiring CMOR to maintain their own installations so that they can manage the version they wish to use, because the extra-sci-packages does not allow for multiple co-existing versions. (A version is in fact provided in Jaspy although it does not include the development libraries.)

    • cmip6-cmor-tables: again because of the strong version dependency, we do not want to include a fixed version as an RPM. Master copies can be found here. (Users should use the branch of relevance, but copy the CMIP6_CV.json file from the master branch.) For convenience, we hope to provide local copies in versioned directories for JASMIN users.
  • The ncBrowse netCDF browser has been discontinued (website contains stale download link)

  • The EMOS library is marked as deprecated by ECMWF (see note on website), as well as the old grib_api interface (see ECMWF's "end of the road" announcement). The grib_api has been superseded by eccodes, which is provided in Jaspy (and had also been provided in JAP for some time). A version of EMOS might be provided in order to satisfy a dependency from another package, but this should not be relied upon.

  • octave-octcdf - the website marks it as obsolete and advises use of the netcdf package instead

  • thea - the GitHub repository has been archived and marked as unsupported

  • pdftk - this was provided using RPMs supplied by PDF Labs; they have not provided a CentOS 7 version (see downloads page)

Libraries

Where a package provides a library and associated header files which you wish to use for compilation, it is necessary to point to it using the compiler flag

-I/opt/rh/jasmin-sci/root/usr/include

and the linker flag

-L/opt/rh/jasmin-sci/root/usr/lib64

This applies whether the library is a shared or static library.

However, for run-time use of a shared library, the enable script sets LD_LIBRARY_PATH so that it will be found automatically even though it is in a non-standard location.

Package-specific documentation

Ferret

You should type source ferret_paths.sh after enabling the extra-sci-packages, as this sets additional ferret-specific environment variables that may be needed.

Octave

A copy of octave exists in Jaspy, but it is provided also here in order to provide a version which contains the netcdf package. Enable the extra-sci-packages after Jaspy to pick this up.

Misr toolkit python bindings

Python bindings are not provided for the Misr toolkit, because this would tie it into a particular python installation. Instead, instructions are provided here for you to compile your own python wrapper under your directory, for the Python installation that you are working with.

The example below assumes that you are working with the default release of Jaspy 2.7. (Note that when tested, the Python 3.7 equivalent gave an error, so it may be that the MTK Python bindings are not supported for Python 3.)

Build example

The following commands are typed at the shell prompt.

# load jasmin-sci tools and Jaspy
source /opt/rh/jasmin-sci/enable
module load jaspy/2.7

# create and activate a virtual environment
virtualenv --system-site-packages my_venv
. my_venv/bin/activate

# get the MTK source (matching the installed version) and build the python
# bindings

wget -O Mtk-src-1.4.5.tar.gz https://github.com/nasa/MISR-Toolkit/archive/v1.4.5.tar.gz
tar xvfz Mtk-src-1.4.5.tar.gz
cd MISR-Toolkit-1.4.5/wrappers/python/
export HDFLIB=/usr/lib64/hdf/
export HDFINC=/usr/include/hdf/
export HDFEOS_INC=/opt/rh/jasmin-sci/root/usr/include/
export HDFEOS_LIB=/opt/rh/jasmin-sci/root/usr/lib64/
ln -s $HDFEOS_LIB/libMisrToolkit.a ../../lib
export CFLAGS=`python-config --cflags`
python setup.py install

Run-time example

The following commands are typed at the shell prompt, except for the example python session, shown indented.

# set up the environment
source /opt/rh/jasmin-sci/enable
module load jaspy/2.7
. my_venv/bin/activate

# get some test data
wget https://gamma.hdfgroup.org/ftp/pub/outgoing/NASAHDF/MISR_AM1_CGAL_2017_F06_0024.hdf

# example python session
python

  >>> from MisrToolkit import *
  >>> r = MtkRegion(37, 50, 60)
  >>> r.center
  (44.327741112333754, -108.92382807624027)
  >>> f = MtkFile("MISR_AM1_CGAL_2017_F06_0024.hdf")
  >>> f.grid_list
  ['AlbedoAverage_1_degree', 'AlbedoAverage_5_degree']

About

A set of RPM packages to supplement Jaspy to provide an scientific analysis environment for CentOS7

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages