Skip to main content

FA/LFI/LFA for Python

Project description

FALFILFA

Externalized FA - LFI - LFA Formats from IAL

  • LFI : "Logiciel de Fichiers Indexes"
  • FA : "Format Arpege" - overlay on top of LFI
  • LFA : format used for DDH outputs

Installing FALFILFA

Supported Platforms

  • Linux

Requirements

  • Fortran and C compiler( tested On Intel & GNU 11.3.0 and later )
  • CMake
  • ecbuild
  • eccodes : version ECCODES_REQUIRED_VERSION in CMakeLists.txt
  • fiat : version >= commit fdcb622e

Building FALFILFA

Environment variables

$ export ecbuild_ROOT=`<path-to-ecbuild>`
$ export fiat_ROOT=`<path-to-fiat>`
$ export eccodes_ROOT=`<path-to-eccodes>`

Compilers could be set while building the libraries or with thoses env variables :

$ export CC=`<path-to-C-compiler>`
$ export FC=`<path-to-Fortran-compiler>`

Since, we are using ecbuild, you must compile FALFILFA out-of-source, so create a build-directory

$ mkdir build

Configuration of the build happens through standard CMake

$ cmake -S FALFILFA -B build

Extra options can be added to the cmake command to control the build:

  • -DCMAKE_BUILD_TYPE=<Debug|RelWithDebInfo|Release|Bit> default=RelWithDebInfo (typically -O2 -g)

  • -DBUILD_SHARED_LIBS=<BOTH|ON|OFF> default=ON

  • -DENABLE_SINGLE_PRECISION=<ON|OFF> default=OFF

  • -DENABLE_DOUBLE_PRECISION=<ON|OFF> default=ON

  • -DCMAKE_INSTALL_PREFIX=<install-prefix> default=/usr/local (You will need permission to install)

  • -DCMAKE_Fortran_COMPILER=< fortran compiler> default=gfortran or the set FC env variable

  • -DCMAKE_C_COMPILER=< C compiler> default=gcc or the set CC env variable

  • -DENABLE_UTILITIES=<ON|OFF> default=ON

  • -DENABLE_PROGRAMS=<ON|OFF> default=ON

  • -DENABLE_TESTS=<ON|OFF> default=ON

More options to control compilation flags, only when defaults are not sufficient

  • -DCMAKE_Fortran_FLAGS=<fortran-flags>
  • -DCMAKE_C_FLAGS=<c-flags>

Once this has finished successfully, run cmake --build . and cmake --install ..

Testing FALFILFA

Tests are downloaded in ./tests directory when running cmake command. They are downloaded from https://www.data.gouv.fr/fr/ website. Test data is 200 MB. When running tests, the tests results are written to the current build directory.

Building falfilfa4py

To build the falfilfa4py python package (wheel):

export ecbuild_ROOT=`<path-to-ecbuild>`
export gribex_ROOT=`<path-to-your-gribex-root>`
export fiat_ROOT=`<path-to-fiat>`
export eccodes_ROOT=`<path-to-eccodes>`

pip install build
pip install auditwheel
python -m build --sdist --wheel
python -m auditwheel repair dist/falfilfa4py-*-linux_x86_64.whl

Build helper

The script singularity_build.sh, together with sub-scripts in bld/, is designed to help build the libraries and/or the falfilfa4py python package (wheel) within a manylinux container using singularity.

See variables in the header of the script to tune dependencies versions in particular.

  • singularity_build.sh get gets the container image and dependencies clones
  • singularity_build.sh deps builds the dependencies (fiat, eccodes...) (req. to have done get)
  • singularity_build.sh lib builds the libfa_[dp|sp].so (req. to have done get&deps)
  • singularity_build.sh test executes the tests (req. to have done lib)
  • singularity_build.sh wheel builds falfilfa4py wheels for several versions of python (req. to have done get&deps)
  • singularity_build.sh all does all of the above

Caveats

The current version relies on a copy of the GRIB_API_INTERFACE module (grib_api_interface.F90) from IAL, renamed ECCODES_INTERFACE (src/fa/module/eccodes_interface.F90).

This is a temporary workaround, several options are considered to fix this caveat in a near future:

  • relying directly on ECCODES library
  • moving this module in a lower-level library, e.g. eccodes or fiat

Same with ELLIPS64 routine, duplicate of ectrans' ELLIPS.

Reporting Bugs

Issues: https://github.com/ACCORD-NWP/FALFILFA/Issues Contributions: https://github.com/ACCORD-NWP/FALFILFA/Pulls

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

falfilfa4py-1.0.7-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

Details for the file falfilfa4py-1.0.7-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.7-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8054debdc911348bcedd93667cd92c1aa87cea02bb5e3807910b6fc3e48f18d1
MD5 ea1edcec163cc1430fc834f8a27b5951
BLAKE2b-256 b6bb89f6cc21cf1a706862f699c1f3a2da1aa87c7952c0c337c7707879416b3e

See more details on using hashes here.

File details

Details for the file falfilfa4py-1.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e5bfd7c262552e09c6b13541b94c82eba12b7e2cd4795a007922c2d4d0963d6
MD5 1370a8b7cede6f5601681b294991e775
BLAKE2b-256 927de1fdb949cf45d5b6a931c7f085a5c154507af0f850f5558bd781ff4356de

See more details on using hashes here.

File details

Details for the file falfilfa4py-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc502095dd90df02f407c10d31f9e28ba02221690d3ec774cc019311099dadbd
MD5 aa74077249240236cc5255fae90b33c7
BLAKE2b-256 dc917200e5a77df2223af38f27fb99cd165b51e7278f7c0e5cdeea32e9424d21

See more details on using hashes here.

File details

Details for the file falfilfa4py-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05b1073419abbc91dec79c1a42c6e8c56063ccfc33c44d6eb81594dba6270200
MD5 1e04fbbd1c1c69096e11d002374980ce
BLAKE2b-256 ed02e34185b180a1fc88ac8fe2342a766e764fa62c415f3643bb446fccf4990b

See more details on using hashes here.

File details

Details for the file falfilfa4py-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40a75ba21d4fc7bc6a82d2c2b8afe5183f9b2f0d6c64fc93be68de876fa16176
MD5 c479cb5a0dee742b3b59db8518b02f6a
BLAKE2b-256 f2ef47e1718012549b3a37d0aa01a2477b4b7bc3ece77a3fd5b66a19070a9086

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page