最近琢磨规划CAD数据转换入库GIS方面的技术问题,看过一些前辈的文章/文献,对于使用FME WorkBench方面,有了一些了解,往往直接转换数据丢失比较严重,而且GIS对图形属性和空间拓扑比较严格,想着转换加个质量检测过程应该有利于数据交互。本来写成“发表论文”的形式,不发论文了直接贴出来。

一、引言

  城市规划一般都是以CAD进行图形设计的,包括总规、控规、分规、修详、红线等内容,每个部分又可以保护多个细分的图层。随着目前城市规划应用深入展开,必须考虑到GIS空间分析的功能性,GIS对于城市规划辅助决策具有决定性效果。然而目前由于CAD数据与GIS结构和存储表达的不同,使得二者之间的转换出现很大障碍,为此寻求一种良好的争取尽量丢失信息的转换方式就是必须的。

  FME作为一款ETL(Extraction-Transformation-Loading)产品,在数据转换中应用广泛,特别是GIS方面的数据转换应用。目前在CAD转GIS中,无外乎以下几种方式:使用FME本身的软件产品进行转换,如FME Quick Translator;使用ArcGIS内嵌的转换工具;使用FME WorkBench制作转换模板;使用FME Plugin-In开发专门的一种插件;使用FME Objects二次开发进行定制、快速、批量转换;还有生成脚本文件.bat和.tcl进行批量转换等。然而这些转换都没有具体的进行转换前质量检测,在一定程度上影响转换的准确率,本文于此提出FME《质量体系》,描述转换数据质量检测。

二、FME质量体系建模

一个良好的质量检测体系为数据转换准确率、效率、应用效果提供巨大支持。

  1、规划CAD数据质量问题

  规划数据以已经经过规划的CAD规划成果为数据源,然而由于人工操作、规划水平,难免会出现些图形数据属性数据方面的问题,图形方面表现在线交叉、重叠等拓扑错误、实体元素错误等,属性方面表现在属性名称不符合标准、属性为空、属性值无意义、属性超过限定值等,还有对于GIS而言一些文字、标注等多余的描述性东西。

  2、GIS入库标准建立

进行质量检测必须有标准可依,CAD规划数据入库GIS必须符合GIS空间建库的一系列条件,以ArcGIS的GeodataBase为空间数据库,表现在以下几个方面:

(1)需符合国标规定,CAD数据入库需满足城市规划各项国标要求;

(2)空间参考、水准高程等数学元素需满足GIS在测绘方面要求;

(3)空间数据建库组织,以Geodatabase的各项要素进行分层组织,分层表达,规划成果总规、控规、分规、修详、红线等各组织为一要素数据集,要素数据集里面可以由多个要素类、关系、拓扑、网络等;

(4)要素命名规范,符合大类标准,细分到具体要素类,字母表达容易理解;

(5)数据结构建立,在CAD数据结构的基础上更改和扩展属性数据结构;

(6)CAD符号在GIS中表达,满足空间入库符号化制图表达要求;

(7)对应于相应的空间分析,有专项规划空间分析和三维分析,保证数据可以满足对应的空间分析条件,以发挥数据规划分析功能。

  3、质量检测体系框架

在FME支撑下,针对CAD规划成果的数据问题提出满足GIS入库标准的质量体系框架,描述质量检测内容与流程,为数据GIS入库提供前提检测。

图1 质量体系

质量检测体系的每个检测内容都包含若干个需要检测的子项,而且检测内容之间也相互嵌套支持,其中核心检测内容为图形检测盒数据检测,上图中列出主要检测类别,更多细项需要根据需求而定。每个检测内容在FME中或单独或联合几个转换函数Transformer使用,配置需求的参数和选项以及设置工作流程。

1)整体性检测

整体性检测涵盖整个数据检测入库过程,要素组织可以从大类分小类,进行对应的要素组合和命名,ListBuilder和ListRenamer提供支持;空间参考从整个要素库到单个要素、属性都扮演着重要角色,不同的要素要想在一起使用需进行空间投影,可CoordinateSystemSetter 、ESRIReprojector 、Reprojector来进行设置;检测结果包括成功的、失败的,同时又需要输出为报告或图形,可StatisticsCalculator、Counter等。

