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
Usage
List available versions
module avail boost
module load boost
module show boost
GDAL¶
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.
List available versions
module avail gdal
module load gdal
module show gdal
GEANT4¶
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.
List available versions
module avail geant4
module load geant4
GEOS¶
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.
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.
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).
Licensing Terms and Conditions
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
List available versions
module avail libaec
module load libaec
module show libaec
LIBGD¶
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.
Licensing Terms and Conditions
List available versions
module avail libgd
module load libgd
module show libgd
LIBJPEG-TURBO¶
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.
Licensing Terms and Conditions License
List available versions
module avail libjpeg-turbo
module load libjpeg-turbo
module show libjpeg-turbo
LIBXC¶
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.
Licensing Terms and Conditions
List available versions
module avail libxc
module load libxc
module show libxc
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.
Licensing Terms and Conditions
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
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¶
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
Licensing Terms and Conditions
List available versions
module avail proj
module load proj
module show proj
QT¶
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.
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.
Usage
List available versions
module avail udunits
module load udunits
module show udunits