ETHOS.GeoKit
GeoKit provides simple high performance functions to analyze and alter geometric data. These can be used for land eligibility analysis to determine for renewable energy plants and general data selection based on geometric criteria.
Description
| Name | Version | Tests | Pytest Coverage | Docstring Style | Documentation Coverage |
|---|---|---|---|---|---|
Documentation Overview
ETHOS.GeoKit is a Python toolkit designed to efficiently handle geospatial data and spatial operations. It provides low-overhead control of fundamental geospatial operations including:
- Reading, writing, and mutating geospatial datasets
- Manipulating and translating geometries between coordinate systems
- Warping and resampling raster data
- Seamlessly integrating multiple geospatial datasets through the RegionMask object
The RegionMask object is particularly powerful, allowing seamless integration of information expressed across multiple geospatial datasets in various formats and reference systems into the context of a single region. Extensive documentation about ETHOS.GeoKit can be found at https://geokit.readthedocs.io/.
ETHOS.GeoKit is part of the ETHOS (Energy Transformation PatHway Optimization Suite). It builds upon the software GDAL (Geospatial Data Abstraction Library) and exposes its capabilities in a way that is particularly useful for programmatic, general-purpose geospatial analyses. Geokit is for example used in GLAES and RESKit.
Installation
If you just want to use ETHOS.GeoKit, install it from Conda Forge. To download and execute all the examples or develop the source code, install it from the source. Both installations require conda or mamba, which can be used interchangeably. We recommend the Miniforge installer.
Installation via conda-forge (Recommended)
The easiest way to install ETHOS.GeoKit into a new environment is from conda-forge:
conda create -n geokit -c conda-forge geokit
Or into an existing environment with:
conda install -c conda-forge geokit
Installation from Source
- Clone the repository and navigate to it:
git clone https://github.com/FZJ-IEK3-VSA/geokit.git
cd geokit
- (Optional) Switch to the development branch:
git checkout dev
- Create a new environment:
conda env create --file requirements-dev
conda activate geokit
pip install . --no-deps
- (Alternative) Update an existing environment:
conda env update --file requirements-dev -n <ENVIRONMENT-NAME>
conda activate geokit
pip install . --no-deps
Getting Started
The best way to learn ETHOS.GeoKit is through hands-on examples. This documentation includes:
- Example notebooks in the
docs/Examplesfolder demonstrating real-world use cases - Detailed guides in the
docs/example_articlesfolder explaining key concepts - API documentation providing comprehensive reference information
- Source code in the
geokitfolder for advanced users
Start with the Introduction to ETHOS.GeoKit to understand the fundamentals, or jump directly to the capability area that interests you most.
Contributions and Support
All contributions are welcome:
- If you have a question, want to report a bug, or have a feature request, please open an Issue. We will then take care of the issue as soon as possible.
- If you want to contribute with additional features or code improvements, open a Pull request.
License
MIT License
Active developers: Christoph Winkler, Shitab Ishmam, Julian Belina, Noah Pflugradt, Heidi Heinrichs, Jochen Linßen, Detlef Stolten
Alumni: David Severin Ryberg, Martin Robinius, Stanley Risch, Julian Schönau, Rachel Maier, David Franzmann
You should have received a copy of the MIT License along with this program.
If not, see https://opensource.org/licenses/MIT
About Us
We are the Institute of Climate and Energy Systems – Jülich Systems Analysis (ICE-2) at the Forschungszentrum Jülich. Our work focuses on independent, interdisciplinary research in energy, bioeconomy, infrastructure, and sustainability. We support a just, greenhouse gas–neutral transformation through open models and policy-relevant science.
Code of Conduct
Please respect our code of conduct.
Acknowledgment
This work was supported by the Helmholtz Association under the Joint Initiative "Energy System 2050: A Contribution of the Research Field Energy".