首页手机用python提取字符串中的数字 用python提取文档表格文字教程

用python提取字符串中的数字 用python提取文档表格文字教程

圆圆2025-08-17 19:01:22次浏览条评论

使用 python 提取栅格数据中多边形内外 ndvi 值

本文介绍了如何使用 Python 绘制提取栅格图像(如 NDVI 图像)中,多个仓库内部以及外部的平均 NDVI 值。主要依赖 rasterio 和 fiona 库,通过加载向量搬运数据,整理栅格图像,并计算少量区域的工具,从而实现 NDVI价值的提取和分析。本文提供代码示例,帮助读者理解和应用相关技术。

正文

本文将指导您如何使用Python提取栅格数据(例如NDVI图像)中完成内部和外部的指令。我们将使用rasterio和fiona库来完成此任务。rasterio用于读取和读取栅格数据,而fiona用于读取向量数据(例如shapefile)。

准备工作

立即学习“Python免费学习笔记(深入)”;

在开始时,请确保已安装以下Python库:rasteriofionanumpy

可以使用pip安装这些库:pip install rasterio fiona numpy登录后复制

您的代码实现

以下代码演示了如何获取内部和外部的平均NDVI值:import rasterioimport fionaimport rasterio.maskimport numpy as np# 1. 定义输入文件路径shapefile_path = quot;path/to/your/shapefile.shpquot; # 替换为你的shapefile文件路径raster_path = quot;path/to/your/ndvi.tifquot; # 替换为你的NDVI栅格文件路径# 2. 加载shapefile中的干燥with fiona.open(shapefile_path, quot;rquot;) as sf: 形状 = [feature[quot;geometryquot;] for feature in sf]# 3.读取栅格数据with rasterio.open(raster_path) as src: # 3.1 获取内部的NDVI值 out_image, out_transform = rasterio.mask.mask(src,shapes,crop=True) #清理无效值(如NaN或NoData值) masked_array = np.ma.masked_invalid(out_image) NDVI_mean_inside = np.mean(masked_array) # 3.2 提取加工外部的 NDVI 值 out_image_outside, out_transform_outside = rasterio.mask.mask(src, Shapes, Crop=True, invert=True) # 清理清理值(如 NaN 或 NoData 值) masked_array_outside = np.ma.masked_invalid(out_image_outside) NDVI_mean_outside = np.mean(masked_array_outside)# 4. 打印结果print(fquot;烘焙内部平均 NDVI 值: {NDVI_mean_inside}quot;)print(fquot;汉堡外部平均 NDVI 值: {NDVI_mean_outside}quot;)打印结果复制

登录后代码解释复制

登录代码说明复制的必要性库: 1 rasterio,fiona 和 numpy 库。定义文件路径:指定 shapefile 和栅格文件的路径。请务必替换为实际的文件路径。加载 shapefile:使用 fiona.open() 函数打开 shapefile,提取并提取所有的几何信息。

读取栅格数据并提取NDVI值:使用rasterio.open()函数打开栅格文件。使用rasterio.mask.mask()函数具体栅格数据,提取内部的NDVI值。crop=True参数表示结果仅包含操作范围内的像素。使用np.mean()函数计算修剪区域的平均NDVI值。使用rasterio.mask.mask()函数提取栅格数据,提取外部的NDVI值。使用 np.mean() 函数计算修剪区域的平均 NDVI 值。打印结果:将计算得到的平均 NDVI 值打印到控制台。

注意事项确保 shapefile 和栅格文件位于指定的路径,并且具有正确的包含格式。如果栅格数据无效值(例如 NaN 或 NoData 值),请在使用 np.mean() 之前函数使用np.ma.masked_invalid() 函数进行照明,避免影响计算结果。rasterio.mask.mask()函数返回的是 numpy 作业,你可以根据其需要进一步进行的处理和分析。如果 shapefile 包含多个作业,代码将提取所有作业内部和外部的 NDVI 值,并计算任务。如果需要分别提取每个作业的 NDVI 值,请修改代码,循环处理每个作业。rasterio.mask 允许设置 all_touched=True参数,便于包含与作业边界相交的像素。默认情况下,仅包含完全行走内部的像素。

总结

本文介绍了使用Python和rasterio、fiona库提取栅格数据中内部和平均外部NDVI值的方法。通过加载shapefile,提取栅格数据,并计算区域的便捷,您可以轻松地提取和分析特定区域的NDVI值。这种方法可以评估各种遥感应用,例如土地覆盖分类、植被监测和环境评估。

以上就是使用Python提取栅格数据中进行外部NDVI 数值的详细内容,更多请关注乐哥常识网其他相关文章!

使用 Python
多维数组在内存中的应用 多维数组在内存中存储方式
相关内容
发表评论

游客 回复需填写必要信息