Skip to content

Generic + Data I/O Libraries

BOOST

http://www.boost.org/ We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

Licensing Terms and Conditions

License

Usage

List available versions

module avail boost
module load boost
module show boost

GDAL

https://gdal.org/

GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source License by the Open Source Geospatial Foundation. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing.

License

List available versions

module avail gdal
module load gdal
module show gdal

GEANT4

http://geant4.cern.ch/

Geant4 is a toolkit to create simulations of the passage of particles or radiation through matter. Applications built on Geant4 can simulate any setup or detector and radiation source, and record chosen output of physical quantities due to source particles and secondaries interacting with the material of the setup.

License

List available versions

module avail geant4
module load geant4

GEOS

https://libgeos.org/

GEOS is a C/C++ library for computational geometry with a focus on algorithms used in geographic information systems (GIS) software. It implements the OGC Simple Features geometry model and provides all the spatial functions in that standard as well as many others. GEOS is a core dependency of PostGIS, QGIS, GDAL, Shapely and many others.

License

List available versions

module avail geos
module load geos
module show geos

GRIB-API

https://www.ecmwf.int/en/elibrary/80529-grib-api

The ECMWF GRIB-API is an application program interface accessible from C, FORTRAN and Python programs developed for encoding and decoding WMO FM-92 GRIB edition 1 and edition 2 messages. A useful set of command line tools is also provided to give quick access to GRIB messages.

License

List available versions

module avail grib-api
module load grib-api

JASPER

http://www.ece.uvic.ca/~frodo/jasper/

The JasPer Project is an open-source initiative to provide a free software-based reference implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e., ISO/IEC 15444-1).

Documentation

Licensing Terms and Conditions

License

List available versions

module avail jasper
module load jasper
module show jasper

HDF5

https://www.hdfgroup.org/HDF5/

The HDF5 technology suite includes:

A versatile data model that can represent very complex data objects and a wide variety of metadata. A completely portable file format with no limit on the number or size of data objects in the collection. A software library that runs on a range of computational platforms, from laptops to massively parallel systems, and implements a high-level API with C, C++, Fortran 90, and Java interfaces. A rich set of integrated performance features that allow for access time and storage space optimizations. Tools and applications for managing, manipulating, viewing, and analyzing the data in the collection. Licensing Terms and Conditions The HDF5 data model, file format, API, library, and tools are open and distributed without charge. License

Libraries

libhdf5.a           - HDF5 C Library
libhdf5_hl_cpp.a    - HDF5 High Level C++ APIs
libhdf5_cpp.a       - HDF5 C++ Library
libhdf5hl_fortran.a - HDF5 High Level Fortran APIs
libhdf5_fortran.a   - HDF5 Fortran Library
libhdf5_hl.a        - HDF5 High Level C APIs

Usage

List available versions

module avail hdf5
module load hdf5

Compiling For Unix platforms, the following compile scripts are included with the binary distribution of the HDF5 software:

  • h5cc: compile script for HDF5 C programs.
  • h5fc: compile script for HDF5 F90 programs.
  • h5c++: compile script for HDF5 C++ programs.
h5cc hdf5_example.c

Generic Compilation

gcc -I$HDF5ROOT/include hdf5_example.c -L$HDF5ROOT/lib -lhdf5 -lsz -lz -lm
g++ -I$HDF5ROOT/include hdf5_example.cpp -L$HDF5ROOT/lib -lhdf5_cpp -lhdf5 -lsz -lz -lm
gfortran -I$HDF5ROOT/include hdf5_example.f90 -L$HDF5ROOT/lib -lhdf5_fortran -lhdf5 -lsz -lz -lm

HDF5 for parallel I/O

(phdf5 website)phdf5

NOTE: you need to load MPI module

mpicc -I$HDF5ROOT/include hdf5_example.c -L$HDF5ROOT/lib -lhdf5 -lsz -lz -lm
mpicxx -I$HDF5ROOT/include hdf5_example.cpp -L$HDF5ROOT/lib -lhdf5_cpp -lhdf5 -lsz -lz -lm
mpif90 -I$HDF5ROOT/include hdf5_example.f90 -L$HDF5ROOT/lib -lhdf5_fortran -lhdf5 -lsz -lz -lm

LIBAEC

https://github.com/MathisRosenhauer/libaec

Libaec provides fast lossless compression of 1 up to 32 bit wide signed or unsigned integers (samples). The library achieves best results for low entropy data as often encountered in space imaging instrument data or numerical model output from weather or climate simulations. While floating point representations are not directly supported, they can also be efficiently coded by grouping exponents and mantissa.

