参赛单元:传统GIS数据处理

作者:李芃乐

单位:陕西迪博景源测绘地理信息有限公司

一、前言

很有幸在入测绘这行的时候就接触了强大的FME,回顾FME陪伴我的这四年,从最开始最简单的格式转换,到照猫画虎的模仿别人的模板,再到自己尝试写一些模板解决工作中的问题,再到现在的将FME融入到作业流程中。

可以说FME见证了我技术的进步。在矢量化中使用了格式转化、图形拓扑检查与修复;土地确权中四至的提取、数据质检、表格输出;农村宅基地确权中的数据质检、宗地图的生成与输出等。让我在接触了三调项目后第一时间就在想FME在三调中可以发挥那些作用。

二、FME在三调中的应用

笔者在三调过程中主要在参考数据的整合分析、三调内业数据处理及入库、三调内业工作量统计中使用了FME。

1.参考数据的整合分析

具体流程图如下

由于此项工作为一次性工作,且为较简单的空间叠加分析,本文不做详述

2.三调内业数据处理

内业数据的处理过程中,主要使用了FME的空间分析、属性生成等功能,主要流程如下

  • 预处理阶段

  • 接边检查阶段

  • 入库前处理阶段

本文主要分享预处理阶段数据处理及质检以及接边检查的部分内容。

3.工作量统计及数据管理

笔者发现在工作量统计这块尤其是修改过程中的工作量统计,一直存在统计不准确、难以量化、难以反映难易程度等问题,数据管理过程中也存在数据丢失、数据混乱、工作交接困难等问题。笔者试着通过FME来解决,在此分享一个正在试用的一个方法,希望给大家带来启发,也希望听到大家更好的解决方法。

三、预处理与预检查

1.预处理

1.1主要实现的功能及对应使用的主要转换器

功能

主要转换器

转换器功能

预编号处理

DuplicateFilter

根据一个或多个关键字段值,删除值重复的要素

Count

添加一个计数属性

修复几何

GeometryValidator

修复一部分几何错误

弧转多段线

ArcStroker

通过沿着弧要素边界内插一系列的小线段替代原来的图形,将弧要素转化为线要素。

图内缝隙处理

Snapper

如果要素的终点或顶点的距离在一定范围内,并且(可选的)它们有一个或多个相同的属性,则捕捉在一起。

AreaGapAndOverlapCleaner

维护区域拓扑解决相邻区域之间的缝隙和重叠。

与村界间

的缝隙

AnchoredSnapper

将一系列符合输入标准的要素,与位于特定容差范围内、也符合输入标准的要素进行捕捉。

Clipper

裁剪面

碎面的融合

TopologyBuilder

在输入的点、线和/或面要素上计算拓扑,并输出重要的节点、边和面,并带有描述拓扑关系的属性。

1.2 弧转多段线

这个主要是线状地物面状化过程中使用ArcGis的缓冲造成的。使用ArcStroker前后:

但是处理后会产生细小的缝隙,这是时候可以使用AreaGapAndOverlapCleaner来修复这种缝隙:

1.3 与村界间的缝隙

为了后续接边的自动检查,这里要求每个以村为单位的数据必须与村界间完全套合,没有拓扑错误。这里主要使用了Clipper转换器进行双向裁剪,先使用村界裁剪地类图斑,再使用地类图斑裁剪村界得到与村界间的缝隙。

1.4 碎面的融合

除了与村界间的缝隙,在作业过程中也可能产生碎面。在预处理的过程中先针对10平方米(数值可以调整)以下的碎面与邻近大图斑融合。主要步骤如下:

①使用TopologyBuilder建立拓扑关系,面输出端按照面积筛选出需要处理的碎面;

②筛选出来的碎面与边输出端挂接,筛选出对应碎面的边;

③按照长度选取碎面的最长边;

④使用FeatureMerger把最长边所在的大面的唯一标识符(_face_id)赋值给碎面;

⑤使用Dissolver用_face_id分组进行融合。

Tips:_face_id为TopologyBuilder自动生成的每个面的唯一标识符。

1.5 其他功能

①通过FeatureMerger和数据字典对数据代码所对应的属性值进行赋值。本文不再叙述;

②使用PointOnAreaOverlayer赋值坐落单位代码和名称,并将压盖计数属性等于0或者大于1的提取出来输出到待核实层,供作业员核实。

这一步是为了防止面融合或者处理分析过程中发生丢面或者属性值改变。在图形转换前使用CenterPointReplacer为每个图斑生成包含全部属性的点要素,待图形转换完成后使用PointOnAreaOverlayer进行赋值,同时计数属性等于0或者大于1的要素有可能发生了丢面或者属性变化。

2.预检查

预检查是内业作业过程前期使用最频繁的一个模板,除包含常规检查中的面重叠、缝隙、狭长角等常规的拓扑检查,还针对三调项目制作了节点密度检查、不规则图形检查、线状地物宽度检查、相邻图斑属性一致未合并检查以及属性逻辑性检查。

