1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ArcGIS软件CAD数据通过转换建立GIS数据库

ArcGIS软件CAD数据通过转换建立GIS数据库

时间:2019-04-30 09:14:16

相关推荐

ArcGIS软件CAD数据通过转换建立GIS数据库

教程照片及其他详细信息请关注微信公众号:夫也的笔记

公众号内容包含:ArcGIS、ENVI、MATLAB、Python和R语言教程和实际案例分享。

趁着寒假,系统的学习一下ArcGIS,我边学边写,你边看边学。

动图跳跃分割线

新建Geodatabase

某地区有土地使用规划地图,要求输入 ArcGIS 数据库,原始图形是 AutoCAD的 DWG 文件,用 Polyline 和 Line 图形实体绘制地块边界,用 Text 实体注记的各地块编码(图 1)。

图 1 用 AutoCAD 显示 landcode.dwg

启动ArcCatalog,在左侧的目录中展开 Data\ex23,用右键点击 ex23 后选用菜单 New / Personal Geodatabase,新建一个 Geodatabase,取名为 Parcel23, 鼠标右键点击 Geodatabase Parcel23,选用菜单 New / Feature Dataset…,出现 Feature Dataset 对话框,在 Name 栏中输入 Feature Dataset 的名称 A1,单击下一步,进入空间参照 Spatial Reference 属性对话框,选择该要素集的投影坐标系,选择 Projected Coordinate System/ Gauss Kruger / Beijing 1954 / Beijing 1954 3 Degree GK CM 120E.prj,再按“确定” 键,再按“下一步”键,按 OK 键,要素集(Feature Dataset)A1 新建完毕,可以看到 ArcCatalog 对话框的右侧, 出现 A1 Personal Geodatabase Feature Dataset。

AutoCAD的线实体转换成线要素

在 ArcCatalog 左侧目录树中选择 Geodatabase Data\Parcel23,鼠标右键选用菜单 Import / Feature Class(Single)…,出现 Feature Class to Feature Class(要素类到要素类)对话框:

Input features

Data\ex23\landcode.dwg\Polyline 单击后面的图标,在路径 D:\gis_ex09\ex29 下,选择 landcode.dwg,双击鼠标,展开 dwg 中的要素,选择 Polyline,单击 Add 键添加。

Output Location

D:\gis_ex09\ex23\parcel23.mdb\A1 自动产生默认路径,无需修改

Output Feature Class:

Parcel_Polyline 键盘输入转换后的要素类名称

Expression (optional) 无须输入

Field Map(optional) 选择转换的字段。

在 CAD 文件转换成 Feature Class 的过程中,可以将 CAD 实体的相关特征, 如图层名 Layer、厚度 Thickness、高度 Elevation、颜色 Color 等,转化成 Feature Class 的属性表中的字段。对话框显示了转换前后的字段情况。其中,Field Map 是转换前后 CAD 实体的特性与转换之后的要素属性表的字段名,用户可以直接修改。为方便后续处理,删除所有的属性。

图 2 转换后的 Feature Class Parcel_Polyline

对话框中后面四个选项,均采用默认值,不做修改。选 OK 键确认。系统出现 Feature Class to Feature Class 计算框,经过一定时间的计算后显示完成转换,单击 Close 关闭 Feature Class to Feature Class 计算框。

原始 CAD 的线实体转换成要素类 parcel_Polyline。用户使用 ArcCatalog 中的预览 Preview 选项,可以看到转换后的线要素类 Parcel_Polyline(见图2)。新建的线要素类属性表中比原有的CAD图层增加的属性有 OBJECTID、Shape、Shape_Length 三项字段。其中, Shape_Length 是转换后自动产生的线要素长度。

CAD的文字实体转换成点要素

在 ArcCatalog 左侧目录树中选择 Geodatabase …\Data\ex23\ Parcel23\A1, 右键选用菜单 Import / Feature Class(Single)…,出现 feature Class to Feature Class(要素类到要素类)对话框:

Input features

D:\gis_ex09\ex23\landcode.dwg\Annoatio 单击后面的图标,在路径 Data…\ex23 下,选择 landcode.dwg,双击鼠标,展开 dwg 中的要素,选择 Annoation(文字), 单击 Add 添加。

Output Location:

Data\ex23\parcel23.mdb\A1 自动产生默认路径,无需修改

Output Feature Class Name:

Parcel_Label 键盘输入转换后的要素类名称

Expression (optional) 无须输入

Field map(optional) 选择转换的字段

其他均采用默认值,不做修改。单击 OK 键确认。系统出现 Feature Class to Feature Class 计算框,经过一 定时间的计算后显示 Completed,完成转换。

原始 CAD 数据的文字实体注记 Text 转化完成新的点要素类(Point Feature Class)Parcel_Label。使用 ArcCatalog 中的预览 Preview 选项,可以看到转换后的点要素类图形,以及新建的点要素类属性表中有字段(见图3)。

