1、彭榧逡钚修正拓扑错误 1.1建立拓扑 打开ArcCatalog,在要素数据集上右键新建拓扑,按照系统向导一步一步设置: 名称:分区河流长度_Topology; 拓扑容差:保持默认; 参与到拓扑中的要素类:三个面要素; 等级:保持默认; 拓扑规则:BoundaryA不能与其他要素重叠ResidentialA,BoundaryA不能与其他要素重叠WoodyA,ResidentialA不能与其他要素重叠WoodyA。 完成后在弹出的是否立即验证的对话框中选择否。 1.2修正拓扑错误 打开ArcMap,将新建的拓扑以及对应的数据加载进来。 开启编辑,调用拓扑工具条,将视图缩放到所有图层,单击验证当前范围中的拓扑,然后打开错误检查器,对表格中的拓扑错误逐一排查修正。 在每一条错误上右键会显示系统提供的错误修改方法,对于面和面重叠的拓扑错误一般选择系统建议的合并方法即可,单击合并后会出现合并选择对话框,选择需要合并的要素,单击确定修改。
2、 2.标识要素 然后对处理完成的数据,我们需要做的就是让每条河流都有一个字段值可以分辨出它流经的区域,我们通过标识(Identity)工具实现。 打开toolbox, 依次选择分析工具(Analysis Tools) > 叠加分析(Overlay) > 标识(Identity)。 通过以上操作,将河流按woody的边界断开,并生成新的带有woody标识的河流图层,其中每段河流都包含了woody图层的属性。 同理,我们需要将residential和boundary图层也标识到河流上。 再次运行标识(Identity)工具,输入要素:HydroL_Identity1;标识要素:ResidentialA;输出要素:HydroL_Identity2;连接属性:ALL。 第三次运行标识(Identity)工具,输入要素:HydroL_Identity2;标识要素:BoundaryA;输出要素:HydroL_Identity3;连接属性:ALL。
3、 3.计算长度 接下来需要计算新HydroL图层每段河流的长度。 首先需要新建一个字段用于存储河流长度。在内容列表(TOC)中右键HydroL_Identity3图层,单击打开属性表,表选项(Options) > 添加字段(Addfield),字段名为“length”,类型为“双精度”。 右键length字段计算几何(CalculateGeometry),打开计算几何对话框,设置如下,计算该坐标投影下每段河流的长度 注意: ①计算河流长度要素类必须具有投影坐标系统; ②如果要素类存储在Geodatabase中,则可以直接使用Shape_Length字段中的值。
4、 4.长度统计 下面我们需要根据不同的区域进行长度统计。 打开Toolbox,分析工具(AnalysisTools) > 统计分析(Statistics) > 汇总统计数据(SummaryStatistics)。 统计字段:如果是shapefile格式,选择第二步新建的字段;如果是Geodatabase格式,直接选择Shape_Length字段。 统计类型:选择SUM; 案例分组字段:选择具有唯一标识的字段,例如,在本案例中,woody字段中存储的值为1,标识这条河流位于woody区域内。 SUM_length字段可以清楚地看到每个区域的河流总长度,另外还会发现有些河流没有流经任何区域。 如果没有进行第一步,即允许区域之间重合,那么最终结果还会显示出流经多个区域的河流的长度。