2)完整性检测

完整性可有空间属性逻辑一致性,空间图形的拓扑一致性,文档表格的存在规范性,工作流程的设计合理性,记录描述的有效性,日志记录等。属性完整性检测属性是否正确对应,PointOnAreaOverlayer点面叠加操作判断注记是否在地块内,Tester属性条件判断;空间拓扑描述点、线、面已经复合要素的空间关联,TopologyBuilder建立拓扑,SpatialRelator确定要素间的拓扑关系;Logger记录详细的流程操作信息。

3)标准性检测

对内容符合一些规范、国家地区标准内容与否进行相关判定操作并作出对应的纠正,要素内容是否符合地区建设内容,要素结构是否满足实际需求,需要在逐步考察对比分析的基础上进行,Matcher内容匹配检测,Sampler抽样检测,Tester和TestFilter进行实际测试。

4)属性检测

表达要素基本信息的核心内容之一,CAD数据一般没有具体的属性结构,而且表达意义不迫切,但GIS中是必备的。不易识别的属性需改名AttributeRenamer,空值属性或修改或创建AttributeCreator,暴露出属性供其他要素选择所需AttributeExposer,过滤属性内容或选择一定的属性范围AttributeRangeFilter,组合其他要素的属性AttributeAccumulator,还有对属性进行裁剪、增加扩展、分隔、计数等,这些组成属性检测必备函数。

图2 常规属性处理过程

5)空间检测

表达要素空间关联的核心内容之二,基于CAD内容的各种空间关联问题,在入库GIS前,分别从CAD和GIS角度进行拓扑检测,包括一般的常规拓扑检测和空间分析拓扑检测。常规拓扑就是点、线、面、复杂聚合要素的空间关联,而空间分析拓扑则是在经过缓冲、叠置、网络甚至三维分析后进行的拓扑。

针对CAD是个多图层的综合体,需要进行图形要素分类检测,GeometryFilter分裂成GIS多种几何类型,使用FeatureFilter/AttributeFilter/ DuplicateRemover完成图形分类;

针对点、线、面、复合要素,有点点、点线、点面、线线、线面、面面、环(Donut)和岛(Hole)这些基本几何拓扑关系,具体描述方式依照GIS拓扑9-交拓扑模型和四叉树八叉树表达,这些关系主要有:点点叠加,点线叠加,点面叠加,线线叠加,线面叠加,面面叠加,在FME函数表达中为:【类型】On【类型】Overlayer;要素环建立DonutBuilder,岛提取,相交Intersect,自相交SelfIntersect,空间擦除Clipper,空间合并Dissolver/FeatureMerge等;       针对空间分析,可综合多个空间拓扑进行,有缓冲分析、叠置分析、网络临近、网络最优、网络选址,在三维方面表现在DEM和表面Surface。其中缓冲分析Bufferer函数,网络临近ShortestPathFinder,三维DEM创建DEMGenerator/ TINGenerator/ ContourGenerator等。

5)工作流程

质量检测对空间要素进行空间非空间的检测,以《质量体系》为检测引擎,在对数据进行预处理的基础上执行检测,对检测结果进行图形和报告输出,最终目的是GIS入库和数据更新,保证数据质量支撑GIS应用。工作流程作为质量体系建模的“外部”部分,建立FME WorkBench的WorkSpace为存储介质,图形化可拖动配置性界面来操作。

  最后,传统转换都直接以实际例子来说明,没有具体描述整个过程,本文针对检测质量体系提出相关内容,当然内容是大体上,还有更多内容需要考虑,当做一种研究学习方法和推进思路,共勉。

  

  

