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

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

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.5-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

falfilfa4py-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.5-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7745f81e8d556d7306f792a2bacdff4ed682d83b8db6009dccd4a07f0e3b4520
MD5 9e9a5a09f2ec16201749bf8f1039c435
BLAKE2b-256 fb47c04593e04373476b9237f2567aec64fc011da4ea1aaf9e71000e068674a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4dc2f69a2227b98ffe8a67d59de33f51039446c81ed0c5141b4fde7172a78036
MD5 7b1e02a7f91ba184834337ea061f7052
BLAKE2b-256 2e86745f68afadf137b9a406ae23a38e3480fba965e1e701ce1e623d49c7bfa8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14fd2739a96879ed63db0082fc5178bda54bcb0d8ead75ade39473cb348f9a03
MD5 75ec37526dcf7a83a32ace176e6d9d49
BLAKE2b-256 8c191e77276753081c5d2a03c9832d2a638fdcf4c2cd328129a3a70f69b26863

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f1d97deff597bdc44656378d03d090ea709d9c8142e1eb3ad4df4721a680c76
MD5 2adf25c351a5a48ddb8b11e9d2bf30a6
BLAKE2b-256 97bc208a28da95cb62985756827039051452a942a6ec17d07c9cae76a96c9a63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d81d1319580d51473e95adf5e1bd0c9f84b41f48f655d7acb67769301c08c402
MD5 ea341b5fefef387476475a8a8509e0cd
BLAKE2b-256 aba3c4f2efbbbff8a55a82ff9826d85aaa7307c05635572320a132a03a965461

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