按照网上的教程在Qgis里面对地块依据dem进行河流一键提取,为什么生成的图长这样不是那种连贯的?同时生成流向图之后会这样糊成一片黑又是为什么?ಠ_ಠ


按照网上的教程在Qgis里面对地块依据dem进行河流一键提取,为什么生成的图长这样不是那种连贯的?同时生成流向图之后会这样糊成一片黑又是为什么?ಠ_ಠ


下午好🌅🌅🌅
本答案参考通义千问
你提到在QGIS中使用DEM数据进行河流提取后,生成的河流图看起来不连贯,流向图呈现一片黑色,这通常是由以下原因导致的。以下是详细的分析和解决方案:
重点:确保DEM数据干净且无空值
("dem@1" > 0) * "dem@1"
或者使用 “Fill NoData” 插件填充空值。
加粗重点: 请务必对DEM数据进行预处理,否则后续所有操作都会受到影响。
计算流向(Flow Direction)
计算流量(Flow Accumulation)
提取河流(Stream Network)
将栅格转为矢量(可选)
重点:确保河流网络是连续的
重点:确保流向图正确渲染
from osgeo import gdal
import numpy as np
# 读取流向栅格
ds = gdal.Open('flow_direction.tif')
band = ds.GetRasterBand(1)
arr = band.ReadAsArray()
# 设置颜色映射
color_table = gdal.ColorTable()
for i in range(8):
color_table.SetColorEntry(i, (255, 255, 255, 255)) # 白色
# 保存为新的GeoTIFF
driver = gdal.GetDriverByName('GTiff')
out_ds = driver.Create('flow_direction_colored.tif', ds.RasterXSize, ds.RasterYSize, 1, band.DataType)
out_band = out_ds.GetRasterBand(1)
out_band.WriteArray(arr)
out_band.SetColorTable(color_table)
out_ds.FlushCache()
预处理DEM数据
计算流向(Flow Direction)
计算流量(Flow Accumulation)
提取河流(Stream Network)
将河流转为矢量(可选)
检查流向图渲染
修复河流断开问题
| 问题 | 原因 | 解决方案 | |------|------|----------| | 河流不连贯 | DEM数据质量差或阈值设置不当 | 预处理DEM,调整阈值 | | 流向图一片黑 | 渲染方式错误或数据范围问题 | 设置颜色映射,限制数值范围 | | 河流提取失败 | 工具未正确配置 | 检查SAGA/GRASS插件是否启用 |
如果你能提供具体的DEM数据截图或部分操作日志,我可以进一步帮你定位具体问题。希望这些信息对你有帮助!