# Landslide_Analysis **Repository Path**: baocx/Landslide_Analysis ## Basic Information - **Project Name**: Landslide_Analysis - **Description**: 适用于ArcGIS Pro的滑坡灾害敏感性制图Python工具 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2024-08-09 - **Last Updated**: 2024-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 本插件为滑坡灾害敏感性制图工具。包含因子提取-危险性评估-结果展示几个模块 本插件已经在ArcGIS Pro 2.1.2和ArcMap 10.8上测试通过。 # 一、依赖关系 本插件依赖如下Python软件包: - numpy 1.13.1 - Matplotlib 2.0.2 - pandas 0.22.0 - scikit-learn 0.19.0 - ArcPy > 安装ArcGIS后会自动安装ArcPy 在使用前,请先使用Python的包管理工具pip或者conda安装相应的软件包。 # 二、设置工具箱 ## 1. 拷贝工具箱到工作目录 工具箱名称为:**LandslideAnalysisTools.tbx**,将其复制到当前工作目录,例如:`c:\Users\Zhangshan\Documents\ArcGIS` ## 2. 设置脚本路径 安装后工具箱如下图所示: ![工具概览](./doc_pics/01工具概览.png) 右键单击**S3提取因子**,选择【Properties】选项。打开相应的页签。 ![Properties选项](./doc_pics/02属性菜单.png) 在打开窗口的【General】选项卡中,Script File一栏选择正确的脚本路径。 S3提取因子对应的python文件是factors_exactor.py,选择该文件即可。其他参数不用更改,点击【OK】按钮,完成脚本路径设置。 ![设置脚本路径](./doc_pics/03设置脚本路径.png) ## 3. 各个工具与源码对应关系 上面的步骤中提到了**S3提取因子**对应的代码是:factors_exactor.py 剩下几个工具对应的代码如下: S4表转csv:table_to_csv.py S5危险性评估:fun_predictor.py S6结果链接与栅格化:produce_predict_result.py 设置好这几个工具的脚本路径,确定即可。 # 三、LandslideAnalysisTools工具箱使用 ## 1. S3提取因子 该工具的功能是将各个**因子图层**提取至**栅格单元**或者是**斜坡单元**。 ### 1.1 约束条件: - 静态的因子图层(不同年份保持不变的因子),存放在地理数据库中,文件名以**Factor_**开头。 ![Factor因子图层](./doc_pics/04Factor因子.png) - 土地利用因子图层,存放在地理数据库中,文件名以**LU_年份**的形式开头,年份为4位数字。,例如2003年的土地利用因子图层,文件名应该为**LU_2003** ![05土地利用因子](./doc_pics/05土地利用因子.png) - 降雨因子文件命名形式为:**Rain_年份**,其中年份为4位数字。例如Rain_2003,表示2003年的降雨因子图层 ![06降雨因子](./doc_pics/06降雨因子.png) - 土地利用变化因子命名形式为:**Change起始年份_结束年份**,其中年份为4位数字。例如Change2001_2003,表示从2001年至2003年的土地利用变化 ![07土地利用变化因子](./doc_pics/07土地利用变化因子.png) - 植被覆盖文件命名形式为:**Veg_年份**,其中年份为4位数字。例如Veg_2003,表示2003年的植被覆盖情况因子图层 - 道路缓冲区文件命名形式为:**RoadBuffer_年份**,其中年份为4位数字。例如RoadBuffer_2003,表示2003年的道路缓冲区因子图层。 - 标签列:标签列用于指示当前位置是否为滑坡,其命名方式为:**y_isLandslide_年份**,其中年份为4位数字 ### 1.2 参数说明: - 单元要素:单元要素可以为斜坡单元或者是栅格单元。当为斜坡单元时,该参数一般为面矢量;当为栅格单元时,该参数一般为点矢量; - 年份:当前数据的年份。如果只评估单个年份的滑坡灾害,该参数填入正确的年份即可。若是实时间序列滑坡灾害评估,请**务必**输入正确的年份。 - 删除已经存在的字段:默认是选中状态。选中时,提取因子之前先清除所有已经存在的字段(ObjectID和shape字段除外)。 ### 1.3 输出 输出结果仍然为【单元要素】本身。即将各个因子图层的值提取至了【单元要素】的属性表。每个因子图层为一个字段。 ## 2. S4表转csv **功能**:将要素类的属性表转为csv文件保存 ### 2.1 约束条件 单元要素为S3提取因子中的对应要素。也就是提取因子到要素类后的结果。 ### 2.2 参数说明 - 单元要素:单元要素可以为斜坡单元或者是栅格单元。当为斜坡单元时,该参数一般为面矢量;当为栅格单元时,该参数一般为点矢量。这里单元要素是将因子提取至要素后的结果。包含了各个影响因子和对应的y标签列表。 - 年份:当前数据的年份。如果只评估单个年份的滑坡灾害,该参数填入正确的年份即可。若是实时间序列滑坡灾害评估,请**务必**输入正确的年份。 - 选择字段(可选):需要保存至csv文件的字段列表。如果为空,则将所有字段保存至csv文件。如果不为空,则保存已经选择的字段列表至csv文件。 - 输出csv路径:csv文件的保存路径。最好**不要包含中文字符**。 ### 2.3 输出 输出结果为csv文件。 ## 3. S5危险性评估 ### 3.1 约束条件 csv文件中应该包含有ID列(后期用于连接至处理单元要素)、因子列(一般有多个因子)、标签列(一般为一列,指示当前对象位置是否为滑坡)。 ### 3.2 参数说明 - csv数据:S4表转csv的结果,即要参与到危险性预测的因子和标签数据。注意路径不要包含中文字符。 - 年份:当前数据的年份。如果只评估单个年份的滑坡灾害,该参数填入正确的年份即可。若是实时间序列滑坡灾害评估,请**务必**输入正确的年份。 - GeoID列:默认值为OBJECTID,用于标识每个处理单元。后期用于与要素连接(join),必须。 - 标签列前缀:y标签列前缀,一般为:**y_isLandslide_**,用于标识处理单元对象处是否为滑坡。滑坡为1,非滑坡为0 - 数据版本:用于方便区分数据结果版本。如果不需要区分,可以随意填写。 - 分类器:用于危险性评估的分类器,目前有logistic和svm两种 - 单元类型:raster或者slope,分为表示栅格单元或者斜坡单元。 - 是否绘制ROC:是否绘制ROC曲线图。依赖于Matplotlib库。 - 测试数据比例:危险性评估会将数据划分为训练数据集和测试数据集。该参数表示测试数据集所占的比例。默认为0.3,即30%的数据用于测试模型。 ### 3.3 输出 输出结果为一个csv文件,其中一般包含有`"# GeoID"`、`Predicted_Y`、`Prob_年份` 三列。其中第一列为ID列,后期用于连接到单元要素类的ID。第二列为预测结果标签,第三列为预测的概率值,第三列一般用于显示结果。 ## 4. S6结果链接与栅格化 1. 将预测的结果(csv文件)与处理单元要素连接(Join)起来。 2. 并将连接后的单元要素栅格化,栅格化使用概率字段`Prob_年份`作为值字段。 3. 最终结果是一个栅格图层,概率值越高,表明滑坡发生的危险越大。概率值越小,表明滑坡发生的危险性越小。 ### 4.1 约束条件 预测/评估结果(csv文件)中的ID列要与**单元要素**中的ID列(一般为OBJECTID)能够一一对应起来,才能将两者连接(Join)起来。 ### 4.2 参数说明 - 处理单元:单元要素可以为斜坡单元或者是栅格单元。当为斜坡单元时,该参数一般为面矢量;当为栅格单元时,该参数一般为点矢量。这里单元要素是将因子提取至要素后的结果。包含了各个影响因子和对应的y标签列表。 - 年份:当前数据的年份。如果只评估单个年份的滑坡灾害,该参数填入正确的年份即可。若是实时间序列滑坡灾害评估,请**务必**输入正确的年份。 - 连接源字段(处理单元):单元要素中的ID列名称,默认为:**OBJECTID** - 连接目标字段(预测结果csv):预测的csv结果中ID列名称,默认为:**# GeoID** - 预测结果(csv):即**S5危险性评估**步骤中输出的预测结果(csv文件)完整路径。路径不要包含中文字符。 - 像素大小:一般和**单元要素**生成时的像素大小一致,默认值为:**90**,单位为米。 ### 4.3 输出 输出结果为一个栅格图层。栅格值为滑坡危险性的概率。概率值越高,表明滑坡发生的危险越大。概率值越小,表明滑坡发生的危险性越小。 > 该结果后期可以用于危险性区划,例如使用自然断点法将区域划分为5个等级。