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

File metadata

File hashes

Hashes for falfilfa4py-1.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 743b8d7aaee8a2b7e380e6a681fd5dbf889baa77c0711f2aafbd8d1d95c448c7
MD5 f667e4466e305ab3e8668112b84c5c47
BLAKE2b-256 ca522197c622f787de5399f61e01a6ad55324acd840535e08b355e91ca2fbc68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af73043d4e84181387298d5da95bd9de36d7bb78d9adb2ba20a3c34761e558a5
MD5 60f4ae778865b37050ac0594aebbac9f
BLAKE2b-256 944f8946bcf065bfec6b65c804ca7d2366f20b81aaf94b43f7e5d126bfcd687a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a7b3b80c24db84d530cb6bbe8fe893d8d859b6000a2489d165f7eaf8159e98f
MD5 ee9417c849f0f8452165f20fc64b962d
BLAKE2b-256 e0dbdb11eb3a4f76143afa9fb9d7583416c0534dfdc39dd2cbc2e58ccf46a618

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddeeaac0cdf6801de95f2a7d9f844d055e4d225e0d47c99842880ec2e81c3b36
MD5 2e13e0179bd2ddd9d82c845143bb0a9b
BLAKE2b-256 30cfa33dc212dbb4b8008735c353b349c3dde8d971b760b6a2074914ceece970

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for falfilfa4py-1.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1bbbb1172d8b8320e811cf85e9fd711f727788326d8777044adbde45746850a7
MD5 645f40f23389ddc078e0817de817c72d
BLAKE2b-256 0e5cba82a3ec44c77a3da0dbe37c709f1c8095c995417af79b7625dddc4faad0

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