图 3 CAD 的 Text 实体转换成要素类,含 Text_属性

线要素的拓扑关系,检查数据质量

在 ArcCatalog 目录树中选择 Geodatabase Data\ex23\ Parcel23 下要素集A1,用鼠标右键选用菜单 New / Topology,按“下一步”键,进入拓扑类设定:

Enter a name for your topology:A1_Topology1 拓扑要素取名为 A1_Topology1

Enter a Cluster Tolerance:0.001 meter 设置限差值为 0.001 米

按“下一步”建继续:

Select the feature class that will participate in the topology:

Parcel_Label

Parcel_Polyline 钩选线要素类参与拓扑关系

图 4 添加拓扑规则 Must not Have Dangles

按“下一步”键进入 Rank 设置,本练习中无须设置此项,采用默认值,再 选“下一步”键设置拓扑规则。单击 Add Rule…,为线要素类 Parcel_Polyline 添 加拓扑规则 Must not Have Dangles(参考图 4)。勾选 Show Errors,按“下一 步”键,可看到有关拓扑的设置,如确认无误,按“完成”键继续。系统计算生成拓扑关系,提示:The new topology has been created, would you like to validate it?

图 5 在 ArcMap 中察看拓扑错误

选择“是(Y)”,系统验证拓扑关系,生成拓扑类 A1_Topology1。用 ArcCatalog的 Preview 窗口可以看到 5 个红色的小方块,提示有 5 处拓扑错误(图 5)。数 据转换后有质量问题,是很常见的,如:(1)CAD原始数据中,线和线之间没有严格按捕捉方式输入;(2)AutoCAD 和 ArcGIS 的坐标精度控制不一致,即使在 CAD 中严格用捕捉方式输入,转换后也会出现拓扑错误,(3)是建立拓扑关系时 限差值(Cluster Tolerance)取得太小,差错检验的要求过高,增加了出错的机会, 当然 Cluster Tolerance 设得太大,会影响要素的坐标精度(本次练习设成 0.001 米,在实际使用中可能要求过高了)。利用拓扑关系可有效检验数据质量。

修正几何差错,重建拓扑

启动 ArcMap,建立一个新的地图文档,加载(Geodatabase)Parcel23 下 Dataset A1 的要素类Parcel_Polyline、Parcel_Label、A1_Topology1。进入 Data Frame Properties(特征设置)对话框,点击 General 标签,将 Map Units 和 Display Units 均改为 Meters。使用 ArcMap 的编辑功能,修改要素类 Parcel_Polyline 的错误, 其中有线过短(Under Shoot)的问题,也有过长(Over Shoot)的问题(见图 5和6)。对过短的问题,使用高级编辑工具条上的 Extend 工具,过长的问题使用高级编辑工具条上的 Trim 工具。

图 6 最常见的线和线交接错误

完成修改,结束编辑状态,保存修改。启动 ArcCatalog,在目录树中选择 Geodatabase Data\ex23\ Parcel23 下的要素集 Geodataset A1,再选择其中的拓扑类 A1_Topology1,用鼠标的右键选用菜单 Topology / Validate,重新验证拓扑关系,系统提示:The topology has been validated。使用 ArcCatalog 的 Preview 标 签,查看拓扑类 A1_Topology1,保证没有拓扑错误,如果还有,再到 ArcMap 中编辑,再检查。直到表示错误的红点没有为止。

用线要素生产多边形

在 ArcCatalog 目录树中选择 Geodatabase Data\ex23\Parcel23 下的要素集 A1。在ArcToolbox中依次选择工具 Data Management Tools / Features / Feature to polygon,出现 Feature to Polygon 对话框:

Input Features:

…\Data\ex23\Parcel23.mdb\A1\Parcel_Polyline 选择添加参与生成多边形的线要素类

Output feature class:…\Data\ex23\Parcel23.mdb\A1\Parcel_Polygon 键盘输入多边形要素类名称

Enter a Cluster tolerance:0.001 meter

Preserve attributes 勾选

Label features:

…\Data\ex23\Parcel23.mdb\A1\Parcel_Label 添加选择点要素类,为新建的多边形要素类提供编号属性

图 7 多边形 Parcel_Polygon 带有点要素 Parcel_Label 的属性

按OK键确认,系统根据线要素Parcel_Polyline生成多边形要素Parcel_Polygon 的边界。多边形的面积、周长均自动产生,而每个多边形的编号属性 Text_却来自点要素类 Parcel_Label。由于点和多边形在空间位置上事先存在一对一的几何关系,如果原始 CAD 图形中,一个地块多边形内肯定有一个(只 有一个)Text 实体,Geodatabase 中不会产生差错。读者还可以进一步比较点、线、 面三种要素的属性项。选择菜单 File / Exit,退出 ArcCatalog。

连接外部表

