Metadata-Version: 2.4
Name: gsv-interface
Version: 2.12.0
Summary: Generic State Vector Interface for Destination Earth data.
Author-email: Iker Gonzalez-Yeregi <iker.gonzalez@bsc.es>
License-Expression: Apache-2.0
License-File: LICENSE.txt
Keywords: Climate,ClimateDT,Data,Destination Earth,GSV,Generic State Vector
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Requires-Dist: cdo
Requires-Dist: cfgrib
Requires-Dist: dask
Requires-Dist: eccodes
Requires-Dist: healpy
Requires-Dist: jinja2
Requires-Dist: netcdf4
Requires-Dist: numpy
Requires-Dist: packaging
Requires-Dist: polytope-client
Requires-Dist: pyfdb==0.1.2
Requires-Dist: pyyaml
Requires-Dist: smmregrid>=0.1.1
Requires-Dist: sparse
Requires-Dist: xarray
Provides-Extra: all
Requires-Dist: gsv[check,doc,test]; extra == 'all'
Provides-Extra: check
Requires-Dist: black<24,>=23; extra == 'check'
Requires-Dist: isort[colors]<6; extra == 'check'
Provides-Extra: doc
Requires-Dist: docutils>=0.18; extra == 'doc'
Requires-Dist: myst-parser>=0.18; extra == 'doc'
Requires-Dist: numpydoc>=1.1; extra == 'doc'
Requires-Dist: pydata-sphinx-theme>=0.13; extra == 'doc'
Requires-Dist: sphinx-design>=0.3; extra == 'doc'
Requires-Dist: sphinx>=5; extra == 'doc'
Provides-Extra: test
Requires-Dist: pytest-cov>=3; extra == 'test'
Description-Content-Type: text/markdown

# GSV interface
A tool for accessing the GSV data from `FDB` and converting it into `xarray`.


## Core idea
The current approach can be summarized in three steps:

 1. Use `pyfdb` to request data from the `FDB`. This will return a `pyfdb.Dataretriever` file-like object from which you can read all GRIB messages matching a given request.

 2. Use `eccodes-python` to decode the necessary information of each GRIB message (data, coordinates, attributes...). A custom iterator (`MessageIterator`) is  used to iterate over each message in the `pyfdb.DataRetriever` object.

 3. If requested by the user, interpolate the result to a regular LonLat grid of choice.

All requested messages are packed in a single `xarray.Dataset` object and returned to the user.

## Installation instructionss
The `gsv-interface` package is available to install through pip. It can be installed with the folloeing command:

```
pip install gsv-interface
```

## Checking installation
Top check the installation was succesfull run Python and try to import `gsv`.
```
>>> import gsv
>>> gsv.__version__
```
This should print the version number of the chosen release.

 ## Dependencies
The followin non-Python libraries are required:
 - ecCodes: https://github.com/ecmwf/eccodes
 - fdb: https://github.com/ecmwf/fdb


 This tool depends on the following Python modules, which are automatically installed though `pip`.

  - "pyfdb==0.1.2",
  - "numpy",
  - "xarray",
  - "eccodes",
  - "healpy",
  - "dask",
  - "netcdf4",
  - "cfgrib",
  - "sparse",
  - "cdo",
  - "smmregrid==0.1.1",
  - "polytope-client",
  - "pyyaml",
  - "jinja2",
  - "packaging"

## Documentation

Docs based on sphinx can be found in the `docs/` directory of the repository.

Build dependencies for the docs can be installed with the following command (it's recommended to run it in a clean environment):

```
pip install -r requirements.txt
```

Then the docs can be built with:

```
make html
```

The resulting html docs can be then found in:

```
docs/build/html/index.html
```