Licensing Terms and Conditions

License

List available versions

module avail libaec 
module load libaec
module show libaec

LIBGD

https://libgd.github.io/

GD is an open source code library for the dynamic creation of images by programmers. GD is written in C, and “wrappers” are available for Perl, PHP, ruby and many other bindings. GD is commonly used to generate charts, graphics, thumbnails, and most anything else, on the fly. It is lite weight and fits usages like web development, embemdedded, or any other usages you may need. It supports transparency, blending, images transformations and various filters. Its design allows the additions of custom features in a very friendly manner.

Documentation

Licensing Terms and Conditions

License

List available versions

module avail libgd
module load libgd
module show libgd

LIBJPEG-TURBO

https://libjpeg-turbo.org/

libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, AVX2, Neon, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, Arm, and PowerPC systems, as well as progressive JPEG compression on x86, x86-64, and Arm systems. On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg, all else being equal. On other types of systems, libjpeg-turbo can still outperform libjpeg by a significant amount, by virtue of its highly-optimized Huffman coding routines. In many cases, the performance of libjpeg-turbo rivals that of proprietary high-speed JPEG codecs.

Documentation

Licensing Terms and Conditions License

List available versions

module avail libjpeg-turbo
module load libjpeg-turbo
module show libjpeg-turbo

LIBXC

https://libxc.gitlab.io/

Libxc is a library of exchange-correlation and kinetic energy functionals for density-functional theory. The original aim was to provide a portable, well tested and reliable set of these functionals to be used by all the codes of the European Theoretical Spectroscopy Facility (ETSF), but the library has since grown to be used in several other types of codes as well; see below for a partial list. Libxc is written in C, but it also comes with Fortran and Python bindings.

Documentation

Licensing Terms and Conditions

License

List available versions

module avail libxc
module load libxc
module show libxc

MAGMA

http://icl.utk.edu/magma/

Matrix Algebra on GPU and Multi-core Architectures (MAGMA) is a collection of next-generation linear algebra libraries for heterogeneous computing. MAGMA supports interfaces for current linear algebra packages and standards (e.g., LAPACK and BLAS) to enable computational scientists to easily port any linear algebra–reliant software component to heterogeneous computing systems. MAGMA enables applications to fully exploit the power of current hybrid systems of many-core CPUs and multi-GPUs/coprocessors to deliver the fastest possible time to accurate solutions within given energy constraints.

Documentation

Licensing Terms and Conditions

License

List available versions

module avail magma
module load magma
module show magma

NETCDF

http://www.unidata.ucar.edu/software/netcdf/

NetCDF (network Common Data Form) is a set of interfaces for array-oriented data access and a freely distributed collection of data access libraries for C, Fortran, C++, Java, and other languages. The netCDF libraries support a machine-independent format for representing scientific data. Together, the interfaces, libraries, and format support the creation, access, and sharing of scientific data. Licensing Terms and Conditions

License

List available versions

module avail netcdf
module load netcdf

Usage

gcc -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf -lm
g++ -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf_c++ -lnetcdf -lm
gfortran -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdff -lnetcdf -lm

NETCDF for parallel I/O

NOTE: you need to load MPI module

mpicc -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf
mpicxx -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdf_c++ -lnetcdf
mpif90 -I$NETCDFROOT/include netcdf_example.c -L$NETCDFROOT/lib -lnetcdff -lnetcdf -lm

PROJ

https://proj.org/

PROJ is a generic coordinate transformation software that transforms geospatial coordinates from one coordinate reference system (CRS) to another. This includes cartographic projections as well as geodetic transformations. PROJ is released under the X/MIT open source license

Documentation

Licensing Terms and Conditions

License

List available versions

module avail proj
module load proj
module show proj

QT

https://www.qt.io/

Qt is a cross-platform application framework for desktop, embedded and mobile devices. It is widely used for developing application software with graphical user interfaces (GUIs), but it is also used for non-GUI programs such as command-line tools and consoles for servers.

License

List available versions

module avail qt
module load qt

UDUNITS

http://www.unidata.ucar.edu/software/udunits/

The UDUNITS package supports units of physical quantities. Its C library provides for arithmetic manipulation of units and for conversion of numeric values between compatible units. The package contains an extensive unit database, which is in XML format and user-extendable. The package also contains a command-line utility for investigating units and converting values.

UDUNITS

Usage

List available versions

module avail udunits
module load udunits
module show udunits