Skip to content

sevberg/geokit

 
 

Repository files navigation

master dev
Build Status Build Status

Forschungszentrum Juelich Logo

GeoKit - Geospatial toolkit for Python

GeoKit communicates directly with functions and objects within the Geospatial Data Abstraction Library (GDAL) and exposes them in such a way that is particularly useful for programmatic general purpose geospatial analyses. It gives low overhead control of fundamental operations; such as reading, writing, and mutating geospatial data sets, manipulating and translating geometries, warping and resampling raster data, and much more. Via the RegionMask object, GeoKit even allows for seamless integration of information expressed across multiple geospatial datasets in many formats and reference systems into the context of a single region.

GeoKit is not intended to replace the GDAL library, as only very small subset of GDAL's capabilities are exposed. Nor is it intended to compete with other libraries with similar functionalities. Instead GeoKit evolved in an ad hoc manner in order to realize the Geospatial Land Eligibility for Energy Systems (GLAES) model which is intended for rapid land eligibility analyses of renewable energy systems and is also available on GitHub. Nevertheless, GeoKit quickly emerged as a general purpose GIS toolkit with capabilities far beyond computing land eligibility. Therefore, it is our pleasure to offer it to anyone who is interested in its use.

DOI

Features

  • Direct exposure of functions and objects in the GDAL library
  • Reading, writing, and manipulating raster and vector datasets
  • Translation between data formats and projection systems
  • Direct conversion of raster data into NumPy matrices

Installation

  1. First clone a local copy of the repository to your computer, and move into the created directory
git clone https://github.com/FZJ-IEK3-VSA/geokit.git
cd geokit
  1. (Alternative) If you want to use the 'dev' branch (or another branch) then use:
git checkout dev
  1. When using Anaconda (recommended), GeoKit should be installable to a new environment with:
conda env create --file requirements.yml
  1. (Alternative) Or into an existing environment with:
conda env update --file requirements.yml -n <ENVIRONMENT-NAME>
  1. (Alternative) If you want to install GeoKit in editable mode, and also with jupyter notebook and with testing functionalities use:
conda env create --file requirements-dev.yml

Examples

See the Examples page

Docker

We are trying to get GeoKit to work within a Docker container. Try it out!

  • First pull the image with:
docker pull sevberg/geokit:latest
  • You can then start a basic python interpreter with:
docker run -it sevberg/geokit:latest -c "python"
  • Or you can start a jupyter notebook using:
docker run -it \
    -p 8888:8888 \
    sevberg/geokit:latest \
    -c "jupyter notebook --ip='*' --port=8888 --no-browser --allow-root"
  • Which can then be connected to at the address "localhost:8888:"
  • The API Key can be found from the output of the earlier command
  • Finally, you might want to mount a volume to access geospatial data. For this you can use:
docker run -it \
    --mount target=/notebooks,type=bind,src=<PATH-TO-DIRECTORY> \
    -p 8888:8888 \
    sevberg/geokit:latest  \
    -c "jupyter notebook --notebook-dir=/notebooks --ip='*' --port=8888 --no-browser --allow-root"

License

MIT License

Copyright (c) 2017 David Severin Ryberg (FZJ IEK-3), Jochen Linßen (FZJ IEK-3), Martin Robinius (FZJ IEK-3), Detlef Stolten (FZJ IEK-3)

You should have received a copy of the MIT License along with this program.
If not, see https://opensource.org/licenses/MIT

About Us

Abteilung VSA

We are the Process and Systems Analysis department at the Institute of Energy and Climate Research: Electrochemical Process Engineering (IEK-3) belonging to the Forschungszentrum Jülich. Our interdisciplinary department's research is focusing on energy-related process and systems analyses. Data searches and system simulations are used to determine energy and mass balances, as well as to evaluate performance, emissions and costs of energy systems. The results are used for performing comparative assessment studies between the various systems. Our current priorities include the development of energy strategies, in accordance with the German Federal Government’s greenhouse gas reduction targets, by designing new infrastructures for sustainable and secure energy supply chains and by conducting cost analysis studies for integrating new technologies into future energy market frameworks.

Acknowledgment

This work was supported by the Helmholtz Association under the Joint Initiative "Energy System 2050 – A Contribution of the Research Field Energy".

Helmholtz Logo

About

Geospatial toolkit for Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.9%
  • Dockerfile 0.1%