Práce s geoprostorovými daty v Pythonu
Joris Van den Bossche
Open source software developer and teacher, GeoPandas maintainer

Zdroj obrázku: dokumentace QGIS



import rasterio
import rasterio
src = rasterio.open("DEM_world.tif")
Metadata:
src.count
1
src.width, src.height
(4320, 2160)
array = src.read()
Standardní pole numpy:
array
array([[[-4290, -4290, -4290, ..., -4290, -4290, -4290],
[-4278, -4278, -4278, ..., -4278, -4278, -4278],
[-4269, -4269, -4269, ..., -4269, -4269, -4269],
...,
[ 2804, 2804, 2804, ..., 2804, 2804, 2804],
[ 2804, 2804, 2804, ..., 2804, 2804, 2804],
[ 2804, 2804, 2804, ..., 2804, 2804, 2804]]], dtype=int16)
Pomocí metody rasterio.plot.show():
import rasterio.plot
rasterio.plot.show(src, cmap='terrain')


rasterstats: Souhrnné statistiky rastrových geodatasetů na základě vektorových geometrií (https://github.com/perrygeo/python-rasterstats)
Pro bodové vektory:
rasterstats.point_query(geometries, "path/to/raster",
interpolation='nearest'|'bilinear')
Pro polygonové vektory:
rasterstats.zonal_stats(geometries, "path/to/raster",
stats=['min', 'mean', 'max'])
result = rasterstats.zonal_stats(countries.geometry, "DEM_gworld.tif", stats=['mean'])countries['mean_elevation'] = pd.DataFrame(result)countries.sort_values('mean_elevation', ascending=False).head()
name continent geometry mean_elevation
157 Tajikistan Asia POLYGON ((74.98 37.41, ... 3103.231105
85 Kyrgyzstan Asia POLYGON ((80.25 42.34, ... 2867.717142
24 Bhutan Asia POLYGON ((91.69 27.77, ... 2573.559846
119 Nepal Asia POLYGON ((81.11 30.18, ... 2408.907816
6 Antarctica Antarctica (POLYGON ((-59.57 -80.04... 2374.075028
.. ... ... ... ...
Práce s geoprostorovými daty v Pythonu