2.1主要实现的功能及对应使用的主要转换器

功能

主要转换器

转换器功能

常规拓扑检查

AreaOnAreaOverlayer

进行面与面的叠加(多边形的交点)操作

DonutHoleExtractor

将一个有洞的多边形分离为洞和环这两个组成部分。

SpikeRemover

通过在2D中消除尖锐来清理要素几何对象。

节点密度检查

Chopper

把输入要素分割为点、线或面。

线状地物宽度检查

CenterLineReplacer

用面要素的中轴、直骨架线来替代面要素。

相邻属性一致未合并检查

Intersector

对所有的输入要素、断裂线和多边形,在发生相交处计算交叉点并在这些位置创建节点。

属性

逻辑性检查

TestFilter

通过测试条件过滤要素到一个或多个输出端口。

AttributeCreator

将一个或多个属性添加到该特性要素,并可选地从常量、属性值和表达式派生出一个值。

2.2节点密度检查

根据国家下发的《县级数据库质检软件v1.0质量检查细则》中图形节点密度要求,平均节点密度不得小于1米,或大于50米。

虽然周长/节点数量可以得到平均节点密度,但是为了方便定位问题,除了检查平均节点密度,还将节点间距离小于0.01和大于100米的节点筛选出来进行核实。

2.3不规则图斑检查

根据国家下发的《县级数据库质检软件v1.0质量检查细则》中不规则图斑检查(面积/周长<0.2,并且有一个角度小于20)。

计算角度的时候笔者用了最原始的余弦定理,通过AttributeCreator转换器可以读取邻近元素来计算某一节点的角度。

应该还有更好更快的求角度的方法,希望能得到大佬的指点。

2.3 线状地物宽度

线状地物宽度在作业的过程中已经填写,这里使用计算值和填写值进行对比,筛选出差值过大的,人工核实。

①首先使用CenterLineReplacer提出骨架线;

②使用Intersector和PointOnLineOverlayer去掉悬挂线,得到中心线。

③计算平均宽度,计算与填写属性值的差值,距离差大于20%的提取出核实。

2.4相邻图斑属性一致未合并

使用Intersector即可,生成列表,对比列表中的属性,完全一致的即为相邻图斑未合并的。

2.5属性检查

参考质检规则,对图斑细化代码存在的合理性、关联性进行检查。

2.6小结

经过预处理和预质检,基本上可以满足提取外业核实图斑和下一步接边的要求,不会将错误积累到下一个工作流程中,提高了工作质量,防止返工。

四、接边检查

1.常见的接边错误

接边错误笔者自己分为两种即边界两边属性不一致,边界两边属性一致但图形不一致。(附图)

错误一、边界两边属性不一致

错误二、边界两边属性一致,但是节点不一致

2.检查方法

①使用LineOnAreaOverlayer先选出接边处的图斑;

②使用Intersector处理村界和图斑,根据压盖计数和列表属性判断接边两侧图斑属性是否相同,将属性不同的提取出来。

3.存在的问题

对于两侧图斑属性不同的,正常存在的图斑无法过滤掉。

五、工作量统计

1.设计思路

①作业员每天按照规定路径提交当日作业的数据库

②每天定时运行更新模板,将每日作业库中的修改部分分别更新至备份层和变化层。

2.目前的成效

目前只使用了一周左右,目前感觉在工作量统计方面统计更加直观,杜绝了瞒报虚报。但是对于图形变化的统计按照面积统计和节点统计正在试验使用哪种统计方式更为合理,希望有类型经验的读者能同我交流,共同完善。

在数据管理方面,除了作业员每日个人备份,也在数据库中生成每日的变化图斑,并以日期命名为层,在整个项目流程中每天的数据变化均有记录。同时每天对全县作业总库进行更新,方便给甲方提供各种统计信息,也可以通过每天的更新量结合质检反映的问题对项目整体进度进行估算,方便项目负责及时调整人员及工作重心。

六、结语

由于笔者没有参与试点镇数据建设,参与三调项目时间较短。可能还有缺漏与不足,希望读者给予指正。

相信在三调接下来的工作中,在FME的帮助下能更高效、更准确的完成三调工作。

最后感谢安图公司将FME带回中国,并且做了本地化及汉化的工作,极大的方便了英语渣的笔者使用。希望借此平台更好的提高自己的技术水平,交到志同道合的朋友。

