利用Python代码提取shp中每个区域的图像

编程入门 行业动态 更新时间:2024-10-26 02:27:08

利用Python代码提取shp中每个区域的<a href=https://www.elefans.com/category/jswz/34/1771430.html style=图像"/>

利用Python代码提取shp中每个区域的图像

import geopandas as gpd
import rasterio
from rasterio.mask import mask
import matplotlib.pyplot as plt
import numpy as np# 载入shp文件 - 它只包含几何对象
shapefile_path = r'D:\Desktop\新建文件夹 (3)\01.shp'
shapes = gpd.read_file(shapefile_path)# 打开图像
image_path = r'D:\Desktop\新建文件夹 (3)\nir.tif'
with rasterio.open(image_path) as src:# 对于shp文件中的每个几何对象for geometry in shapes.geometry:# 利用geometry来裁剪图像out_image, out_transform = mask(src, [geometry], crop=True) # out_image的维度(c,w,h)# plt.imshow(out_image[0])# plt.show()# 计算裁剪区域的光谱特征(这里是计算平均值)# 注意检查和处理无数据值或其他特殊值out_image = out_image.astype('float64')no_data_value = src.nodatavals[0] # 提取原始图像数据源(src)中定义的第一个无数据值out_image[out_image == no_data_value] = np.nan # 像素赋值为NaNmean_values = np.nanmean(out_image, axis=(1, 2)) # 沿着给定轴(在这里是轴1和轴2,分别代表图像的高和宽)上的均值# 记下或分析这些特征print(mean_values)

更多推荐

利用Python代码提取shp中每个区域的图像

本文发布于:2023-11-15 07:53:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1596242.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图像   区域   代码   Python   shp

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!