基于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. SqlServer批量插入(SqlBulkCopy、表值参数)

    之前做项目需要用到数据库的批量插入,于是就研究了一下,现在做个总结. 创建了一个用来测试的Student表: CREATE TABLE [dbo].[Student]( [ID] [int] PRIM ...

  2. 警告"System.Configuration.ConfigurationSettings.AppSettings”已过时,解决办法

    解决办法: 直接把ConfigurationSettings写成ConfigurationManager,但是提示没有ConfigurationManager语句.

  3. 网站安装 https 证书

    1.点击进入官网  数安时代 2.点击选择你需要的ssl 证书 3.点击进入选择 免费申请 ,填写你需要 安装 ssl 证书 的域名 4.根据你的需求选择,我这里选择的是 数安时代 ,接下来按照步骤操 ...

  4. 51Nod-1259-整数划分 V2

    51Nod-1259-整数划分 V2 将N分为若干个整数的和,有多少种不同的划分方式,例如:n = 4,{4} {1,3} {2,2} {1,1,2} {1,1,1,1},共5种.由于数据较大,输出M ...

  5. Services版本tomcat 内存和perm 设置

    当在tomcat的webapps文件夹中部署需要大量资源的war包时,启动tomcat,war包将不能被成功部署. tomcat安装有services版安装和开发版安装. 本经验将介绍如何设置两种版本 ...

  6. Tensorlflow-解决非线性回归问题

    import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt #使用numpy生成200个随机点,范围从-0.5到0 ...

  7. C. Magic Ship (思维+二分)

    https://codeforces.com/contest/1117/problem/C 你是一个船长.最初你在点 (x1,y1) (显然,大海上的所有点都可以用平面直角坐标描述),你想去点 (x2 ...

  8. JS禁用浏览器退格键实现思路及代码

    [From] http://www.jb51.net/article/42562.htm 上周提交了一个项目(内部使用的),一同事提出个BUG,说要禁用退格键(backspace或者叫后退键),因为这 ...

  9. 《UML和模式应用(原书第3版)》目录

    学习 <UML和模式应用(原书第3版)>目标: 理解OOA/D思想 如何使用UML建模 如何使用设计模式 如何设计分层架构 目录: 第1部分 绪论 第1章 面向对象分析和设计 第2章 迭代 ...

  10. Rsa2加密报错java.security.spec.InvalidKeySpecException的解决办法

    最近在和支付宝支付做个对接,Java项目中用到了RSA2进行加解密,在加密过程中遇到了错误: java.security.spec.InvalidKeySpecException: java.secu ...