最近琢磨规划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. (整理)SQLServer 大数据的插入与查询

    最近几天一直在折腾大数据量的查询,最后在索引.分页存储过程和控件以及视图的帮助下,搞定了.这篇文章记录解决问题时候查看的网友的分享链接,以及大数据量数据的插入链接. DatagridView Virt ...

  2. crosswalk-webview

    https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview https://cordova.apache.org/doc ...

  3. 前端项目构建error

    Refusing to install webpack as a dependency of itself 原因:package.json中,"name": "webpa ...

  4. NHibernate系列文章十四:NHibernate事务

    摘要 NHibernate实现事务机制非常简单,调用ISession.BeginTransaction()开启一个事务对象ITransaction,使用ITransaction.Commit()提交事 ...

  5. cin判断读取结束 C++语言

    cin是C++的输入流,可以通过>>进行读取. 判断读取结束,一般有两种方法,具体取决于与输入的约定. 1 以特殊值结尾. 如输入整数,以-1结束,那么当读到-1的时候,就确定读取结束了. ...

  6. php关闭错误提示

    今天调试phalcon的一个接口时候碰到如下提示: Deprecated: mongogo::mongogo(): The Mongo class is deprecated, please use ...

  7. asp.net web api 测试帮助页面建立并测试

    asp.net web api 测试帮助页面建立并测试 现在使用WEB API来开发,越来越流行. 在开发过程中的测试调试,可以使用Fiddler等工具来帮助测试外,还有: 在asp.net 中有种方 ...

  8. MySQL_杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户_20161212

    #C025_02杭州北仓 12.3-12.7需求活动期间累计下单达到3天及以上的客户明细 SELECT d.*,CASE WHEN 下单天次>=3 THEN "下单超过3天" ...

  9. Dictionary和IDictionary

    Dictionary<string> s = new Dictionary<string>(); 这个是s是Dictionary类型.是个类 类型,实现了接口,提供了更多的方法 ...

  10. zk源码环境搭建

    zk不是使用maven管理的. 将zk的src下的代码导入eclipse,lib下的jar包导入工程. QuorumPeerMain类的main方法是入口,启动了zk的server,参数是conf文件 ...