利用ARCGIS进行地类计算与统计

更新时间:2024-04-18 02:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

地类计算与统计

一、 数据准备。

应用到的数据包括社界(DWG文件)和所求年份的现状图(Shape或GeoDatabase) DWG文件的注记的插入点(Text为左下角点)要落在对应的社界面上,这样才能保证数据转换后注记和面层的一一对应。

二、 数据处理。

数据的处理主要包括数据的转换、点面属性连接、数据相交三个部分。

2.1数据转换

2.1.1建立数据集

(1)点击Geodatabase:

打开ArcCatalog程序,找合适的路径然后【右键】→新建→Personal

- 1 -

(2)新建数据库后,【双击】进入数据库,【右键】→新建数据集→输入名称外,其余使用默认设置,不用修改,直接【下一步】,直到【完成】:

- 2 -

输入数据集名称

坐标系统选Unknown(未知),或者用【导入】选DWG文件的投影

- 3 -

容限使用默认即可,点击【完成】

2.1.2将DWG数据导入数据集

!!首先必须确定DWG文件的路径没有中文名(D:\\pssj\\sj.dwg),否则导入会一片空白 (1)【双击】进入数据集aaa,【右键】→【导入】→【要素类(多个)】

(2)在【Input Features】中添加DWG文件的注记层(Annotation)和面层(Polygon)

- 4 -

添加注记和面层,然后点【确定】导入

2.1.3检查修改面层的拓扑

!!面层可能存在裂缝和重叠错误,这样会带来计算面积的错误,因此要进行拓扑的检查 (1) 数据集aaa中,【右键】→【新建】→【拓扑】

(2) 前面两步使用默认直接【下一步】,选择要素的时候勾选面层然后【下一步】

- 5 -

使用默认等级,然后【下一步】

添加拓扑规则,规则选择【不能重叠】和【不能有缝隙】,分两次添加,然后【下一步】

点击【完成】,然后选【是】验证拓扑

- 6 -

(3) 修改拓扑错误

打开ArcMap,添加aaa_Topology,即可看到拓扑检查结果(红色部分)

可以看出,面层存在重叠,不存在裂缝,修要修改重叠部分,采用挖空的方法

▽ 【编辑器】→【开始编辑】→用【选择工具】(

)选中重叠部分:

- 7 -

【编辑器】→【裁切】(clip,可以将与选择部分有重叠的所有面擦除)

直接【确定】,对所有重叠部分重复以上步骤

在ArcMap工具栏位置【右键】→【拓扑】调出拓扑工具栏→【验证全部拓扑】

重新验证拓扑看还有没有拓扑错误

修改完没有拓扑问题后,【编辑器】→【保存编辑】→【停止编辑】

- 8 -

拓扑错误已经消除,可以进行下一步操作

!!如果导入DWG文件的线层,然后用线层构面的话,可以省略掉拓扑检查和修改这一步,操作会相对简单些。但拓扑检查是保证数据质量最常用的检查方式,因此这里将这部分内容写上,大家可以对比一下两种方法,以达到一方面简化操作步骤增加效率,一方面可以增加对拓扑的理解,保证数据质量的效果。 !!重叠部分的挖空和缝隙的填补操作是比较常用的编辑方式。挖空用【裁切】命令,填补缝隙则通过【修改要素】修改节点或者【自动完成多边形】完成,在此不写具体的操作步骤。

2.2点面属性连接

!!点面属性连接是根据点落在面内部的特性,通过空间连接运算,将点的属性添加到面的属性里面。具体来说就是标注点(Annotation)的Refname字段存储了社名,要将社名这个属性添加到对应的社界面上。

2.2.1添加数据,检查位置,保留字段

(1)在ArcMap中添加标注层(sj_dwg_Annotation)和面层(sj_dwg_Polygon)

- 9 -

原CAD图 对应ARCMAP图

检查一下点的位置,确定每个面上对应唯一的注记点,排除异常情况。 (2)保留字段

保留字段是保留有用的字段参与空间连接,去除不需要的字段,使结果简洁明了。

打开相应图层的【属性】

- 10 -

切换到【字段】这一栏

对于注记层,点【全部清除】,然后勾选【Refname】,保留Refname字段(存储社名的字段) 对于面层,点【全部清除】即可,不需要保留属性字段

2.2.2进行空间相交运算

点击工具栏的【ArcToolbox】按钮,打开ArcToolbox工具箱

- 11 -

按照【ArcToolbox】→【Analysis Tools】→【Overlay】→【Spatial Join】(空间连接)

打开空间连接对话框

!!早期计算地类采用【Intersect】(相交)工具,一样可以得到结果且有助于理解连接的过程,但操作相对复杂,应用【空间连接】工具操作比较简单,对结果检查比较容易

对话框中,【目标要素】下拉选择面层,【连接要素】下拉选择注记层,【输出要素类】则自己选择路径并为输出的要素类命名(在此命名为SJ)。其余使用默认。点击【确定】

ArcMap自动加载空间连接生成的图层(SJ),打开其【属性表】

- 12 -

找到相应图层→【右键】→【打开属性表】

【Refname】存储社名,【Shape_Area】存储面积,【Join_Count】字段是空间连接过程中自动生成的,表示连接到这个面的注记点的个数,如果为0则表示这个面上没有点,如果为2或3则表示这个面上有2个或者3个点,这样就不符合一一对应原则,要检查修改。由上图可知【Join_Count】全部为1,点与面一一对应,可以进行下一步运算。 !!到了这一步,社界面积就计算出来了,可以通过Access统计每个社的面积。

2.3图层相交求地类面积

