基于ArcGIS的CAD数据向GIS数据转换方法

1 CAD数据与ArcGIS数据介绍
 地图数据来源多种多样,大多数使用的是计算机辅助设计软件(CAD)制作的数据,CAD软件制图自动化程度高,操作简单,容易编辑,出图美观,且易于进行二次开发,因此CAD格式地图数据转换为其他GIS软件能支持的格式是在工作中经常用到的操作。ArcGIS作为GIS领域内常用软件,具有强大的数据分析、数据管理等功能,且能建立功能强大的本地数据库。本文以CAD数据到GIS数据转换为出发点,介绍由CAD数据到ArcGIS软件支持读取和编辑的矢量数据格式的转换方式。

2数据转换前的准备工作

CAD与ArcGIS在数据结构上存在较大的差异,CAD数据类型较为丰富,支持简单点、线、面、多义线、椭圆、块、文字等多种数据类型,而转换到ArcGIS中,只转换为点、线、面、注记等类型,这使得CAD图形数据不能很好的满足ArcGIS的要求,如:CAD中的Text数据类型,直接转换后只转换为ArcGIS中的Point,因此在做数据转换前,需要对源数据进行预处理。

(1)重命名CAD文件,如果转换前后数据命名规则有差异,最好重命名数据,保证在做完数据格式转换后,仍能清晰区分图层内容。

(2)筛选转换内容。如果只需将CAD文件的部分图层或只对图层中的一部分内容感兴趣,只要选择需要转换格式的图层,将它们复制到一个新的CAD文件中,留作转换备用。

(3)删除多余要素。采用擦除工具将所有多余要素删除,如:标题、边界、图例等,只留下需要进行转换的几何要素即可。

(4)CAD图层内容提取。数据转换前,确保所有要素都只存在于一个属于它们的图层中,擦除所有不属于本层的要素,或者将其复制到一个新的图层中。

(5)检查CAD数据坐标系统。大多数CAD数据的坐标系都采用GIS系统中能够识别的坐标系统,确定CAD的坐标系统有利于GIS坐标系统的确定级转换后坐标系统的处理。

为减少数据格式转换后大量的后续数据处理工作,数据转换前的工作非常必要,能够使转换后的问题尽量减少,不会出现重大错误,又能保证数据转换的精度。

3 CAD 到GIS数据转换方法

ArcGIS软件的ArcToolbox工具箱中有2个数据格式转换工具,分别是Conversion Tools 和Data Interoperability tools,其中,Conversion Tools有直接转换为 Geodatabase格式的工具(Feature class to featureclass),采用该工具进行格式转换时,原始数据只能是要素类(Feature class),

也可以在要素类上直接单击右键,选择Export 转换,这种方法比较简单,能够直接调用工具箱中的Feature class to feature class 工具,只需要注意当转换出的数据为Geodatabase格式时,数据的输出目标位置为数据库;当转出的数据位shapefile格式时,数据输出的目标位置为文件夹。

以上方法在地图图形元素不多时,可以采用。但是当DWG文件内元素个数过多时,如果无法再ArcGIS中显示,不能直接做转换,建议采用Data interoperability tools中的Quick Import工具先将CAD数据转换成Geodatabase格式,再经过处理后转换为需要的shapefile格式。

4 转换后处理

(1)拓扑重建

CAD数据转换为GIS数据后,经常会出现要素变形或数据冗余问题,为确保数据正确性,必须保证地物点的正确性、线要素连接完整、面要素封闭等拓扑规则。

点图层经常会出现重复点、悬挂点或伪节点等,如果有重复点,可在开启编辑的状态下采用“删除”操作。并为点要素设置合适的符号化样式。

线图层出现比较多的是连通性问题,可对同一图层的同一条线采用select操作查询到,在开启编辑的状态下调用(merge)方法实现线的融合。

多边形要素主要检查公共边是否重复及多边形的封闭性,可对面图层构建拓扑,利用数据库的拓扑规则进行检查并修改。

在将多个图层(点、线、面)合并为一个图层时,可采用ArcToolbox工具箱中的Append工具进行操作。另外,可调用Data management tools——Features——Feature to polygon做线转面操作,利用Features工具集下的工具做其他几何类型间的转换。

(2)赋属性值

CAD数据没有属性信息,而ArcGIS数据的属性表是其数据的重要组成部分,为了完善数据,数据格式转换后,可手动为Geodatabase数据或shapefile数据添加新字段,赋予属性值,但数据量比较大时,输入属性值耗费大量的人力,可调用工具箱中的Spatial Join工具将一个要素类图层的属性按照空间位置关系自动关联到与其相关的另一个图层上,实现属性值的自动批量追加,极大的提高了工作效率。

来自:www.higis.cn/Tech/tech/tId/34

 

