是做网站好还是做游戏好百度小说排行榜风云榜
是做网站好还是做游戏好,百度小说排行榜风云榜,好看的html代码,山西网络营销外包1. 从零开始#xff1a;理解信息量模型与地质灾害评价
大家好#xff0c;我是老张#xff0c;一个在地质和GIS圈子里摸爬滚打了十几年的“老油条”。今天咱们不聊那些虚头巴脑的理论#xff0c;直接上手#xff0c;用ArcGIS把信息量模型这个听起来有点玄乎的工具#xff…1. 从零开始理解信息量模型与地质灾害评价大家好我是老张一个在地质和GIS圈子里摸爬滚打了十几年的“老油条”。今天咱们不聊那些虚头巴脑的理论直接上手用ArcGIS把信息量模型这个听起来有点玄乎的工具实实在在地用在地质灾害易发性评价上。说白了就是搞清楚一个地方比如你家后山到底容不容易发生滑坡、泥石流这些灾害。你可能要问为啥要用信息量模型我刚开始接触的时候也觉得这公式挺绕的。但后来发现它的核心思想其实特别“接地气”。想象一下你要判断一个地方容不容易发生滑坡你会看什么肯定会看这里的坡度陡不陡、岩石结不结实、最近下没下大雨对吧信息量模型干的事儿就是把我们这些常识性的判断用数学的方式给量化了。它计算每一个影响因素比如坡度25-35度这个范围对灾害发生到底“贡献”了多少信息。贡献的信息量越大就说明这个因素和灾害发生的关系越密切。最后我们把所有因素贡献的信息量像叠罗汉一样加起来就能得到每个地方的一个“总危险分”分数越高说明这里越“危险”。这个过程本质上是一种数据驱动的经验总结。它不需要我们事先去设定复杂的物理模型而是让数据自己“说话”通过统计历史上灾害点都落在哪些条件范围内来反推这些条件的重要性。这种方法特别适合我们手头有历史灾害点数据但对具体成灾机理还不是完全摸透的区域实用性强上手也相对容易。接下来我就带你走一遍完整的流程从准备数据到出成果图把每个环节的坑和技巧都给你讲明白。2. 实战第一步数据准备与预处理工欲善其事必先利其器。在打开ArcGIS之前咱们得先把“食材”备好。信息量模型这桌“菜”主要需要两类数据一是“佐料”也就是各种影响因子数据二是“主菜”也就是历史地质灾害点数据。2.1 影响因子数据收集与处理影响因子就是那些你认为可能会影响地质灾害发生的环境条件。常用的包括地形因子坡度、坡向、高程、曲率、地质因子岩性、断层距离、水文因子河流距离、植被因子NDVI以及人类活动因子道路距离等。这些数据通常来源于公开的DEM数字高程模型数据、地质图、遥感影像等。拿到这些原始数据后第一步不是直接用而是要进行标准化处理确保它们都在同一个“舞台”上。最关键的两点是统一的坐标系和一致的栅格分辨率与范围。统一坐标系在ArcGIS的【数据管理工具】-【投影和变换】中把所有数据都转换到同一个投影坐标系下。我一般推荐使用以米为单位的投影坐标系比如CGCS2000 3 Degree GK Zone带号这样计算距离、面积才准确。统一栅格属性这是最容易出错的一步。你需要使用【数据管理工具】-【栅格】-【栅格处理】下的“裁剪”或“重采样”工具确保所有栅格数据具有完全相同的像元大小分辨率、行列数和空间范围。一个偷懒但好用的方法是先准备好一个标准的、裁剪好的研究区范围面数据mask然后用【空间分析工具】-【提取分析】-“按掩膜提取”工具批量处理所有因子栅格并以这个mask为模板进行重采样。记得在环境设置里把“处理范围”和“栅格分析”中的像元大小都设置为一致。处理完后建议你建一个文件地理数据库.gdb来存放这些中间数据管理起来比散落的.tif文件要清爽得多。2.2 灾害点数据处理与空间化你的历史灾害点数据可能是一个Excel表格里面有经纬度坐标。我们需要把它变成ArcGIS能用的点要素。在ArcGIS Pro中这非常简单。直接在目录窗格中右键点击你的Excel文件选择“显示XY数据”指定经度、纬度字段以及正确的坐标系通常是WGS84地理坐标系就能生成一个临时的事件图层。千万别忘了右键点击这个临时图层【数据】-“导出要素”将它永久保存为GDB中的要素类。保存后记得用【投影】工具把它转换到和因子数据一致的投影坐标系下。这里有个关键细节检查你的灾害点。有时候数据不准点可能落在水域或者完全不可能发生灾害的极端平坦区。你需要结合高清影像或者地形图肉眼核对一下剔除那些明显有误的记录。准确的点位是后续所有统计计算的基石这块石头必须得稳。3. 核心操作信息量计算全流程拆解数据备齐重头戏来了。信息量计算的核心可以概括为“分级-统计-连接-计算”八字诀。下面我们一步步来。3.1 因子重分类与分级体系建立原始的影响因子比如坡度是一个连续值0-90度。我们需要把它分成有意义的几级比如0-10°缓坡、10-25°斜坡、25-35°陡坡、35°急陡坡。这个分级没有绝对的金标准需要你结合研究区实际情况和专业文献来确定。在ArcGIS中我们使用【Spatial Analyst工具】-【重分类】-“重分类”工具。这里我强烈建议选择“手动”分类方法输入你设定的分级断点值。重分类后会得到一个新的栅格每个像元的值不再是具体的坡度度数而是1,2,3,4这样的分级代号。为什么一定要重分类因为信息量公式I Ln((Si/S总) / (Ni/N总))中Si和Ni都是针对“某一级”的统计。不把连续数据离散化成级别就无法进行后续的频率统计。这一步是连接连续自然属性和离散统计单元的桥梁。3.2 基于空间连接的灾害点统计这是信息量计算中最具技巧性的一步。我们的目标是统计出落在每一个影响因子每一级内的灾害点数量即公式中的Si这里用点数代替面积原理相通。将重分类后的栅格转为矢量面使用【转换工具】-【由栅格转出】-“栅格转面”工具。将刚才重分类的坡度栅格转成面要素Polygon。在工具选项中勾选“简化面”可以提高处理速度但如果你研究区边界复杂可以不勾选以保证精度。这个转换后的面图层每个面块就代表坡度的一个分级。执行空间连接右键点击上一步得到的坡度分级面图层选择【连接和关联】-“连接”。在连接设置中“选择要连接到此图层的属性”选择你的灾害点要素图层。“选择连接依据”选择“空间连接”。“匹配选项”这里非常关键必须选择“完全位于内部”Contains。这意味着只有完全落在某个坡度面块内部的灾害点才会被统计到这个面块的属性里。为输出指定一个名字比如“Slope_Classify_Join”。点击确定后你会得到一个新的面图层。打开它的属性表你会发现多出了一列比如“Join_Count”这个值就是每个坡度面块内包含的灾害点数量它就是我们要的Si的替代值。如果“Join_Count”字段没有自动生成你也可以在连接时在“字段映射”里添加一个统计字段对灾害点ID进行“计数”统计。3.3 信息量计算与属性赋值现在我们有了每个面块的灾害点数量(Si)和每个面块的面积Ni可以用面块的Shape_Area字段近似或者用栅格像元数×像元面积计算。研究区总的灾害点数(S总)和总面积(N总)也很容易从灾害点图层和整个研究区范围获得。接下来我们在连接后的面图层的属性表里直接添加字段进行计算。打开“Slope_Classify_Join”图层的属性表。点击“添加字段”按钮新建一个双精度型字段命名为“Info_Value”。右键点击“Info_Value”字段的列头选择“计算字段”。在“Info_Value ”的表达式框中输入信息量公式的代码化表达。假设你的字段名如下Join_Count面块内灾害点数 (Si)Shape_Area面块的面积 (Ni) —— 注意单位需与总面积单位一致你需要先计算整个图层的总灾害点数(S总)和总面积(N总)。可以新建两个字段用“字段计算器”分别赋值为这两个常数。或者更高级一点在Python解析器下你可以用代码块先获取这些全局变量。这里我们用简单方法假设你已计算出Total_Points 100 (总灾害点数)Total_Area 500000000 (研究区总面积单位与Shape_Area一致)那么表达式可以写成math.log( ( !Join_Count! / Total_Points ) / ( !Shape_Area! / Total_Area ) )注意math.log在ArcGIS中默认是自然对数Ln。如果某个面块内灾害点为0Join_Count0直接计算会导致错误Ln(0)无意义。因此一个实用的处理技巧是给分子加一个极小值或者在实际操作中这些没有灾害点的区域其信息量通常赋一个最小值或0。我们可以用Python代码块来处理这个逻辑选择“Python”作为解析器在“预逻辑脚本代码”框中输入def calc_info(si, ni, Stotal, Ntotal): import math if si 0: return math.log( (si/Stotal) / (ni/Ntotal) ) else: # 对于没有灾害点的级别可以赋一个很小的负值或直接赋0 return -10 # 或 return 0然后在下方表达式框中输入calc_info(!Join_Count!, !Shape_Area!, Total_Points, Total_Area)这样每个坡度分级面块就拥有了计算出的信息量值。这个值代表了“坡度处于这一级别”对地质灾害发生所提供的信息量大小。正值越大说明该级别坡度对灾害发生的“贡献”越大负值则意味着该级别坡度下灾害发生的概率低于区域平均水平。4. 模型集成与易发性制图单个因子的信息量算完了但我们的目标是综合评价。这就需要把各个因子的“贡献”叠加起来。4.1 面数据回栅格与多因子叠加上一步我们得到的是带有信息量值的矢量面数据。为了进行栅格叠加我们需要把它们变回栅格。面转栅格使用【转换工具】-【转为栅格】-“面转栅格”工具。输入要素就是“Slope_Classify_Join”图层值字段选择我们刚计算好的“Info_Value”。像元大小设置成和之前预处理时一致的分辨率比如30米。输出位置指定好。这样我们就得到了一个栅格它的每个像元值就是该位置坡度所对应的信息量值。重复流程对每一个评价因子岩性、距断层距离、距河流距离等都重复3.1 到 3.3 以及本步骤的4.1的操作。最终你会得到多个栅格图层每个图层代表一个因子的信息量分布。我建议在命名时做好规范例如“Info_Slope.tif”, “Info_Lithology.tif”, “Info_DistanceToFault.tif”等。栅格叠加计算这是最激动人心的一步。打开【Spatial Analyst工具】-【地图代数】-“栅格计算器”。根据信息量模型公式总信息量I_total I_slope I_lithology I_distanceToFault ...。在栅格计算器中你只需要把所有的单因子信息量栅格像做加法一样加起来Info_Slope.tif Info_Lithology.tif Info_DistanceToFault.tif Info_DistanceToRiver.tif点击确定ArcGIS就会生成一个新的栅格。这个新栅格的每一个像元值就是该位置所有因子信息量的总和即地质灾害易发性指数。值越高表示该位置综合条件越容易发生地质灾害。4.2 易发性分级与成果图整饰得到易发性指数栅格后它还是一个连续的值。我们需要把它分成“高易发区”、“中易发区”、“低易发区”和“不易发区”等有限的几个级别这样成果才直观易懂。重分类确定分级阈值再次使用“重分类”工具。这次分类方法的选择至关重要它直接决定了你的评价结果。常用方法有自然断点法Jenks这是最常用的方法之一它能最大化组间差异最小化组内差异让分级结果更“自然”。在ArcGIS的重分类工具中可以直接选择。分位数法保证每个级别里的像元数量大致相等。手动划分根据你计算出的易发性指数值的实际分布范围结合历史灾害点在指数值上的聚集情况手动设定断点。例如你可以把灾害点最密集的前10%指数值范围划为“高易发区”。 我个人的经验是先用自然断点法试一下看看分出来的结果和历史灾害点的分布吻合度如何。然后可以微调或者尝试手动划分找到一个既能体现数据分布规律又符合专业认知的分级方案。制图与表达分级完成后就是出图了。在布局视图中插入图例、比例尺、指北针。给易发性分级图层设置一个清晰、直观的颜色方案通常用“红-黄-绿”的渐进色表示“高-中-低”风险。一定要把历史灾害点作为另一个图层叠加上去用醒目的符号比如黑色三角表示。这是检验你模型效果最直接的方式——看看高易发区是否确实囊括了大部分历史灾害点。如果大部分黑点都落在红色区域恭喜你模型效果不错如果散落各处你可能需要回头检查因子选择、分级或计算过程。成果输出与报告最后将地图导出为高分辨率的图片或PDF。别忘了整理你的操作流程、所用数据、参数设置特别是分级阈值和结果分析形成一份简明的技术报告。这份报告和这张图就是你这项工作的核心成果。走完这一整套流程你不仅得到了一张地质灾害易发性区划图更重要的是你亲手用数据验证了各个因素对灾害发生的影响权重。这种从原始数据到最终成果图一步步推导、验证的过程正是GIS空间分析的魅力所在。希望这个详细的拆解能帮你避开我当年踩过的那些坑顺利做出自己的第一份易发性评价图。记住模型是工具关键还在于你对研究区地质环境的理解多看看实地情况多和领域专家交流你的模型结果会更有说服力。