❶文件清单有:
①已通过“随机森林监督分类”将Landsat4-5、7、8-9遥感影像提取“水体”样本;
②从某网站下载好Aster Gdem 30M高程模型DEM;
③从某网站下载好某“水系”真实的逐日水位资料;
❷问:在Envi软件如何利用DEM高程模型、Landsat遥感影像及真实的逐日水位资料结合将“水体”细分出“深水”“浅水”区?(或者其他将“水体”细分方法也烦劳各位专业人士请教)
❸谢谢各位专业人士的解答
❶文件清单有:
①已通过“随机森林监督分类”将Landsat4-5、7、8-9遥感影像提取“水体”样本;
②从某网站下载好Aster Gdem 30M高程模型DEM;
③从某网站下载好某“水系”真实的逐日水位资料;
❷问:在Envi软件如何利用DEM高程模型、Landsat遥感影像及真实的逐日水位资料结合将“水体”细分出“深水”“浅水”区?(或者其他将“水体”细分方法也烦劳各位专业人士请教)
❸谢谢各位专业人士的解答
阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你想使用 Envi 软件将水体细分出深浅水区,利用 DEM 高程模型来实现。下面是解决方案:
DEM 模块中的 Elevation 函数将 DEM 文件中的高程值提取出来。Raster 模块中的 Extract 函数将水体样本提取出来,并将其与 DEM 文件中的高程值进行匹配。Raster 模块中的 Classify 函数将水体样本根据高程值进行分类,分出深浅水区。以下是一个简单的 Envi 代码示例:
# 导入 Envi 模块
import envi
# 打开 Landsat 遥感影像
img = envi.open('landsat.tif')
# 提取水体样本
water_samples = img.extract_samples('water')
# 打开 DEM 文件
dem = envi.open('aster_gdem_30m.tif')
# 提取 DEM 文件中的高程值
elevations = dem.elevation()
# 将水体样本与 DEM 文件中的高程值进行匹配
matched_samples = []
for sample in water_samples:
elevation = elevations[sample.x, sample.y]
matched_samples.append((sample, elevation))
# 将水体样本根据高程值进行分类
classified_samples = []
for sample, elevation in matched_samples:
if elevation < 1: # 1m以下为浅水区
classified_samples.append((sample, '浅水区'))
elif elevation >= 1 and elevation < 5: # 1-5m为深浅水区
classified_samples.append((sample, '深浅水区'))
else: # 5m以上为深水区
classified_samples.append((sample, '深水区'))
# 将分类结果保存到新文件
output_img = envi.create_image('classified_water.tif', classified_samples)
这个示例代码只是一个简单的示例,实际实现中可能需要根据具体情况进行修改和调整。