# 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
```
Raw data
{
"_id": null,
"home_page": null,
"name": "gsv-interface",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Climate, ClimateDT, Data, Destination Earth, GSV, Generic State Vector",
"author": null,
"author_email": "Iker Gonzalez-Yeregi <iker.gonzalez@bsc.es>",
"download_url": "https://files.pythonhosted.org/packages/41/64/4e4360dc907b55d965f0b4daa051d0a38693a9942d7e882b7f3f27eadc60/gsv_interface-2.13.1.tar.gz",
"platform": null,
"description": "# GSV interface\nA tool for accessing the GSV data from `FDB` and converting it into `xarray`.\n\n\n## Core idea\nThe current approach can be summarized in three steps:\n\n 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.\n\n 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.\n\n 3. If requested by the user, interpolate the result to a regular LonLat grid of choice.\n\nAll requested messages are packed in a single `xarray.Dataset` object and returned to the user.\n\n## Installation instructionss\nThe `gsv-interface` package is available to install through pip. It can be installed with the folloeing command:\n\n```\npip install gsv-interface\n```\n\n## Checking installation\nTop check the installation was succesfull run Python and try to import `gsv`.\n```\n>>> import gsv\n>>> gsv.__version__\n```\nThis should print the version number of the chosen release.\n\n ## Dependencies\nThe followin non-Python libraries are required:\n - ecCodes: https://github.com/ecmwf/eccodes\n - fdb: https://github.com/ecmwf/fdb\n\n\n This tool depends on the following Python modules, which are automatically installed though `pip`.\n\n - \"pyfdb==0.1.2\",\n - \"numpy\",\n - \"xarray\",\n - \"eccodes\",\n - \"healpy\",\n - \"dask\",\n - \"netcdf4\",\n - \"cfgrib\",\n - \"sparse\",\n - \"cdo\",\n - \"smmregrid==0.1.1\",\n - \"polytope-client\",\n - \"pyyaml\",\n - \"jinja2\",\n - \"packaging\"\n\n## Documentation\n\nDocs based on sphinx can be found in the `docs/` directory of the repository.\n\nBuild dependencies for the docs can be installed with the following command (it's recommended to run it in a clean environment):\n\n```\npip install -r requirements.txt\n```\n\nThen the docs can be built with:\n\n```\nmake html\n```\n\nThe resulting html docs can be then found in:\n\n```\ndocs/build/html/index.html\n```",
"bugtrack_url": null,
"license": null,
"summary": "Generic State Vector Interface for Destination Earth data.",
"version": "2.13.1",
"project_urls": null,
"split_keywords": [
"climate",
" climatedt",
" data",
" destination earth",
" gsv",
" generic state vector"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "42e62a5173d5667a7dbdfd072b922541f889a11aa5c9db07350c65ea1ea47702",
"md5": "21f51682c8b8361c7f9270fe541af5db",
"sha256": "0b2616679df419e6e3da944250a23881756d449e32ec3cb2ef5cc039bf7aac88"
},
"downloads": -1,
"filename": "gsv_interface-2.13.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "21f51682c8b8361c7f9270fe541af5db",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 154134,
"upload_time": "2025-08-28T09:34:31",
"upload_time_iso_8601": "2025-08-28T09:34:31.779319Z",
"url": "https://files.pythonhosted.org/packages/42/e6/2a5173d5667a7dbdfd072b922541f889a11aa5c9db07350c65ea1ea47702/gsv_interface-2.13.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "41644e4360dc907b55d965f0b4daa051d0a38693a9942d7e882b7f3f27eadc60",
"md5": "ce3e0609d6e9e274f8aa2bb50ce73e88",
"sha256": "21ed7915f91bff18b57a6708f245877811f6c31a2098535c5a7e7fe23641d40a"
},
"downloads": -1,
"filename": "gsv_interface-2.13.1.tar.gz",
"has_sig": false,
"md5_digest": "ce3e0609d6e9e274f8aa2bb50ce73e88",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 102923,
"upload_time": "2025-08-28T09:34:33",
"upload_time_iso_8601": "2025-08-28T09:34:33.320392Z",
"url": "https://files.pythonhosted.org/packages/41/64/4e4360dc907b55d965f0b4daa051d0a38693a9942d7e882b7f3f27eadc60/gsv_interface-2.13.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-28 09:34:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "gsv-interface"
}