[](https://github.com/xarray-contrib/xdggs/actions/ci.yml?query=branch%3Amain+event%3Apush)
[](https://xdggs.readthedocs.io)
[](https://pypi.org/project/xdggs)
[](https://github.com/python/black)
[](https://github.com/conda-forge/xdggs-feedstock)
---
<img src="https://raw.githubusercontent.com/xarray-contrib/xdggs/main/docs/_static/logos/xdggs_logo.png" width="300" height="300" margin="0" /><br/>
# xdggs: discrete global grid systems with xarray
`xdggs` is an open-source Python package that provides tools for handling geospatial data using Discrete Global Grid Systems (DGGS).
It enables efficient manipulation and analysis of multi-dimensional gridded data within a DGGS framework, supporting spatial data processing, resampling, and aggregation on both global and regional scales.
Inspired by the growing need for scalable geospatial data analysis with DGGS, `xdggs` is built upon the robust [Xarray](https://xarray.pydata.org/) ecosystem, which simplifies working with labeled multi-dimensional arrays.
As an extension of Xarray, `xdggs` leverages Xarray's capabilities, including seamless access to formats like [NetCDF](https://www.unidata.ucar.edu/software/netcdf/), [Zarr](https://zarr.readthedocs.io/), and parallelization through [Dask](https://www.dask.org/), to provide a powerful and flexible toolkit for geospatial analysis.
## Key Features
- **Seamless Integration with Xarray**: Use `xdggs` alongside Xarray's powerful tools for managing labeled, multi-dimensional data.
- **Support for DGGS**: Convert geospatial data into DGGS representations, allowing for uniform spatial partitioning of the Earth's surface.
- **Spatial Resampling**: Resample data on DGGS grids, enabling downscaling or upscaling across multiple resolutions.
- **DGGS Aggregation**: Perform spatial aggregation of data on DGGS cells.
- **Efficient Data Management**: Manage large datasets with Xarray's lazy loading, Dask integration, and chunking to optimize performance.
## Documentation
You can find the documentation in [https://xdggs.readthedocs.io/en/latest/](https://xdggs.readthedocs.io/en/latest/).
## Demo

## Getting Started
As an example, this is how you would use `xdggs` to reconstruct geographical coordinates from the cell ids then create an interactive plot indicating cell ids, data values and the associated geographical coordinates:
```python
import xarray as xr
import xdggs
ds = xdggs.tutorial.open_dataset("air_temperature", "h3")
# Decode DGGS coordinates
ds_idx = ds.pipe(xdggs.decode)
# Assign geographical coordinates
ds_idx = ds_idx.dggs.assign_latlon_coords()
# Interactive visualization
ds_idx['air'].isel(time=0).compute().dggs.explore(center=0, cmap="viridis", alpha=0.5)
```
## Roadmap
We have exciting plans to expand xdggs with new features and improvements. You can check out our roadmap in the [design_doc.md](https://github.com/xarray-contrib/xdggs/blob/main/design_doc.md) file for details on the design of xdggs, upcoming features, and future enhancements.
## Contributing
We welcome contributions to `xdggs`! Please follow these steps to get involved:
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Make your changes and write tests.
4. Ensure all tests pass (`pytest`).
5. Submit a pull request!
## License
`xdggs` is licensed under the Apache License License. See [LICENSE](https://github.com/xarray-contrib/xdggs/blob/main/LICENSE) for more details.
## Acknowledgments
This project was initiated using funding from CNES (PANGEO IAOCEA, contract R&T R-S23/DU-0002-025-01) and the European Union (ERC, WaterSmartLand, 101125476, Interreg-BSR, HyTruck, #C031).
Raw data
{
"_id": null,
"home_page": null,
"name": "xdggs",
"maintainer": "xdggs contributors",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "DGGS, xarray, GIS",
"author": "Beno\u00eet Bovy, Justus Magin",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/89/7f/464288e8edd5ff785531c3f7bc9672465323d36c62cf12172ceeef1fd5de/xdggs-0.1.1.tar.gz",
"platform": null,
"description": "[](https://github.com/xarray-contrib/xdggs/actions/ci.yml?query=branch%3Amain+event%3Apush)\n[](https://xdggs.readthedocs.io)\n[](https://pypi.org/project/xdggs)\n[](https://github.com/python/black)\n[](https://github.com/conda-forge/xdggs-feedstock)\n\n---\n\n<img src=\"https://raw.githubusercontent.com/xarray-contrib/xdggs/main/docs/_static/logos/xdggs_logo.png\" width=\"300\" height=\"300\" margin=\"0\" /><br/>\n\n# xdggs: discrete global grid systems with xarray\n\n`xdggs` is an open-source Python package that provides tools for handling geospatial data using Discrete Global Grid Systems (DGGS).\n\nIt enables efficient manipulation and analysis of multi-dimensional gridded data within a DGGS framework, supporting spatial data processing, resampling, and aggregation on both global and regional scales.\n\nInspired by the growing need for scalable geospatial data analysis with DGGS, `xdggs` is built upon the robust [Xarray](https://xarray.pydata.org/) ecosystem, which simplifies working with labeled multi-dimensional arrays.\n\nAs an extension of Xarray, `xdggs` leverages Xarray's capabilities, including seamless access to formats like [NetCDF](https://www.unidata.ucar.edu/software/netcdf/), [Zarr](https://zarr.readthedocs.io/), and parallelization through [Dask](https://www.dask.org/), to provide a powerful and flexible toolkit for geospatial analysis.\n\n## Key Features\n\n- **Seamless Integration with Xarray**: Use `xdggs` alongside Xarray's powerful tools for managing labeled, multi-dimensional data.\n- **Support for DGGS**: Convert geospatial data into DGGS representations, allowing for uniform spatial partitioning of the Earth's surface.\n- **Spatial Resampling**: Resample data on DGGS grids, enabling downscaling or upscaling across multiple resolutions.\n- **DGGS Aggregation**: Perform spatial aggregation of data on DGGS cells.\n- **Efficient Data Management**: Manage large datasets with Xarray's lazy loading, Dask integration, and chunking to optimize performance.\n\n## Documentation\n\nYou can find the documentation in [https://xdggs.readthedocs.io/en/latest/](https://xdggs.readthedocs.io/en/latest/).\n\n## Demo\n\n\n\n## Getting Started\n\nAs an example, this is how you would use `xdggs` to reconstruct geographical coordinates from the cell ids then create an interactive plot indicating cell ids, data values and the associated geographical coordinates:\n\n```python\nimport xarray as xr\nimport xdggs\n\nds = xdggs.tutorial.open_dataset(\"air_temperature\", \"h3\")\n\n# Decode DGGS coordinates\nds_idx = ds.pipe(xdggs.decode)\n\n# Assign geographical coordinates\nds_idx = ds_idx.dggs.assign_latlon_coords()\n\n# Interactive visualization\nds_idx['air'].isel(time=0).compute().dggs.explore(center=0, cmap=\"viridis\", alpha=0.5)\n\n```\n\n## Roadmap\n\nWe have exciting plans to expand xdggs with new features and improvements. You can check out our roadmap in the [design_doc.md](https://github.com/xarray-contrib/xdggs/blob/main/design_doc.md) file for details on the design of xdggs, upcoming features, and future enhancements.\n\n## Contributing\n\nWe welcome contributions to `xdggs`! Please follow these steps to get involved:\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature-branch`).\n3. Make your changes and write tests.\n4. Ensure all tests pass (`pytest`).\n5. Submit a pull request!\n\n## License\n\n`xdggs` is licensed under the Apache License License. See [LICENSE](https://github.com/xarray-contrib/xdggs/blob/main/LICENSE) for more details.\n\n## Acknowledgments\n\nThis project was initiated using funding from CNES (PANGEO IAOCEA, contract R&T R-S23/DU-0002-025-01) and the European Union (ERC, WaterSmartLand, 101125476, Interreg-BSR, HyTruck, #C031).\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Xarray extension for DGGS",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://xdggs.readthedocs.io",
"Repository": "https://github.com/xarray-contrib/xdggs"
},
"split_keywords": [
"dggs",
" xarray",
" gis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c17d68792860892301aef82c58e2ca35a4dbd1db298ccff0ff4091925ac271e5",
"md5": "450aceb2fd2b9bc8a6a22506cbd6b87e",
"sha256": "531553da9f23fe564cd6cd204a085cf4e3da240a3d91c141cf15ded8d2c22e02"
},
"downloads": -1,
"filename": "xdggs-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "450aceb2fd2b9bc8a6a22506cbd6b87e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 32543,
"upload_time": "2024-11-25T14:29:47",
"upload_time_iso_8601": "2024-11-25T14:29:47.917117Z",
"url": "https://files.pythonhosted.org/packages/c1/7d/68792860892301aef82c58e2ca35a4dbd1db298ccff0ff4091925ac271e5/xdggs-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "897f464288e8edd5ff785531c3f7bc9672465323d36c62cf12172ceeef1fd5de",
"md5": "c7ff31caf4c405bd65123471420f3cd8",
"sha256": "a0e729aa3b73d44bf143e43d705340337db315712c374f9d0b754ff1cf890248"
},
"downloads": -1,
"filename": "xdggs-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "c7ff31caf4c405bd65123471420f3cd8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 4225451,
"upload_time": "2024-11-25T14:29:49",
"upload_time_iso_8601": "2024-11-25T14:29:49.380139Z",
"url": "https://files.pythonhosted.org/packages/89/7f/464288e8edd5ff785531c3f7bc9672465323d36c62cf12172ceeef1fd5de/xdggs-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-25 14:29:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "xarray-contrib",
"github_project": "xdggs",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "xdggs"
}