进入 ArcMap,加载选择 Geodatabase Data\ex23\Parcel23 下要素集 A1 中的新建多边形要素类 Parcel_Polygon。可以看到每一地块多边形已经有了面积、 周长和用地编码等属性,下一步用连接(Join)外部表的方法,给地块多边形增 加其他属性,有关属性已经输入 Data\ex23\ Plandata.dbf 文件。在 ArcMap 中选择图层 Parcel_Polygon,用鼠标右键选择 Joins and Relates / Join…,弹出 Join

Data 对话框:

What do you want to join to this layer:Join attributes from a table 下拉选择和某个表建立连接

Choose the field in this layer that the join will be based on:Text_ 下拉选择连接字段名Choose the table to join to this layer,or load a table from disk:Plandata 利用按钮将Data\ex23\ Plandata.dbf 读入Choose the field in the table to base the join only:CODE 下拉选择被连接表的字段名

按 OK 键继续,提问是否要加索引, 回答“No”。可以看到,地块多边形多了 LANDUSE、FAR、DENSITY、GREEN、HEIGHT、REMARK 等属性。目前的连接是临时的,其他地图文档调用时该要素类,还要再作连接。继续在 ArcMap 中选择图层 Parcel_Polygon,用鼠标右键选用菜单 Data / Export Data…, 出现 Export Data 对话框,不要修改对话框中的其他选项,只修改最后一项:Output Shapefile or feature class?,打开后边的图标,再设置(参见图 8):

图 8 连接后的要素输出为新的 Feature Class

Look:A1 定位至 Geodatabase dataset 及要素类名称

Name: Parcel_end 键盘输入要素类名称

Save as type: Personal Geodatabase feature classes 下拉选择数据类型

按 Save 键,数据保存到 Geodatabase Data \ex23\Parcel23 中的要素集 Geodataset A1 下,为多边形要素类 Parcel_end,这一多边形要素类有了地块的全部属性。提示是否需要将输出的数据直接添加进入,选择“是(Y)”,在 ArcMap 中再加载 Parcel_end,打开图层属性表,可以看到,属性字段已经连成一体。

数据转换工作全部完成后,如果没有必要保留处理过程数据,应该到 ArcCatalog 中删除。为了不影响后续、他人的练习,退出 ArcMap 时,也不应保 留对地图文档的改动。

总结

CAD在其他行业应用广泛,将CAD数据转换进入Geodatabase,是一种常用的数据获取、交换途径。ArcGIS可转换AutoCAD的DWG和DXF文件,Intergraph / MicroStation的DGN文件。

表1 AutoCAD Entity和ArcGIS Feature Class之间的关系

AutoCAD Entity(实体类型) Geodatabase Feature Class(要素类)

Line, Arc, Circle, Polyline, Solid,

Trace, 3DFac

Line,线要素类

Point, Shape, Block的插入点 Point,点要素类

闭合的Polyline,Circle, Solid, 3Dface, Polygon,多边形要素类

Text Point,点要素类

ArcGIS转换CAD 文件,并不是根据图层读取,而是按实体类型(点、线、多边形、文字注记)读取,每一种CAD的实体可以被转换为一个要素类。转换时,可以选择是否将CAD原有的图层、颜色、高程等特征也转换到要素属性表中。例 如:如果CAD中某图层上图形对Geodatabase是多余的,就可以图层名作为属性转 换进来,再用属性查询、选择的办法,将符合原来图层名的要素选出来,成批删 除。AutoCAD不同实体与Geodatabase的要素对应关系如1所示。

CAD图形数据转换进入Geodatabase,一般直接使用原来的坐标,但是空间参照的有关参数应由用户指定。

在 AutoCAD 中,闭合的 Polyline 可以直接转换为多边形要素类。但是,在 AutoCAD 中生成闭合 Polyline 并不方便,尤其是当边界较为复杂、带有弧段,难 以产生闭合 Polyline。为此,本练习没有直接在 AutoCAD 中生成闭合 Polyline, 再转换为 Geodatabase 多边形要素类的方法,而是先将 CAD 的多边形边界转换为 线要素,利用拓扑关系查错、改错,再由线要素产生多边形,这一方法容易保证 数据的质量。

在 AutoCAD 中,往往将多边形的编号直接用 Text 实体标注,将 Text 实体转换为点要素后再进入多边形的属性表也是一种实用的途径。为此,要求在 AutoCAD 中输入 Text 实体时,必须将 Text 的标注点(Start Point)落在对应多边 形的内部,在 ArcGIS 中,参与多边形要素类的建立时,就可直接得到一对一的 逻辑关系,不必在 ArcMap 中逐个手工输入多边形的编号,这种方法可提高大批量数据输入的效率。本练习中线要素、点要素的转换方法也可用在其他场合。

动图跳跃分割线

END

夫也的笔记

地承千古人文

理蕴万世精神

长按二维码扫码关注>>>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。