数据:一个地区的shp文件,很多幅范围大于该地区的的tif影像
目的:求tif影像上shp文件圈定范围内栅格的均值
代码:
# 利用zonal_stats做区域统计,求mean
def zone_mean(file_path, vectors_file):
# 重新打开tif文件
ds = gdal.Open(file_path)
# 在这里进行统计分析,比如计算平均值、标准差等
data = ds.ReadAsArray()
gdf = gpd.read_file(vectors_file)
# 合并零散得区域成一个整体
union_region = gdf.unary_union
# 使用zonal_stats计算栅格数据在矢量区域内的统计量
stats = zonal_stats(union_region, file_path, stats='mean')
# print(stats)
# 关闭数据集
ds = None
# 返回均值
return stats[0]['mean']