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

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 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

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.6-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.6-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.6-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.6-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.6-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.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for falfilfa4py-1.0.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77aa54aff46645991a04ce2b3a373cd45878ea71947d3835ee932c67df714bf9
MD5 1151f838c046203a68e6874d0c2ad77a
BLAKE2b-256 b69b621cad276a8b8040405d0a8289f2d62769fecce4f6f7fa56407052d3e5c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e702edc3880f25396bb677d410ae5149cd8769161f89fcc0715c44f2c7969b7d
MD5 268891de66f751ab06ed122445c2d0f3
BLAKE2b-256 e76a461d7d043e648b43fbdedefee56556154866215c680f12f5e6b63db7c419

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04e7af9c02d1ac1fd04a18b959f775fb756322e509cbe2fe6bec14c51012ea7e
MD5 0ddcfc0293a75074c871c9d06a444a4f
BLAKE2b-256 c4dbdae2cbe37b4c21a60433b9ca89d5ea127325faddf6de9a147e1a94ba6030

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7415aa5fc16159ca0e8dc8089def75318e5a151a8f5a53c66d55c2e911057c4a
MD5 63ff2a781c017719028e49de3758b6cf
BLAKE2b-256 9ff9cc29d4cfc6021a4b3f3e5e610c1859d29ea0bf1f766b8be429dec411b318

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d861ea2d1814d8367c4f60bab553aca865c0021e44bc9822013a0f082d93af69
MD5 aa30541388fd3de904366ddcec31cec0
BLAKE2b-256 641f5786eb3f528640779ee8dc70455c2495b96c34c95feea507ed675edb777d

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