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

上传人:b****6 文档编号:6890183 上传时间:2023-01-12 格式:DOCX 页数:10 大小:25.70KB
下载 相关 举报
利用ARCGIS进行地类计算与统计.docx_第1页
第1页 / 共10页
利用ARCGIS进行地类计算与统计.docx_第2页
第2页 / 共10页
利用ARCGIS进行地类计算与统计.docx_第3页
第3页 / 共10页
利用ARCGIS进行地类计算与统计.docx_第4页
第4页 / 共10页
利用ARCGIS进行地类计算与统计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

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

《利用ARCGIS进行地类计算与统计.docx》由会员分享,可在线阅读,更多相关《利用ARCGIS进行地类计算与统计.docx(10页珍藏版)》请在冰豆网上搜索。

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

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

地类计算与统计

一、数据准备。

应用到的数据包括社界(DWG文件)和所求年份的现状图(Shape或GeoDatabase)

DWG文件的注记的插入点(Text为左下角点)要落在对应的社界面上,这样才能保证数据转换后注记和面层的一一对应。

二、数据处理。

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

2.1数据转换

2.1.1建立数据集

(1)点击

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

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

输入数据集名称

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

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

2.1.2将DWG数据导入数据集

首先必须确定DWG文件的路径没有中文名(D:

\pssj\sj.dwg),否则导入会一片空白

(1)【双击】进入数据集aaa,【右键】→【导入】→【要素类(多个)】

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

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

2.1.3检查修改面层的拓扑

面层可能存在裂缝和重叠错误,这样会带来计算面积的错误,因此要进行拓扑的检查

(1)数据集aaa中,【右键】→【新建】→【拓扑】

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

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

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

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

(3)修改拓扑错误

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

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

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

)选中重叠部分:

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

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

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

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

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

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

如果导入DWG文件的线层,然后用线层构面的话,可以省略掉拓扑检查和修改这一步,操作会相对简单些。

但拓扑检查是保证数据质量最常用的检查方式,因此这里将这部分内容写上,大家可以对比一下两种方法,以达到一方面简化操作步骤增加效率,一方面可以增加对拓扑的理解,保证数据质量的效果。

重叠部分的挖空和缝隙的填补操作是比较常用的编辑方式。

挖空用【裁切】命令,填补缝隙则通过【修改要素】修改节点或者【自动完成多边形】完成,在此不写具体的操作步骤。

2.2点面属性连接

!

!

点面属性连接是根据点落在面内部的特性,通过空间连接运算,将点的属性添加到面的属性里面。

具体来说就是标注点(Annotation)的Refname字段存储了社名,要将社名这个属性添加到对应的社界面上。

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

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

原CAD图对应ARCMAP图

检查一下点的位置,确定每个面上对应唯一的注记点,排除异常情况。

(2)保留字段

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

打开相应图层的【属性】

切换到【字段】这一栏

对于注记层,点【全部清除】,然后勾选【Refname】,保留Refname字段(存储社名的字段)

对于面层,点【全部清除】即可,不需要保留属性字段

2.2.2进行空间相交运算

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

按照【ArcToolbox】→【AnalysisTools】→【Overlay】→【SpatialJoin】(空间连接)

打开空间连接对话框

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

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

其余使用默认。

点击【确定】

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

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

【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工具的帮助)

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

在【输入要素】中下拉选择SJ(社界)和07MZDL(07现状图),【输出要素类】选择路径并输入名称(在此命名为SJDL)。

其余使用默认,点击【确定】开始相交运算。

运算完成后会自动将SDDL加载到ArcMap中。

上图中红色是原先SJ层边界,淡绿填充层是相交后生成的SJDL层,可以看出SJDL实际上就是07地类界线将SJ层切开,或者SJ层界线将07地类切开,亦即两者的公共部分保留。

(4)打开SJDL的图层属性,在字段对话框中保留【Refname】(社名)、【DLDM】(地类代码)、【DLMC】(地类名称)和【Shape_Area】(面积)四个字段(参见2.2.1)。

(5)打开SJDL的属性表(参见2.2.2)

属性表里面每一条记录对应SJDL中的一个面,表明了这块地所属的社、地类名称和代码以及面积这些信息,比如说腊圃村村委这块地被07现状边界切成了四块,对应前面四条记录。

这个表是最基本的表,后面的数据都将由这个表整理得出。

(6)导出属性表

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

导出数据对话框中,【导出:

】栏选allrecords(所有数据),输出表里选路径并命名dbf文件(这里命名为DLSJ.dbf),然后【确定】

由上图可以看出,导出的dbf文件包含两个:

dbf后缀和xml后缀文件。

dbf后缀文件存储所有数据;xml是元数据文档,起说明作用,可以忽略。

用Excel【打开】dbf后缀文件,【另存为】xls文件(DLSJ.xls)。

至此,地类面积已经求出并导出为Excel文件,后续统计以导出的Excel文件为基础。

三、地类数据统计

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

(2)用Access打开DLSJ.xls

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

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

这里要勾选【第一行包含列标题】,然后【完成】。

这里直接点击【完成】则使用默认名为表名,如果想修改表名则点击【下一步】,然后再【完成】。

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

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

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

由上图可以看到,每个社都存在有同一地类有多块地的情况,如村委有两块1110的地,布尾社有多块1310的地。

