美文网首页
Python 分区统计 rasterstats zonal s

Python 分区统计 rasterstats zonal s

作者: 王叽叽的小心情 | 来源:发表于2022-05-25 11:54 被阅读0次

需求:给定一个栅格数据和一个矢量面数据,计算面数据内栅格数据的统计值(如最大值、平均值、总和、最小值等)。在QGIS和ArcGIS中,有现成的工具可以直接使用,如分区统计(zonal statistic)工具箱

解决方法:如果需要在Python中批量操作,可以采用rasterstats包,源代码参见 https://github.com/perrygeo/python-rasterstats ,使用手册参见https://pythonhosted.org/rasterstats/manual.html#design-goals

安装如下,


conda install rasterio
pip install rasterstats

使用代码,

import pandas as pd
from rasterstats import zonal_stats

def zonal_statistic():
    # 矢量的边界文件 polygon
    shp_poly = r"E:\Data\poly.shp"
    input_path = "E:\\Data\\"
    file = raster.tif

    df_out = pd.DataFrame()
    
    stats = zonal_stats(shp_poly, input_path + file, stats=['min', 'max', 'count', 'sum', 'std'])
    df_out = pd.DataFrame.from_dict(data=stats)
   
    df_out.to_csv(r"E:\Data\prov_stat_34.csv", header=True, index_label='fid', encoding='gbk')

更多使用方法参见:

http://pcjericks.github.io/py-gdalogr-cookbook/raster_layers.html#clip-a-geotiff-with-shapefile

以及一个课程学习资料:
https://www.gis.usu.edu/~chrisg/python/2009/

相关文章

网友评论

      本文标题:Python 分区统计 rasterstats zonal s

      本文链接:https://www.haomeiwen.com/subject/lfjrprtx.html