FME之于规划CAD数据质量检测的更多相关文章

  1. 开源数据质量解决方案——Apache Griffin入门宝典

    提到格里芬-Griffin,大家想到更多的是篮球明星或者战队名,但在大数据领域Apache Griffin(以下简称Griffin)可是数据质量领域响当当的一哥.先说一句:Griffin是大数据质量监 ...

  2. 使用FME对CAD数据进行过滤、中心点替换转为shapefile

    1.首先加载CAD数据,并暴露出需要使用到的相关字段.比如:block_number.fme_geometry.fme_type等字段. (本次的管网设备由于是一个圆圈里面有三个文字因此将fme_ty ...

  3. Java代码规范与质量检测插件SonarLint

    1.  SonarLint SonarLint是一个代码质量检测插件,可以帮助我们检测出代码中的坏味道 下载与安装 在需要检测的单个文件或者单个项目上右键 --> Analyze --> ...

  4. 如何做好SQLite 使用质量检测,让事故消灭在摇篮里

    本文由云+社区发表 SQLite 在移动端开发中广泛使用,其使用质量直接影响到产品的体验. 常见的 SQLite 质量监控一般都是依赖上线后反馈的机制,比如耗时监控或者用户反馈.这种方式问题是: 事后 ...

  5. DIY 空气质量检测表

    DIY 空气质量检测表 前几天逛淘宝看到有空气颗粒物浓度测量的传感器,直接是 3.3V TTL 电压串口输出的,也不贵,也就 100 多一点.觉得挺好就买了个,这两天自己捣鼓了个小程序,搞了个软件界面 ...

  6. TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台

    本篇文章内容来自2016年TOP100summit Microsoft资深产品经理邢国冬的案例分享.编辑:Cynthia 邢国冬(Tony Xing):Microsoft资深产品经理.负责微软应用与服 ...

  7. 数据质量控制软件Q-CHECKER(转)

    随着企业信息化建设的不断深入进行,我们的企业将逐步地发展成为数字化企业.其中作为最基本构成的CATIA数模已经是产品开发制造的唯一依据,CATIA数模的质量就是加工的质量,就是制造的质量,就是生产出的 ...

  8. 智能家居DIY-空气质量检测篇-获取温度和湿度篇

    目录 智能家居DIY-空气质量检测篇-获取空气污染指数 前言 话说楼主终于升级当爸了,宝宝现在5个月了,宝宝出生的时候是冬天,正是魔都空气污染严重的时候,当时就想搞个自动开启空气净化器,由于种种原因一 ...

  9. P2251 质量检测(ST表)

    P2251 质量检测 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的分值Q[m] = min{A1, A2, ... ...

随机推荐

  1. Android软件测试Monkey测试工具

    前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其 ...

  2. 初识UML

    最近的学习中,遇到几次UML图,很是迷糊,确切的说,看不太懂.查阅UML相关资料,基本解决了这个问题.UML看起来还是相当深奥,这里只提一下解决问题的部分知识.(以下知识来自网络) Unified M ...

  3. iMac 重装系统

    iMac重装系统相当简单.开机的时候按下option键选择恢复系统或者在开机前按下 command+R然后按开机键松开同样会进入系统选择界面: 当中有 4 个选项:Restore From Time ...

  4. Hadoop MapReduce编程 API入门系列之压缩和计数器(三十)

    不多说,直接上代码. Hadoop MapReduce编程 API入门系列之小文件合并(二十九) 生成的结果,作为输入源. 代码 package zhouls.bigdata.myMapReduce. ...

  5. Python 之Django

    1.安装Django(下载慢的时候用MaxVPN) pip3 install django 2.Django处理流程 新建project(mysite),执行dj(mysite),然后在console ...

  6. 8.8 CSS知识点1

    什么是CSS CSS(Cascading Style Sheet) 层叠样式表 CSS3在CSS2的基础上增加了很多强大的新功能,目前主流浏览器都支持CSS3大部分功能.为了更好的向前兼容,不同的浏览 ...

  7. 一个PHP日历程序

    <?php  //<-------处理通过GET方法提交的变量;开始-------->  if($HTTP_GET_VARS[year]=="")  {      ...

  8. JSON中的日期格式化

    Json字符串中的日期格式化函数 ConvertJsonDate: function (jd) { var d = new Date(parseInt(jd.replace("/Date(& ...

  9. Android源代码结构分析

    Google提供的Android包含了:Android源代码,工具链,基础C库,仿真环境,开发环境等,完整的一套.第一级别的目录和文件如下所示:----------------├── Makefile ...

  10. 3.Mybatis全局配置文件属性详解(SqlMapConfig.xml)

    首先我们要知道一点,该配置文件的中属性的存放是有顺序的,没有办法随意的乱放.如果你属性的配置位置出错,会有如下错误提示: The content of element type "confi ...