Skip to main content

rasterstats

BuildStatus CoverageStatus

The rasterstats python module provides a fast, flexible and robust tool to summarize geospatial raster datasets based on vector geometries.

  • Raster data support

    • Any raster data source supported by GDAL

    • Support for continuous and categorical

    • Respects null/no-data metadata or takes argument

  • Vector data support

    • Points, Lines, Polygon and Multi-* geometries

    • Flexible input formats

      • Any vector data source supported by OGR

      • Python objects that are geojson-like mappings or support the geo_interface

      • Well-Known Text/Binary (WKT/WKB) geometries

  • Depends on GDAL, Shapely and numpy

Install

Using ubuntu 12.04:

sudo apt-get install python-numpy python-gdal
pip install rasterstats

Example Usage

Given a polygon vector layer and a digitial elevation model (DEM) raster, calculate the mean elevation of each polygon:

zones elevation
>>> from rasterstats import raster_stats
>>> stats = raster_stats("tests/data/polygons.shp", "tests/data/elevation.tif")

>>> stats[1].keys()
    ['std', 'count', 'min', 'max', 'sum', 'id', 'mean']

>>> [(f['id'], f['mean']) for f in stats]
    [(1, 756.6057470703125), (2, 114.660084635416666)]

Python interface

In addition to the basic usage above, rasterstats supports other mechanisms of specifying vector geometeries.

It integrates with other python objects that support the geo_interface (e.g. Fiona, Shapely, ArcPy, PyShp, GeoDjango):

>>> import fiona

>>> # an iterable of objects with geo_interface
>>> lyr = fiona.open('/path/to/vector.shp')
>>> features = (x for x in lyr if x['properties']['state'] == 'CT')
>>> raster_stats(features, '/path/to/elevation.tif')
...

>>> # a single object with a geo_interface
>>> lyr = fiona.open('/path/to/vector.shp')
>>> raster_stats(lyr.next(), '/path/to/elevation.tif')
...

Or by using with geometries in “Well-Known” formats:

>>> raster_stats('POINT(-124 42)', '/path/to/elevation.tif')
...

Working with categorical rasters (e.g. vegetation map)

You can treat rasters as categorical (i.e. raster values represent discrete classes) if only interested in the counts of unique pixel values.

For example, this polygon is comprised of 12 pixels of oak (raster value 32) and 78 pixels of grassland (raster value 33):

>>> raster_stats(lyr.next(), '/path/to/vegetation.tif', categorical=True)

>>> [{'id': 1, 32: 12, 33: 78}]

Keep in mind that rasterstats just reports on the pixel values as keys; It is up to the programmer to associate the pixel values with their appropriate meaning (e.g. oak == 32) for reporting.

Issues

Find a bug? Report it via github issues by providing

  • a link to download the smallest possible raster and vector dataset necessary to reproduce the error

  • python code or command to reproduce the error

  • information on your environment: versions of python, gdal and numpy and system memory

Metadata

Release files for rasterstats 0.1

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

Source distribution (sdist)

Source distribution for rasterstats 0.1
File Size Uploaded
rasterstats-0.1.tar.gz 7.8 kB Details

Release files / rasterstats-0.1.tar.gz

Download URL rasterstats-0.1.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
b2837c20259b2d735c5246ecfc75184375f1a5218f65a65f012d0b55b8cea05b
BLAKE2b-256 checksum
How to use checksums
4b58a8b158295c0ced2ee419556c936f4d358668c67bd0d13fb72df90d726da9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.10.3

4 release files

0.10.2

2 release files

0.10.0

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

3 release files

0.3.1

1 release file

0.3

1 release file

0.2

1 release file

This release

0.1 This release

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