(1)在上节打开的ArcMap中添加2007年的现状地类Shape数据(Geodatabase数据也可,如果求2008年地类则添加2008年现状图,以此类推)

(2)由图上可以看出社界和现状图重叠在一起,相交运算是通过现状图的界线将村界切开,并且把现状图的属性放到切开的小块社界中(可以参看Intersect工具的帮助)

- 13 -

(3)打开相交工具对话框【ArcToolbox】→【Analysis Tools】→【Overlay】→【Intersect】(相交)

在【输入要素】中下拉选择SJ(社界)和07MZDL(07现状图),【输出要素类】选择路径并输入名称(在此命名为SJDL)。其余使用默认,点击【确定】开始相交运算。运算完成后会自动将SDDL加载到ArcMap中。

上图中红色是原先SJ层边界,淡绿填充层是相交后生成的SJDL层,可以看出SJDL实际上

- 14 -

就是07地类界线将SJ层切开,或者SJ层界线将07地类切开,亦即两者的公共部分保留。 (4)打开SJDL的图层属性,在字段对话框中保留【Refname】(社名)、【DLDM】(地类代码)、【DLMC】(地类名称)和【Shape_Area】(面积)四个字段(参见2.2.1)。 (5)打开SJDL的属性表(参见2.2.2)

属性表里面每一条记录对应SJDL中的一个面,表明了这块地所属的社、地类名称和代码以及面积这些信息,比如说腊圃村村委这块地被07现状边界切成了四块,对应前面四条记录。这个表是最基本的表,后面的数据都将由这个表整理得出。 (6)导出属性表

在属性表界面中,右下角的【选项】菜单,【选项】→【导出】,打开导出表对话框

- 15 -

导出数据对话框中,【导出:】栏选all records(所有数据),输出表里选路径并命名dbf文件(这里命名为DLSJ.dbf),然后【确定】

由上图可以看出,导出的dbf文件包含两个:dbf后缀和xml后缀文件。dbf后缀文件存储所有数据;xml是元数据文档,起说明作用,可以忽略。

用Excel【打开】dbf后缀文件,【另存为】xls文件(DLSJ.xls)。至此,地类面积已经求出并导出为Excel文件,后续统计以导出的Excel文件为基础。

三、 地类数据统计

(1)打开Access(【开始】→【程序】→下图)

(2)用Access打开DLSJ.xls

- 16 -

(3)上图中,点击【打开】后,会出现导入对话框

这个不修改,直接【下一步】

这里要勾选【第一行包含列标题】,然后【完成】。这里直接点击【完成】则使用默认名为表名,如果想修改表名则点击【下一步】,然后再【完成】。

- 17 -

如上图所示,在数据库的表视图里可以看到导入的表(DLSJ)

双击表DLSJ可以查看导入内容是否正确。

(4)地类统计,合并相同地类的面积。

由上图可以看到,每个社都存在有同一地类有多块地的情况,如村委有两块1110的地,布尾社有多块1310的地。一般情况我们制表只需知道红线范围内每个社每个地类有多少面积,所以要进行统计将同一个社的同一地类的所有地块的面积加起来。

- 18 -

点击【查询】→双击【在设计视图中创建查询】

添加要进行查询的表,选中DLSJ然后【添加】→【关闭】

在查询对话框中,分别【双击】RefName、DLDM、DLMC和Shape_Area,添加四个字段到查询字段中。

- 19 -

在字段栏内部【右键】→【总计】,调出【总计】选项

在【总计】选项中,除了Shape_Area对应栏选【总计】外,其余栏选【分组】。其他选项不用修改 !!这个查询实际上是将同一个分组的相同项进行总计,首先是合并同一个社的相同地类,然后合并同一地类的不同地块面积。

选项设立好后,点击工具栏的【红色!号】(运行),则得到查询结果。

- 20 -

ArcMap自动把转化的注记层(SJAnno)加载 数据库中生成了SJAnno要素类

到这一步,注记要素在ArcGIS中已经生成,剩下的就是将其和面层导出为CAD格式

打开FME Workbench(【程序】→【FME】→【FME Workbench】) !!FME是加拿大Safe软件公司开发的一款商用数据转换软件,在数据格式转换方面较为常用,功能非常强大。

根据向导进行数据转换

直接【ok】

- 31 -

这一步是选择源数据的格式 ▽

选中ESRI Geodatabase(MDB),然后【ok】

- 32 -

格式选好后,【next】进行下一步

这一步是对MDB进行定位,点击“?”浏览数据库并将其添加,结果如图,点击【next】

到下一步 ▽

- 33 -

这一步是选择目标格式 ▽

选择ACAD格式,然后【ok】,然后【next】

- 34 -

这一步是对目标格式进行设置,比如版本、属性等。点击【Settings】

在Release中选择2000,其他不变,然后【ok】,然后【Next】

!!这个选项规定了输出的CAD版本,默认是2007,由于CAD2006打不开2007版本的dwg文件,因此选择比较通用的2000版本。

- 35 -

直接点击【Finish】(完成)

此对话框是选择参加转换的要素类,只勾选面层(SJ)和注记层(SJAnno)即可,然后【ok】

- 36 -

点击绿色按钮运行【转换】

这个对话框是对转换后的DWG存放路径及文件名进行设定,注意路径不能有中文,不然转出去是空的。设定路径后,点【ok】,然后就进行转换了。在设定的路径下找到sjmj.dwg即是转出去的社界面积

结果如图所示:

!!转出去的DWG图打开时有些中文字会显示为问号,这是字体原因,修改为中文字体即可。另外其默认图形单位为[英寸],进行插入等操作时要将其修改为对应的图形单位(如:无单位)

- 37 -

本文来源:https://www.bwwdw.com/article/17ip.html

Top