# 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/9a/06/236a6cd155d298be3016f7604ac9578bc493da6a8053c3ce290c91518467/gsv_interface-2.12.0.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.12.0",
"project_urls": null,
"split_keywords": [
"climate",
" climatedt",
" data",
" destination earth",
" gsv",
" generic state vector"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "74d2052e51cc1b9106dde5347b8efdda0f3e843e40fdc3a1e5986acba587f7d2",
"md5": "58095c9ac2c839b2719a4d8bec05b0fc",
"sha256": "31e2af77d98811bb110a4c9a07418f20e52f0f718af7763a7bbdb86548c7ea74"
},
"downloads": -1,
"filename": "gsv_interface-2.12.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "58095c9ac2c839b2719a4d8bec05b0fc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 153553,
"upload_time": "2025-07-16T13:35:54",
"upload_time_iso_8601": "2025-07-16T13:35:54.252034Z",
"url": "https://files.pythonhosted.org/packages/74/d2/052e51cc1b9106dde5347b8efdda0f3e843e40fdc3a1e5986acba587f7d2/gsv_interface-2.12.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9a06236a6cd155d298be3016f7604ac9578bc493da6a8053c3ce290c91518467",
"md5": "5a2aa821bcfc7f6c4273aca4fbb30b86",
"sha256": "b13147ad8131814888844b7f6cff5feac16086c648799455b43441bf731c9617"
},
"downloads": -1,
"filename": "gsv_interface-2.12.0.tar.gz",
"has_sig": false,
"md5_digest": "5a2aa821bcfc7f6c4273aca4fbb30b86",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 101847,
"upload_time": "2025-07-16T13:35:58",
"upload_time_iso_8601": "2025-07-16T13:35:58.347215Z",
"url": "https://files.pythonhosted.org/packages/9a/06/236a6cd155d298be3016f7604ac9578bc493da6a8053c3ce290c91518467/gsv_interface-2.12.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 13:35:58",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "gsv-interface"
}