一般情况我们制表只需知道红线范围内每个社每个地类有多少面积,所以要进行统计将同一个社的同一地类的所有地块的面积加起来。

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

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

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

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

在【总计】选项中,除了Shape_Area对应栏选【总计】外,其余栏选【分组】。

其他选项不用修改

这个查询实际上是将同一个分组的相同项进行总计,首先是合并同一个社的相同地类,然后合并同一地类的不同地块面积。

选项设立好后,点击工具栏的【红色!

号】(运行),则得到查询结果。

查询结果是每个社的每个地类的总面积

【点击】左上角(红色圈)全选数据,然后【右键】→【复制】,将复制的数据粘贴到Excel表中,可以用于制作各种表格。

理解查询操作可以有助于各种面积的统计,比如说要统计红线范围内各个地类的面积,则在查询字段里不选RefName字段即可,得到结果如下:

整个地类计算过程中,要求前后面积一致,这样方能保证计算的过程不会出错。

一般要确保下面等式:

红线面积=拓扑处理后的社界总面积=与现状图相交后的地类总面积=查询后的地类总面积

计算过程会有系统差,但一般前后面积相差不到1个平方米,如果范围比较大可以将误差适当放大,但是超过10个平方米则应当认为计算过程有错误,可以分环节进行检查。

在ARCGIS中查看总面积:

打开面层的属性表,在属性表的面积字段(Shape_Area)【右键】→【统计】

【总计】一项就是总的面积。

在计算过程中多查看面积并进行对比可保证计算过程的准确性。

ARCGIS注记转化到CAD

进行空间运算后的结果有时要导出为CAD文件,这里以导出社界亩数为例说明如何将ARCGIS的面层及标注导出到CAD中去。

打开ArcMap,添加社界层(SJ)

【图层】→【右键】→【属性】,打开图层属性对话框

【常规】→【地图】→【分米】(此选项可以控制标注的大小,一般选分米即可)→【确定】

打开SJ层属性,在字段中只保留Shape_Area字段(参见地类计算与统计2.2.1)

打开SJ层属性表,【选项】→【添加字段】(添加一个字段用来存储亩数)

如上图设置,然后【确认】

常用的字段类型包括Text(文本型),用来存储文字;ShortInteger和LongInteger(短、长整型),用来存储整数,只是长整型可存储位数更多;Float和Double(单、双精度型),用来存储小数,Double型可存储更长位数。

添加字段后如上图所示

在mu字段上【右键】→【计算字段】,打开计算字段对话框

设置如上图所示,在等号下面输入round([Shape_Area]*0.0015,3),亦即mu=round([Shape_Area]*0.0015,3),其中[Shape_Area]*0.0015是根据[Shape_Area]字段的平方数计算出亩数,round函数用来对亩数保留三位小数。

点击【确定】,进行计算。

计算结果如图所示,ArcGIS的double类型默认将小数点前的0去掉,而Cad注记则要把0显示出来(如0.184亩)。

在这里采取先导出Excel表将0显示,然后粘贴到新建的text字段中的办法来解决。

导出上图的属性表到Excel中(参见地类计算与统计2.3之(6))【选项】→【导出】,在Excel表中打开如下图:

设置【mu】列的单元格格式,保留三位小数,然后选中数据部分【复制】

在SJ属性表中新建一个text字段,【选项】→【添加字段】,设置如下:

点击【确认】后,结果如下图:

将数据粘贴到[mu1]中:

【编辑器】→【开始编辑】,然后在[mu1]第一格进行粘贴:

可以看到,缺失的0已经补上。

【编辑器】→【保存编辑】→【停止编辑】,关闭SJ属性表。

打开SJ层属性对话框,对SJ层进行标注:

鼠标在SJ层上【右键】→【属性】→【标注】:

先勾选【标注这个图层中的要素】,然后点击【表达式】

在【表达式】中输入:

[mu1]&"亩",其中&是连接符号,将数字与字符“亩”连接起来。

点击【确定】,在图层属性对话框也点击【确定】

不同的表达式可以取得不同的标注效果,比如说现状图中的

(如

),可以通过输入:

[TBBH]&vbnewline&"-"&vbnewline&[DLDM]来完成。

标注结果如上图,此时要将图层【缩放】一下,以调整标注文字的大小,一般以标注文字填满最小面积的多边形为标准

将图层标注转化为注记:

选择SJ层,【右键】→【将标注转化为注记】

记下注记存放的位置和名称,然后点击【转换】

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

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

打开FMEWorkbench(【程序】→【FME】→【FMEWorkbench】)

FME是加拿大Safe软件公司开发的一款商用数据转换软件,在数据格式转换方面较为常用,功能非常强大。

根据向导进行数据转换

直接【ok】

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

选中ESRIGeodatabase(MDB),然后【ok】

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

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

这一步是选择目标格式

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

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

点击【Settings】

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

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

直接点击【Finish】(完成)

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

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

这个对话框是对转换后的DWG存放路径及文件名进行设定,注意路径不能有中文,不然转出去是空的。

设定路径后,点【ok】,然后就进行转换了。

在设定的路径下找到sjmj.dwg即是转出去的社界面积

结果如图所示:

转出去的DWG图打开时有些中文字会显示为问号,这是字体原因,修改为中文字体即可。

另外其默认图形单位为[英寸],进行插入等操作时要将其修改为对应的图形单位(如:

无单位)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1