基于ArcGIS的CAD数据向GIS数据转换方法(转)的更多相关文章

  1. (转) 基于Arcgis for Js的web GIS数据在线采集简介

    http://blog.csdn.net/gisshixisheng/article/details/44310765 在前一篇博文“Arcgis for js之WKT和geometry转换”中实现了 ...

  2. ArcGIS中的坐标系统定义与投影转换方法

    坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统的GIS数据是不完善的,因此在ArcGI ...

  3. ArcGIS 10——地理数据库管理GIS数据

    写本文的最初意向是当前正在进行的项目中有实现ESRI版本化数据管理的功能模块,碰到一些棘手的问题,几经周折还是决定系统学习ArcGIS10的帮助文档.(文章摘抄的比较多) 地理数据库是用于保存数据集集 ...

  4. 采集的GPS数据如何正确显示在arcgis和cad中

    利用GPS定位卫星,在全球范围内实时进行定位.导航的系统,称为全球卫星定位系统,简称GPS.GPS是由美国国防部研制建立的一种具有全方位.全天候.全时段.高精度的卫星导航系统,能为全球用户提供低成本. ...

  5. ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集

    前言 似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何"使用自己的数据"创建"网络数据集"的文章. 有介绍几何网络的,有介绍如何用官方SanFrancis ...

  6. 聊聊GIS数据的四个分层与GIS服务

    本篇不讨论矢量栅格数据的结构,也不讨论矢量与栅格的区别(即设定读者有这方面的基础). 版权声明:原创.博客园/B站/小专栏/知乎/CSDN @秋意正寒 转载请标注原地址并声明转载: https://w ...

  7. 通过SQL直接插入、修改ArcGIS SDE空间表中的数据

    基于Arcgis Server 10.1 +Oracle 11g环境测试 ArcGIS SDE ? 1 2 INSERT INTO CAMERA_INFO(OBJECTID,ID,SHAPE)     ...

  8. 基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(二)

    我们上一篇<基于 WebSocket 实现 WebGL 3D 拓扑图实时数据通讯同步(一)>主要讲解了如何搭建一个实时数据通讯服务器,客户端与服务端是如何通讯的,相信通过上一篇的讲解,再配 ...

  9. Mybatis框架基于注解的方式,实对数据现增删改查

    编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可: 在lib下 导入mybatis架包:mybatis-3.1.1.jarmysql驱动架包:mysql-connecto ...

随机推荐

  1. state-表单

    /*** 需求: 定义一个组件,可以将用户在输入框内输入的内容 进行实时显示** 分析:组件与用户交互过程中,存在状态的变化,即输入框的值** */var Input = React.createCl ...

  2. JAVA之I/O 输入输出流详解

    简    介 如何在Java中进行文件的读写,Java IO流是必备的知识.这篇博文主要为您带来Java中的输入输出流的内容,包括文件编码.使用File类对文件和目录进行管理.字节流和字符流的基本操作 ...

  3. MVC5 + EF6 入门完整教程1

    https://www.cnblogs.com/miro/p/4030622.html 第0课 从0开始 ASP.NET MVC开发模式和传统的WebForm开发模式相比,增加了很多"约定& ...

  4. Odd number problem

    描述 你一定玩过八数码游戏,它实际上是在一个3*3的网格中进行的,1个空格和1~8这8个数字恰好不重不漏地分布在这3*3的网格中.例如:5 2 81 3 _4 6 7在游戏过程中,可以把空格与其上.下 ...

  5. [转] SpringBoot RESTful 应用中的异常处理小结

    [From] https://segmentfault.com/a/1190000006749441 SpringBoot RESTful 应用中的异常处理小结 永顺 2016年08月29日发布 赞  ...

  6. Oracle 常用函数大全

    Oracle 11g 常用函数(Functions)详解 目录 ABS. 3 ACOS. 3 ADD_MONTHS. 4 ASCII 4 ASCIISTR. 5 ASIN.. 5 ATAN.. 5 A ...

  7. Linux kvm虚拟机的基本操作命令

    Linux 虚拟化kvm virsh常用命令篇 1.创建虚拟机 virsh define damo.xml //创建的虚拟机不是活动的 virsh create damo.xml //创建的虚拟机是活 ...

  8. EntityFramework 建立一对一关系

    前言:本来要使用实体拆分实现一对一,但发现查询时无法单独查询,影响效率,故改用手动建立一对一关系 例: 实体类: public class TestDbContext : DbContext { pu ...

  9. PIE SDK过滤

    1. 算法功能简介 过滤功能使用斑点分组方法来消除分类文件中被隔离的分类像元,用以解决分类图像中出现的孤岛问题. PIE SDK支持算法功能的执行,下面对过滤算法功能进行介绍. 2. 算法功能实现说明 ...

  10. Linux-密码复杂度限制

    前言 设置一个复杂的密码,可以有效的提升系统的安全性.在Linux上有PAM(Pluggable Authentication Modules)里面有一个pam_cracklib.so来控制密码的复杂 ...