12.18-19 GIS学习——基于GIS和DEM的地形地貌特征提取与分析 + 多值提取到点

目录

(1)镶嵌至新栅格

(2)按掩膜提取

(3)地形特征提取

等高线提取

山体阴影

坡度

剖面曲率

坡向

平面曲率

地形起伏度

地形粗糙度

高程差???

径流强度指数(SPI)

要计算SCA:填洼——流向——流量——栅格计算单位面积汇流量

 填洼不成功什么都没有的话,把这个并行处理改成0,就行了

流向(也要把并行处理设计为0)

流量

SCA栅格计算器

SPI栅格计算

地形湿度指数(TWI)

多值提取到点

栅格转点——获取点要素

多值提取到点

表转excel


今天过了两关书生实战营,也不要忘了学习GIS。

今天学啥呢?今天学
【实用教程】基于GIS和DEM的地形地貌特征提取与分析—以河北省为例(附详细步骤)_河北省dem-CSDN博客

整一个浙江省丽水市的dem数据,试着提取出来,然后以栅格为单元,进行多值提取到点。

坡向、坡度、高程差、平面曲率、剖面曲率、径流强度指数、地形湿度指数(TWI)、地形起伏度、地表粗糙度

数据名称格式来源网址注意
30mDEM.tif地理空间数据云https://www.gscloud.cn/#page1下载的为.img,需要拉入arcgis建立金字塔
丽水市行政区域.shp国家地理信息公共服务平台天地图 https://cloudcenter.tianditu.gov.cn/administrativeDivision/下载的为geojson格式,需要转换

这里主要介绍三个在线转换工具mapshaperMapJSgeojson.io,其中前两个均可以进行GeoJSON与ShapeFile的相互转换;而另一个在线工具仅能实现GeoJSON向ShapeFile的转换。【我之前有shp边界数据,这里我也没试过】

什么时候需要投影栅格???

(1)镶嵌至新栅格

将丽水市分幅的DEM数据镶嵌至整幅,如图所示。格外注意:像素类型,取值范围要包括原始取值范围!!!默认是8,我改成16,按照8不能包含1000多。

 

 结果是这样的:

(2)按掩膜提取

(3)地形特征提取

等高线提取

采用【等值线】工具,结合DEM数据进行等值线分析

山体阴影

这个分析没多大用

坡度

剖面曲率

根据坡度计算破面曲率,输入是坡度!!

曲率分为平面曲率和剖面曲率。

剖面曲率:是对一个研究区的dem进行坡度分析后的结果再一次进行坡度分析。

平面曲率:是对研究区的dem进行坡向分析后的结果再一次进行坡度分析。

坡向

平面曲率

根据坡向计算平面曲率,注意输入是坡向!!!

曲率分为平面曲率和剖面曲率。

剖面曲率:是对一个研究区的dem进行坡度分析后的结果再一次进行坡度分析。

平面曲率:是对研究区的dem进行坡向分析后的结果再一次进行坡度分析。

地形起伏度

采用【焦点统计】,计算DEM数据,11×11窗口内的最大值

局部最大高程计算:

局部最小高程计算:

栅格计算器 ——地形起伏度计算:max-min

地形粗糙度

采用【栅格计算器】,对坡度进行弧度制转换

1/Cos("坡度.tif"*3.1415926/180)

高程差???

高程就是dem数据,高程差??是max-min不就是地形起伏度吗?

径流强度指数(SPI)

SPI值越高,表明径流集中可能导致土壤侵蚀。SPI公式形式较多,常见公式如下:

SPI=SCA * Tan(slope)

SPI=ln[SCA * Tan(slope)]

SPI=ln[SCA * Tan(slope)*100]

其中,SCA和slope意义与上述相同。本文基于公式2进行计算。所以要先计算SCA和slope

ArcToolbox→Spatial Analyst Tools (Spatial Analyst工具)→Hydrology (水文分析)→Fill (填洼)

要计算SCA:填洼——流向——流量——栅格计算单位面积汇流量

 填洼不成功什么都没有的话,把这个并行处理改成0,就行了

流向(也要把并行处理设计为0)

流量

SCA栅格计算器

公式为:

