# Landslide_Analysis **Repository Path**: xushiluo/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**: 16 - **Forks**: 10 - **Created**: 2018-04-25 - **Last Updated**: 2025-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: 滑坡研究 ## README # 本插件为滑坡灾害敏感性制图工具。包含因子提取-危险性概率评估-危险性等级区划。 本插件已经在ArcGIS Pro 2.1.2和ArcMap 10.8上测试通过。 # 一、系统环境 - Windows 10 64bit 22H2 (19045.3930) - ArcMap 10.8 (自带ArcPy) - **Python 2.7.16** (ArcMap自带) - Numpy 1.9.3 (ArcMap自带) - matplotlib 1.5.2(ArcMap自带) - scipy 0.17.0(ArcMap自带) - pandas 0.18.1(ArcMap自带) # 二、其他依赖包 ## 2.1 依赖包列表 **ArcMap 10.8的Python版本为2.7.16,因此需要安装老版本的包**。除了系统环境中列举的自带包之外,本插件依赖的其他Python软件包: - scikit-learn==0.17 - pandas==0.18.1 - jenkspy==0.1.3 (**推荐使用**,用于自然断点法,轻量级) ## 2.2 安装依赖包 首先确认ArcMap 10.8 自带的python的安装目录,默认是在`C:\Python27\ArcGIS10.8`。 打开windows 10的命令提示符,进入`C:\Python27\ArcGIS10.8\Scripts`文件夹中,执行pip命令。 例如:`pip install jenkspy==0.1.3` 以及: `pip install scikit-learn==0.17` # 三、工具箱 ## 3.1 拷贝工具箱 (1)将本项目源码克隆到本地,也可以直接下载zip包源码。本项目地址为:https://gitee.com/xushiluo/Landslide_Analysis.git (2)假设源码克隆到了`C:\tmp\Landslide_Analysis`,那么将该目录加入到ArcMap的连接文件夹中。 ![image-20241209090114826](./doc_pics/P01连接源码文件夹.png) (3)工具箱介绍 | 工具箱 | 功能介绍 | 备注 | | --------------| ---------------------------------------- |---------------------| | **Luoge并行化工具箱108_ANSI.pyt**【推荐】 | 给ArcMap使用的Python个工具箱,可以充分利用CPU多核的计算功能。如对大的要素类执行要素转栅格。(已经在ArcMap 10.8下测试通过) | | | **LandslideAnalysisTools_4Pro.tbx** | 为ArcGIS Pro使用的工具箱,未充分测试 | | | **Luoge并行化工具箱_4Pro.pyt** | 为ArcGIS Pro使用的并行化工具箱,未充分测试 | | | **LandslideAnalysisTools106.tbx【已过时,不建议使用】** | 在deprecated文件夹中,为ArcMap的ArcToolbox工具箱,最好是ArcMap 10.6及以上版本。已过时,不建议使用。 | | 【Luoge注】:**Luoge并行化工具箱108_ANSI.pyt经过了充分测试,推荐使用。** ![image-20251027150850756](./doc_pics/工具箱截图.png) ## 3.2 工具源码路径 ### 1. 提取步骤LsaSteps 每个步骤对应的工具源码在**LsaSteps**文件夹中,工具与源码的对应关系如下: - 将"S6-结果链接与栅格化"拆分为了2步:**S6.1-连接CSV存为要素类**和**S6.2-要素转栅格(并行化)**,**这两步的速度都很快,推荐使用**。 | 工具 | 源码 | 工具所在位置 | | --------------| ---------------------------------------- | -------------------------| | S1-滑坡面转为栅格图层 | Luoge并行化工具箱108_ANSI.pyt,LsaSteps/S1_landslidePolygon2Raster.py | Luoge并行化工具箱108_ANSI.pyt | | S2-多栅格值提取至点要素类【栅格单元】 | 无。建议使用【spatial Analysis工具】-->【提取分析】-->【多值提取至点】 | 系统的【spatial Analysis工具】 | | S2-多栅格图层按斜坡单元统计【斜坡单元】 | Luoge并行化工具箱108_ANSI.pyt,LsaSteps/S2_rasters_extract2SlopeUnits.py | Luoge并行化工具箱108_ANSI.pyt | | S3-选择NULL点 | Luoge并行化工具箱108_ANSI.pyt,LsaSteps/S3_select_null_fc_gbk.py | Luoge并行化工具箱108_ANSI.pyt | | S4-属性表导出为CSV(栅格或斜坡单元) | Luoge并行化工具箱108_ANSI.pyt,LsaSteps/S4_table2csv_rasterUnits.py【同时适用于栅格单元和斜坡单元】 | Luoge并行化工具箱108_ANSI.pyt | | S5-模型预测 | 建议使用: [Luoge/NeighborhoodEnhancedGWLSA](https://gitee.com/xushiluo/neighborhood-enhanced-gwlsa) | 在neighborhood-enhanced-gwlsa项目的源码中 | | S6.1-连接CSV存为要素类| Luoge并行化工具箱108_ANSI.pyt,/parallelTools/featureToRaster_parallel.py |Luoge并行化工具箱108_ANSI.pyt| | S6.2-要素转栅格(并行化) | Luoge并行化工具箱108_ANSI.pyt,/parallelTools/joinCSV_saveNewFeature.py |Luoge并行化工具箱108_ANSI.pyt| | S7-危险性等级划分【自然断点法】 | Luoge并行化工具箱108_ANSI.pyt,LsaSteps/S7_LsaRasterReclass.py |Luoge并行化工具箱108_ANSI.pyt| ### 2. 实用工具Utils 实用工具对应的源码在**Utils**文件夹中,工具与源码的对应关系如下: | 工具 | 源码 | 备注 | | --------------| ------------------------------ |---------------------| | Util批量删除地理要素 | utils/util_batch_del_geoFiles.py | 通过通配符删除要素类、栅格数据集或表 | # 四、工具箱使用 ## S1-滑坡面转为栅格图层 ### 1. 效果 该工具的功能是将原始的**滑坡面要素类**转为包含**滑坡与非滑坡的栅格图层**。 ![image-20241209093219585](./doc_pics/S1-输入与输出.png) ### 2. 参数介绍: - 研究区面要素类:**面要素类**,表示研究区。**确保为投影坐标系。** - 滑坡面:**面要素类**,圈定的实际滑坡面。**确保为投影坐标系。** - 输出栅格:会自动生成名字,也可以手动修改。 - 栅格像素大小:输出栅格的像素大小,一般为30米。 - 滑坡的值:默认为1。输出栅格的像素值1表示滑坡。 - 非滑坡的值:默认为0。输出栅格的像素值0表示非滑坡。 ![image-20241209093219585](./doc_pics/S1-工具.png) ## S2-多栅格图层按斜坡单元统计【斜坡单元】 ### 1. 效果 将多个栅格图层的像素值按指定统计方式提取至对应的斜坡单元要素面。 ![S3-多栅格图层按斜坡单元统计-效果](./doc_pics/S3-多栅格图层按斜坡单元统计-效果.png) ### 2. 参数介绍 - 斜坡单元:斜坡单元,名称最好不要是中文的,并且在GDB文件中,不加载到当前地图中,避免锁的问题。 - 栅格与统计类型:Raster为栅格图层,Statistics Type为统计类型,可以添加多个。 - 斜坡单元的ID字段:默认为OBJECTID,一般不需要修改,除非你想自己设定ID字段。 - 是否删除已有字段(可选):默认是。如果斜坡单元属性表中已有相同名称的字段,则删除它。 ![S3-多栅格图层按斜坡单元统计-效果](./doc_pics/S3-多栅格图层按斜坡单元统计-参数.png) ## S2-多栅格值提取至点要素类【栅格单元】 建议使用【spatial Analysis工具】-->【提取分析】-->【多值提取至点】 ## S3-选择空值要素 ### 1. 效果 S2步骤之后,在研究区之外的位置或者是研究区内水系位置,因为没有数据,可能会提取到NULL值。该工具去除NULL值。 只要任意属性列中存在NULL值,则删除当前要素。 ![S3-选择空值要素-效果](./doc_pics/S3-选择空值要素-效果.png) ### 2.参数 - 输入的栅格单元 ![S3-选择空值要素-参数](./doc_pics/S3-选择空值要素-参数.png) ## S4-属性表导出为CSV(栅格或斜坡单元) ### 1. 效果 提取滑坡影响因子图层的栅格值至栅格单元/斜坡单元后使用。 ![S4-输入与输出](./doc_pics/S4-输入与输出.png) ### 2. 参数介绍: - GDB文件路径:完整的GDB文件路径 - 输入要素类:GDB目录下的点要素类或者面要素类 - 选择字段:当前单元要素里面的字段,被选中的字段将被导出。(注意Shape字段被选择也不会被导出) - 输出CSV路径:输出csv文件的完整路径。自动生成,也可以手动设定。 - 输出CSV的编码(可选):默认为`utf-8`,也可以设置为`gb2312`。 - ![S4-导出属性表](./doc_pics/S4-导出属性表.png) ## S5-模型预测 建议使用: [Luoge/NeighborhoodEnhancedGWLSA](https://gitee.com/xushiluo/neighborhood-enhanced-gwlsa) ## S6.1-连接CSV存为要素类(并行化) ### 1. 效果 ### 2. 参数介绍 - GDB:点要素类所在的GDB完整路径。 - 输入点要素类名称:GDB目录下的点要素类名称,可以下拉选择。 - 要素类中的ID字段:输入点要素类的唯一ID字段,用于连接CSV中的ID字段。 - 被连接的CSV文件完整路径:CSV的完整路径。字符串类型。 - CSV的ID字段:用于连接点要素类的ID字段。 - 输出要素类名称:可以自动生成,也可以手动输入。输出目录为GDB目录。 ![S6.1-连接CSV并存为要素类(并行化)](./doc_pics/S6.1-连接CSV并存为要素类(并行化).png) ## S6.2-要素转栅格(并行化) ### 1. 效果 ### 2. 参数介绍 ![S6.2-要素转栅格(并行化)](./doc_pics/S6.2-要素转栅格(并行化).png) ### 4.3 输出 输出结果为一个栅格图层。栅格值为滑坡危险性的概率。概率值越高,表明滑坡发生的危险越大。概率值越小,表明滑坡发生的危险性越小。 > 该结果后期可以用于危险性区划,例如使用自然断点法将区域划分为5个等级。