रास्टर डेटा के साथ काम करना

Python में Geospatial Data के साथ काम करना

Joris Van den Bossche

Open source software developer and teacher, GeoPandas maintainer

मानों की ग्रिड का चित्र

छवि स्रोत: QGIS documentation

Python में Geospatial Data के साथ काम करना

रास्टर डेटा

बारिश की संभावना का मानचित्र

Python में Geospatial Data के साथ काम करना

मल्टी-बैंड रास्टर डेटा

Python में Geospatial Data के साथ काम करना

rasterio पैकेज

import rasterio
  • GDAL के लिए "Pythonic" बाइंडिंग्स
  • रास्टर फाइलों को read और write करना
  • प्रोसेसिंग टूल्स (masking, reprojection, resampling, ..)

https://rasterio.readthedocs.io/en/latest/

Python में Geospatial Data के साथ काम करना

रास्टर फाइल खोलना

import rasterio

src = rasterio.open("DEM_world.tif")

मेटाडेटा:

src.count
1
src.width, src.height
(4320, 2160)
Python में Geospatial Data के साथ काम करना

रास्टर डेटा = numpy array

array = src.read()

स्टैंडर्ड numpy array:

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)
Python में Geospatial Data के साथ काम करना

रास्टर डेटासेट को प्लॉट करना

rasterio.plot.show() मेथड का उपयोग:

import rasterio.plot

rasterio.plot.show(src, cmap='terrain')

Python में Geospatial Data के साथ काम करना

वेक्टर डेटा के आधार पर जानकारी निकालना

rasterstats: वेक्टर ज्योमेट्री के आधार पर भू-स्थानिक रास्टर डेटासेट की सार-सांख्यिकी (https://github.com/perrygeo/python-rasterstats)

Python में Geospatial Data के साथ काम करना

rasterstats से रास्टर मान निकालें

  • पॉइंट वेक्टर के लिए:

    rasterstats.point_query(geometries, "path/to/raster", 
                            interpolation='nearest'|'bilinear')
    
  • पॉलीगॉन वेक्टर के लिए:

    rasterstats.zonal_stats(geometries, "path/to/raster",
                            stats=['min', 'mean', 'max'])
    
Python में Geospatial Data के साथ काम करना

rasterstats से रास्टर मान निकालें

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
..           ...          ...                          ...             ...
Python में Geospatial Data के साथ काम करना

अभ्यास करते हैं!

Python में Geospatial Data के साथ काम करना

Preparing Video For Download...