Con("流量_丽水" ==0,1,"流量_丽水") *900 / Con("流向_丽水" ==1,30, Con("流向_丽水" ==4,30,Con("流向_丽水" ==16,30, Con("流向_丽水" ==64,30, Con("流向_丽水" ==2,30 * SquareRoot(2) , Con("流向_丽水" ==8,30 * SquareRoot(2), Con("流向_丽水" ==32,30 * SquareRoot(2), Con("流向_丽水" ==128,30 * SquareRoot(2)))))))))

其中,900为栅格大小,即栅格分辨率的平方,需要根据自己的数据像元大小进行修改(本文为30m*30m,因此为900),且当"Flow Accumulation"为0时没意义,至少应为1。对于流向为1、4、16、64 的栅格,除以栅格尺寸,这里是30;对于流向为2、8、32、128的栅格,除以栅格尺寸的√2倍,这里是√2倍的30。

SPI栅格计算

SPI=ln[SCA * Tan(slope)]

Ln("SCA"*Tan(Con("Slope_丽水市_301" <=0,0.00001,Con("Slope_丽水市_301" >0 ,"Slope_丽水市_301" *3.1415926/180))))

其中,求Tan(slope)时需要先将角度化为弧度;且当角度为0时将其自定义为0.00001,否则无意义。

这个径流强度指数有负值????

地形湿度指数(TWI)

TWI是区域地形对径流流向和蓄积影响的物理指标。公式如下:

TWI=ln[SCA / Tan(slope)]

其中,SCA代表单位面积的汇流量,slope代表坡度(以度为单位)。所以要先计算SCA和slope

 Ln("SCA" /  Tan( Con("Slope_丽水市_301" <=0,0.00001 , Con("Slope_丽水市_301" >0 ,"Slope_丽水市_301" *3.1415926/180) )   )  )

多值提取到点

点要素+栅格数据   (点太多的话,对栅格重采样,30*30—>300*300,那所有的图层都要重采样吧,那我还是不重采样了)(假如只是为了得到点,那就用300*300转点,再用30*30获取点的数据,也行啊)

栅格转点——获取点要素

放大是这样的

点太多了,后面多值提取怎么出错呢,重采样一下

多值提取到点

表转excel

3种方法教你将ArcGIS属性表转换为Excel表格 - 知乎这个链接的方法似乎不错

我先导出表,得到【栅格转点300_ExportTable】,在进行表转excel,就行了,奇奇怪怪。

至此,关于dem提取地形因子的一系列流程大约摸清楚了,但是其中细节可能还有问题,再说吧老铁们。

### ArcGIS 中的 SPI 计算及其问题解决方案 在地理信息系统 (GIS) 领域,特定湿度指数 (SPI, Specific Humidity Index) 是一种用于评估地形特征的重要参数之一。然而,在实际应用中可能会遇到各种 SPI 相关的问题。 #### 1. 数据准备不足引发的问题 如果输入 DEM(数字高程模型)数据质量不高或分辨率不匹配,则可能导致计算结果偏差较大。因此建议使用高质量、统一标准的数据源来构建分析基础[^2]。 #### 2. 参数设置不当引起的结果异常 对于不同地区而言,最优阈可能有所差异;另外像窗口大小这样的关键参数也需要根据具体情况进行调整。当发现输出图像存在明显错误时,应重新审视这些设定并作出相应修改。 #### 3. 软件版本兼容性带来的挑战 随着软件不断更新迭代,旧版插件可能存在无法正常工作的情况。针对此类情况可以尝试升级至最新稳定版本或者寻找替代工具完成所需功能[^1]。 ```python import arcpy from arcpy.sa import * # 设置环境变量 arcpy.env.workspace = "C:/data" # 加载DEM栅格文件 demRaster = Raster("elevation") # 执行水文分析以获取流向汇流累积量 flowDirection = FlowDirection(demRaster) accumulation = FlowAccumulation(flowDirection) # 使用自然对数转换得到最终SPI地图 spiMap = Ln(accumulation * cellSize / medianCatchmentArea) ``` 上述代码片段展示了如何利用 Python ArcPy 库来进行基本的 SPI 分析流程。需要注意的是 `cellSize` `medianCatchmentArea` 这两个参数需依据实际情况自行定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值