2501_91408255 2025-04-26 00:33 采纳率: 0%
浏览 10

Envi软件如何利用DEM高程模型将水体细分出深浅水区

❶文件清单有:
①已通过“随机森林监督分类”将Landsat4-5、7、8-9遥感影像提取“水体”样本;
②从某网站下载好Aster Gdem 30M高程模型DEM;
③从某网站下载好某“水系”真实的逐日水位资料;

❷问:在Envi软件如何利用DEM高程模型、Landsat遥感影像及真实的逐日水位资料结合将“水体”细分出“深水”“浅水”区?(或者其他将“水体”细分方法也烦劳各位专业人士请教)

❸谢谢各位专业人士的解答

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-04-26 00:33
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    Envi软件如何利用DEM高程模型将水体细分出深浅水区

    你想使用 Envi 软件将水体细分出深浅水区,利用 DEM 高程模型来实现。下面是解决方案:

    1. 首先,使用 Envi 软件将 Landsat4-5、7、8-9 遥感影像中的水体样本提取出来。
    2. 接着,使用 Envi 软件将 Aster Gdem 30M 高程模型 DEM 文件导入到 Envi 中。
    3. 在 Envi 中,使用 DEM 模块中的 Elevation 函数将 DEM 文件中的高程值提取出来。
    4. 接着,使用 Raster 模块中的 Extract 函数将水体样本提取出来,并将其与 DEM 文件中的高程值进行匹配。
    5. 最后,使用 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)
    

    这个示例代码只是一个简单的示例,实际实现中可能需要根据具体情况进行修改和调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月26日