Skip to main content

GisTools

Some geographical tools for python developers

GitHub license Maintenance PyPI version fury.io

Introduction

GisTools is a small Python library for performing geographical computations. Typically, it gathers different tools from well-known libraries such as gdal, rasterio, geopandas, fiona and shapely. It allows easily mixing operations between vectors and raster maps (multi-band raster are not supported at the moment).

Basic operations

GisTools allows some of the following operations:

  • Fast polygon intersection and split
  • Polygon partition based on graph theory (requires METIS package)
  • Basic networking (shortest path)
  • Download DEM from online databases
  • Download layers from postgis spatial database
  • Extract raster statistics with respect to vector layers (polygon/line)
  • Raster to/from polygons conversion
  • Compute horizon obstruction from DEM

Requirements

See requirements.txt.

Note on GDAL

Installing GDAL through pip might be tricky as it only gets the bindings, so be sure the library is already installed on your machine, and that the headers are located in the right folder. Another solution may to install it through a third-party distribution such as conda.

Install

Pip installation should normally take care of everything for you.

Using PIP

The easiest way to install GisTools is using pip in a terminal

$ pip install gis-tools

Examples

Example 1

Use DigitalElevationModel, PolygonLayer and ZonalStatistics classes to retrieve average slope within each polygon of a shapefile

>>> dem = gistools.raster.DigitalElevationModel("path/to/dem.tif")
>>> slope = dem.compute_slope()
>>> layer = gistools.layer.PolygonLayer("path/to/layer.shp")
>>> zonal_stat = gistools.stats.ZonalStatistics(slope, layer, is_surface_weighted=False, all_touched=True)
>>> average = zonal_stat.mean()

Example 2

Extract polygons from contour values in raster

>>> from gistools.raster import RasterMap
>>> raster = RasterMap("path/to/raster.tif", no_data_value=-9999)
>>> layer = raster.contour(0.04, False).polygonize("attribute name").to_crs(epsg=4326)

Example 3: download and build DEM tile

Build DEM tile by downloading from CGIAR website and save to file

>>> from gistools import DigitalElevationModel
>>> dem = DigitalElevationModel.from_cgiar_online_database((8, 38, 14, 42))
>>> dem.to_file("path/to/dem.tif")

Example 4: partition a polygon

Split a polygon layer into sub-polygons of equal area with respect to honeycomb mesh (requires METIS package)

>>> polygon_layer = gistools.layer.PolygonLayer("path/to/layer.geojson")
>>> new_partitioned_layer = polygon_layer.partition(threshold=2000, disaggregation_factor=20, 
                                                    split_method="hexana", contig=True)

Note on OSM

You can use the fine osmnx package to download OSM features and then use it as any other GeoLayer :

from gistools.layer import PolygonLayer
import osmnx as ox
country = PolygonLayer.from_gpd(ox.geocode_to_gdf(
    dict(country="France",
         admin_level=2,
         type="boundary")))

Metadata

Release files for gis-tools 0.17.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gis-tools 0.17.8
File Size Uploaded
gis_tools-0.17.8.tar.gz 68.0 kB Details

Release files / gis_tools-0.17.8.tar.gz

Download URL gis_tools-0.17.8.tar.gz
Size 68.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8345130c3d3944d8836ec8796252ffcd7c5aa65e89e34733d3c2d535f59d50e9
BLAKE2b-256 checksum
How to use checksums
5f6f9a3825f05e819f114814dc488740fe9be20f0abec6a561d2a8570d92cd46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.6.10

Release history Release notifications | RSS feed

This release

0.17.8 This release

1 release file

0.17.7

1 release file

0.17.6

1 release file

0.17.5

1 release file

0.17.4

1 release file

0.17.3

1 release file

0.17.2

1 release file

0.17

1 release file

0.16.24

1 release file

0.16.23

1 release file

0.16.22

1 release file

0.16.21

1 release file

0.16.4

1 release file

0.16.3

1 release file

0.16.2

1 release file

0.16.0

1 release file

0.15.94

1 release file

0.15.93

1 release file

0.15.91

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page