【教程】DEM差值计算实现农作物株高计算的操作方法

发布于:2023-01-16 ⋅ 阅读:(610) ⋅ 点赞:(0)

Part1背景知识

数字高程模型(DEM,Digital Elevation Model)大部分时候,用作地形地貌分析。将概念泛化,提出了数字表面模型(DSM,Digital Surface Model)。可以理解为,DSM数据,把建筑物、植被去除后,就得到了DEM(图1)。

根据这个现象,可以用来计算植被的高度。在农业中,可以在播种前获取一景DEM(土壤的高度),每个生长期,获取一景DSM(作物的高度)。二者相减,就得到了各个生长期农作物的高度数据。这个数据,可以用来评价作物的生长高度,也可以用作作物表型分析,得出一系列有价值的计算结果(图2)。

原文链接:【教程】DEM差值计算实现农作物株高计算的操作方法

图 1一块农田上的房屋和植被

图 2基础高程与上覆植被关系图

Part2实验一:Bandmath相减

(1)打开数据

在ENVI中依次打开农田的土壤DEM和拔节期DEM数据。

图3 平地DEM与拔节期作物DEM

(2)查看数据

从灰度值查询框,可以看出两景数据,存在高度差,这个差值就是作物的生长高度。

图 3高度差异即作物高度

(3)波段运算

由于两景图像进行了配准,叠置关系是正确的,因此可以尝试直接进行Bandmath计算。b1*1.0-b2*1.0,这里乘以1.0是为了确保计算结果是浮点型,防止四舍五入引起误差。

图 4构建计算公式

(4)出现问题

原则上,b1选择拔节期DEM,b2选择平地DEM,直接计算即可。但是发现,选择一个数据后,另一个会消失。

图 5 波段选择前

图 6 波段选择后

(5)分析原因

查看两景图像的头文件。发现拔节期的维数为20541 x 50271 x 1,平地的维数为20548 x 50282 x 1。两景图像的像素无法精确地一一对齐,导致无法实现相减计算。

图 7 维数差异

(6)改进思路

分析数据,发现图像存在一个大范围的黑边,且是无效数据-32767.0。通过裁剪一个图框,将两景数据精确地配准起来,应该可以解决这个问题。

图 8 黑边像素

Part3试验二:数据规整化

(1)绘制感兴趣区

在平地DEM数据浏览窗口,打开感兴趣区。

图 9 感兴趣区

选择全局浏览窗口,绘制感兴趣区。

图 10 全局窗口

在全局窗口绘制出整体区域,尽量多包括一些边缘像素,防止有效数据被裁剪掉了。点右键完成边框的绘制。

图 11 绘制农田范围

保存这个感兴趣区。

图 12 保存感兴趣区

(2)平地数据裁剪

选择感兴趣区裁剪图像。

图 13 保存感兴趣区

选择平地数据。

图 14 选择平地数据

选择像元,设置红框外的像素值为0,命名1_pingdi,点击OK。

图 15 选择平地数据

(3)拔节期数据裁剪

选中感兴趣点集合。

图 16 感兴趣区选中

将ROI数据格式导出为EVF格式。

图 17 到处ENVI标准矢量格式

将感兴趣导出,矢量图层命名为:sameRegion。

图 18 设置保存选项

把同样区域的图层文件,叠加到拔节期数据上。

图 19 矢量数据叠加

可以看到图框的范围。

图 20 重叠区域设置

选择裁剪工具。

图 21 裁剪感兴趣区

选择拔节期数据。

图 22 数据选择

设置相应的参数,完成对拔节期数据的裁剪。

图 23 图层选择

Part4株高计算的实现

(1)波段运算

在Bandmath处,输入b1*1.0-b2*1.0。

图 24 波段运算设置

可以正常计算。

图 25 计算成功

至此,得到株高的计算结果图。建议在ArcGIS里面进行相应的制图。也可以在ENVI里面进行大致的制图分析。

(2)调整计算系数

由于植株的高程变化较小,仅仅为万分位级,制图时很难有效区分。因此,将小数点进行后移4位处理。

图 26 株高数值过小

在Bandmath里输入:b1*10000.0

图 27 小数点后移操作

选择文件。

图 28 保存文件

(3)密度分割

加载新生成的文件,选择密度分割。

图 29 制图前密度分割

根据数据情况,生成密度分割结果文件。

图 30 密度分割结果文件

(4)制图结果

得到整片农田的株高变化结果图。

图 31  DEM差值计算实现农作物株高计算的结果图

Part5结论与讨论

在农作物播种前,获取一下农田的本底高程,再在作物的各个生长期,分别获取其数字表面模型,可以掌握整片农田的长势情况,是一项重要的作物表型研究方法。文中简单介绍了相应的实现操作方法,对相关领域研究具有启发意义。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到