2019 FME博客大赛 ——FME在三调工作中的应用相关推荐

  1. 2021FME博客大赛 —— FME在国土二调地类净面积计算中的应用

    作者:韦前 摘要:国土二调技术规程决定了国土二调数据库的结构,分成DLTB.XZDW和LXDW三个图层,也是为后期计算地类净面积埋下了"地雷",特别是在项目范围线与二调图斑产生分割 ...

  2. 2021FME博客大赛 —— FME在年度重要地理信息更新中的应用

    作者:刘善磊 摘要 本文针对2020年度重要基础性地理信息更新工作,以地理国情监测数据为参考资料,基于语义匹配和几何匹配等关键技术,利用FME分别设计了具有识别"增加"." ...

  3. 2019FME博客大赛——FME在城市规划中的应用初探 (基于图框图名图例制作、数据格式转换及SHP转CAD文件的思路)

    参赛单元:传统GIS数据处理 作者:王奇彪 单位:安徽中汇规划勘测设计研究院股份有限公司 一.概述 近些年来,随着我国省市县"多规合一"及空间规划的编制实施,规划编制技术日益成熟, ...

  4. 2020FME博客大赛——FME在数据整合中的应用

    作者:李权 单位:北京超图信息技术股份有限公司 一.项目背景 自2013年11月20日不动产统一登记制度正式实行以来,各地持续推进不动产存量数据整合工作,将现有的分散存放在国土.住建等部门的多源异构的 ...

  5. 2021FME博客大赛 —— FME与“快递小哥”的故事

    作者:黎贵明 一.摘要 基于FME读取地籍dwg数据,批量制作宗地图,辅助制作宗地信息二维码,批量将二维码贴入各自宗地图信息框内和总图宗地红线内. (关键字:FME.批量.宗地图.二维码) 二.任务背 ...

  6. 2014-2021年度博客大赛作品合集

    文内提供2014-2021年度全部博客大赛及模板大赛的pdf作品下载,文内链接将根据博客大赛举办的年限,持续更新. 一.2021年度博客大赛 链接:https://pan.baidu.com/s/1Q ...

  7. “FME 博客周年庆--IPAD欢乐送”活动结束通知

    原文发布时间:2011-05-23 10:55:32 我公司主办的"FME 博客周年庆--IPAD欢乐送"首期博文征集活动于2011年5月20日已圆满结束. 活动自举办以来得到广大 ...

  8. 2021FME博客大赛 —— 杭州城市西湖区活力评价

    作者:刘松 1.前言 1.1研究区简介 杭州是浙江省省会和经济.文化.科教中心,长江三角洲中心城市,重要的风景旅游城市,首批国家历史文化名城.杭州山水相依.湖城合璧,江.河.湖.海.溪五水共导,风景如 ...

  9. 关于51CTO博客大赛的感想

    我的参赛页面:http://2010blog.51cto.com/1849649 我的参赛博客:http://www.feiyan.info 首先感谢51CTO为广大IT人员提供了这样一个平台,让平时 ...

最新文章

  1. 字典生成_Python数据字典生成工具详解
  2. window如何将CMD以管理员身份添加到右键菜单?
  3. C#性能优化:延迟初始化LazyT
  4. MySQL性能优化知识:长连接、短连接、连接池
  5. Protocol Buffers的应用与分析
  6. pytorch1.4+tensorboard不显示graph计算图的问题
  7. Bzoj4556 [Tjoi2016Heoi2016]字符串
  8. 【转】JavaScript常用代码书写规范
  9. 报错:'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte
  10. centos mysql 二进制_CentOS 7.6 安装二进制Mysql
  11. ThinkPad T470P拆机清灰教程
  12. 聊聊实际使用的电源转化电路,分享一些不同场合下的转3.3V电路
  13. 控制系统matlab仿真,控制系统MATLAB仿真作业
  14. workbench应力应变曲线_ANSYS WORKBENCH后处理中各种应力结果的详细说明
  15. Cloud Solution Architect Certification 认证备考指南
  16. ecshop mysql 操作_ecshop数据库操作函数
  17. Java Swing制作超简单版打地鼠小游戏
  18. win10删除*某些设置由你的组织来管理
  19. 【机器学习的高等数学基础】导数的几何意义和物理意义、函数的可导性与连续性之间的关系、平面曲线的切线和法线、基本导数与微分表、微分中值定理,泰勒公式、弧微分、曲率、曲率半径、洛必达法则、渐近线的求法等
  20. 在python中创建一个具有特定大小的空列表

热门文章

  1. cad调了比例因子没反应_CAD的图幅比例要如何设定?掌握这些技巧,让你1秒完成操作...
  2. iconfont图片批量添加购物车
  3. 年轻人不讲武德,居然还搞不懂JVM?求你们来看阿里Java开发岗的招聘要求吧
  4. 《Linux-常见指令详解》
  5. 定时任务:Quartz 详解
  6. Github上365道Java高频面试复习题,助你吊打面试官
  7. Android 8.1 9.0 10.0 拨打接听电话默认开启免提
  8. 程序员必看!2019 年招聘排名 TOP 10 的技能!
  9. 知识变现必须破除的八个认知误区
  10. 惠普暗影精灵5 super 873-068rcn如何重装系统