基于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. Java ExecutorService 四种线程池

    1.new Thread的弊端 new Thead(new Runnable(){ @Override public void run() { // TODO Auto-generated metho ...

  2. C++_异常4-将对象用作异常类型

    通常,引发异常的函数将传递一个对象.这样做的重要优点之一就是,可以利用不同的异常类型来区分不同的函数在不同的情况下引发的异常. 对象可以携带信息,程序员可以根据这些信息来确定异常的原因. 同时,cat ...

  3. 【算法笔记】B1012 数字分类

    1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A​1​​ = 能被 5 整除的数字中所有偶数的和: A​2​​ = 将被 5 除后余 1 的数字 ...

  4. A Simple Problem with Integers(线段树区间更新复习,lazy数组的应用)-------------------蓝桥备战系列

    You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of op ...

  5. tensorflow基础-placeholder

    placeholder: 要给节点输入数据时用 placeholder,在 TensorFlow 中用placeholder 来描述等待输入的节点,只需要指定类型即可,然后在执行节点的时候用一个字典来 ...

  6. Bootstrap4 导航栏元素居右

    Bootstrap 4正解: .ml-auto元素居右 .mr-auto元素居左 在某度上查了半小时还是没查出什么名堂,搜出来的方法大多都是Bootstrap3的,实测pull-right或navba ...

  7. n皇后问题--DFS输出棋盘

    N皇后问题 Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上.你的任务是,对 ...

  8. PIE SDK坐标系选择

    1. 功能简介 坐标系选择可以查看当前图层的坐标系信息和显示其他坐标系的信息,下面将基于PIE SDK介绍如何实现坐标系选择功能. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载图层并 ...

  9. eclipse中注释快捷键

    手动注释: ①类注释:Shift+Alt+J ②方法注释:在方法上方输入/** 后点击回车 自动注释:点击菜单栏上的Window -->Preferences-->Java-->Co ...

  10. spark运行时出现Neither spark.yarn.jars nor spark.yarn.archive is set错误的解决办法(图文详解)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...