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

Dependency to eccodes and fiat must be passed to the cmake command:

  • -Deccodes_ROOT=path/to/eccodes/install
  • -Dfiat_ROOT=path/to/fiat/install

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 data is downloaded in ./tests/... directories when running cmake command. They are downloaded from https://api.sedoo.fr/sedoo-fa-lfi-lfa-rest/data/download platform. Tests data is approx. 200 MB.

To run the tests, go to build directory and type ctest. The tests results are written to a tests_results directory in the 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

Cf. https://github.com/ACCORD-NWP/FALFILFA-bundle

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

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

falfilfa4py-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

falfilfa4py-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

falfilfa4py-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

falfilfa4py-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e903da39db1f18c8d82c7cf5a8ca2e2cc72b818d7c5555e06db85354bfe2ac2
MD5 da7e2f1eeb2f056a94c4d7bc926faafa
BLAKE2b-256 a43175939272140a7c6e87cbc73c39119f9001c96c23809679d25501a8a10e72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db9685a6cb393496aad0fe3c47c3dd119823ac474bf767e1c209a22f3fe877e3
MD5 96c4a5dcd950d4a43d9652462d2bc6d0
BLAKE2b-256 00826ae394b89157c6fd3b585bb271c613c6ded51ec3124fc106d9d472d14698

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c93c5fc842c6d9905be8f63271edb03ddbc40b56c4aa4ae4553d825a9661ea0c
MD5 7f4db1f50419bd4192aca2fdd011b511
BLAKE2b-256 3c074e7875415fb2936b0fa2fd547da59f39a1a5583e7277135f2369a7cae7a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e535971e64ca359401c45f22d396b9d5be1639580dbeb3daead1b2ac0b4a6f9
MD5 6a4f804d0ccc8a194cea8e6d66031838
BLAKE2b-256 f9ffcbf4abbb2295fd957b4c4f0da3f0b8a32f1dbb3aa76e61f76eab72a7c6e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ffb7602afd7524e9f2333f786bde1922c8f9c47ed0ac085d580781363445e35
MD5 281d74667aaf71ea655a598cc5ce633f
BLAKE2b-256 601edd76760c543f07556e1d204e42db6448689959c29d8ecc8d82dae493df3f

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