国土变更调查拓扑错误自动化修复工具的研究
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
-
目录
一、拓扑错误的形成原因
1.边界不一致
2.不规则图形
3.尖锐角
4.局部狭长
5.细小碎面
6.更新层相互重叠
二、修复成果展示
1.边界不一致
2.不规则图形
3.尖锐角
4.局部狭长
5.细小碎面
三、修复率统计
四、如何使用
总结
前言
随着国土变更调查,在土地管理中的重要程度越来越高,对其数据的要求也越来越高。数据能通过质检软件,作为年度国土变更调查每年能否将数据汇交至部的硬性要求,每年从事该行业的人会耗费大量的精力和时间在质检错误修改上,而修改的重点主要在拓扑错误上面,往往一个面积大一点的区县,初次建库的拓扑错误量都非常高,有些甚至是好几万个错误,虽然市面上目前有一些批量修复工具,但是整体效果都不尽人意,修复率只能到百分之60左右。针对这一行业痛点,在深入了解变更调查的技术规范和建库流程后,终于开发出了修复率能稳定在百分之90以上的修复工具。
提示:以下是本篇文章正文内容,下面案例可供参考
一、拓扑错误的形成原因
1.边界不一致
边界不一致主要是地类图斑更新层和对应的更新过程层的边界不一致,以及更新过程层和去年的基础库边界不一致。这个错误的产生原因大部分是因为建库软件容差系统和arcgis的不一样导致的,因为变更图斑多为从举证平台下载而来,因为平台采用的是4490经纬度坐标系,因为坐标保留小数位的问题,在转换为对应的高斯2000横轴墨脱卡坐标系的时候,会出现细微误差,一些建库软件因为容差问题可能会认为该图斑和对应的基础库边界是一致的,于是就导致了该问题。就如下图所示:


左边是DLTBGX层,右边是DLTB,明显看到基础库是没有拓扑错误的,但是建库软件因为容差原因,将这个错误忽略了,就导致DLTBGX层出现了边界不一致的情况。
2.不规则图形
不规则图形的主要表现特征是图形过于狭长,而判断面几何要素是否是狭长,一般有如下几种方法:
周长与面积比(P/A 指数):这个指标是多边形的周长与其面积之比。通常来说,紧凑的多边形具有较小的周长与面积比,而非紧凑的多边形则可能有较大的比值。
Boyce-Clark半径形状指数:该指数是通过计算多边形内切圆的半径与外接圆的半径之比来度量多边形的形状规则度。规则的多边形会有较小的Boyce-Clark半径形状指数。
等周指数(Isoperimetric Quotient):这是通过计算多边形的实际面积与等周多边形(相同周长的正多边形)的面积之比来度量紧凑度。规则的多边形具有较大的等周指数。
方向性(Aspect Ratio):方向性是指多边形的主要轴与次要轴之比。一个正方形的方向性为1,而长条形的方向性较大。规则的多边形通常有较小的方向性。
Reock 紧凑度指数:Reock指数是通过计算多边形内切圆的半径与外接圆的半径之比来度量多边形的紧凑度。
Feret Diameter 指数:Feret Diameter是指多边形在不同方向上的最大宽度与最小宽度之比,用于度量多边形的细长程度。
形状指数(Shape Index):形状指数是通过计算多边形边缘曲率的平均值来度量多边形的形状规则度
这里很难推测出质检软件采用的那种方法进行的判断,但是如果我是开发,从性能,综合稳定性来判定的话,我大概率会采用周长面积比进行判断,形成这个错误的原因也很简单,大部分都是因为变更图斑和基础库裁剪后,因为边界上的细缝导致的。

3.尖锐角
尖锐角的形成原因的多种多样的,有本身图形就存在尖锐角,也有因为平台下载图斑边界和基础库不一致然后叠加造成的。但是尖锐角的查找是相对非常简单的,只需要遍历每个图形,并计算每个节点的角度,并找出角度小于10度的或者大于350度的部分即可。
4.局部狭长
局部狭长的产生原因主要是在变更图斑和基础库相交的时候,两个相邻图斑,一个和基础库贴合,另外一个和基础库边界存在缝隙,在相交后就产生了局部狭长。如下图所示,A地块和基础库完美贴合,B地块和基础库存在缝隙,就产生了局部狭长

局部狭长的检查方式有很多,比如将图形向内buff对比前后几何的一致性,也有建立三角网TIN并判断是否存在长宽比超限的三角形等方法,这里很难推断出质检软件使用的那种,但是这个并不重要,只需要搞懂产生原因即可写出针对性的算法进行修复。
5.细小碎面
这个算是最好理解的拓扑错误,产生原因也很多,只要面积小于30平米的多边形就会被质检软件检测出碎片多边形,需要值得注意的是,很多狭长面、尖锐角、不规则图形本身也是碎片多边形。
6.更新层相互重叠
这个质检错误很难出现,目前大部分的建库软件都会规避这个问题, 修复方式也相对简单,找出重叠部分,再将重叠部分合并到空间关系中共边占比最多的面即可。
二、修复成果展示
展示前做个统一说明,所有的修复都考虑了村级行政区和203城镇村用地,保证修复的准确性
1.边界不一致
修复前 修复后


2.不规则图形
修复前

修复后

3.尖锐角
修复前

修复后

4.局部狭长
修复前

修复后

5.细小碎面
修复前

修复后

三、修复率统计
目前已经测试过三个区县单位的成果修复情况,直接上统计图

可以看到,不管是面积较大的区县还是面积较少的区县,修复率都能稳定百分之90以上,并且在使用其他市面上的修复工具后,依旧还能有百分之90以上的修复成功率。
四、如何使用
使用方式也很简单,无需安装任何插件,软件。登录网站即可使用修复工具。只需要准备好成果包和质检错误表即可。

总结
对该工具感兴趣的伙伴,可以后台联系。告别人海战术、告别通宵加班、科技改变生产!
相关文章:
国土变更调查拓扑错误自动化修复工具的研究
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、拓扑错误的形成原因 1.边界不一致 2.不规则图形 3.尖锐角 4.局部狭长 5.细小碎面 6.更新层相互重叠 二、修复成果展示 1.边界不一致 2.不规则图形 3.尖锐角 4.局部狭…...
深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录
深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录 认识RKNN Toolkit2 工程文件学习路线: Anaconda Miniconda安装.condarc 文件配置镜像源自定义conda虚拟环境路径创建Conda虚拟环境 本地训练环境本地转换环境安装 RKNN-Toolkit2:添加 lin…...
Linux应用编程(C语言编译过程)
目录 1. 举例 2.预处理 2.1 预处理命令 2.2 .i文件内容解读 3.编译 4.汇编 5.链接 5.1 链接方式 5.1.1 静态链接 5.1.2 动态链接 5.1.3 混合链接 1. 举例 Linux的C语言开发,一般选择GCC工具链进行编译,通过下面的例子来演示GCC如何使用&#…...
ssm实战项目──哈米音乐(二)
目录 1、流派搜索与分页 2、流派的添加 3、流派的修改 4、流派的删除 接上篇:ssm实战项目──哈米音乐(一),我们完成了项目的整体搭建,接下来进行后台模块的开发。 首先是流派模块: 在该模块中采用分…...
Python 获取微博用户信息及作品(完整版)
在当今的社交媒体时代,微博作为一个热门的社交平台,蕴含着海量的用户信息和丰富多样的内容。今天,我将带大家深入了解一段 Python 代码,它能够帮助我们获取微博用户的基本信息以及下载其微博中的相关素材,比如图片等。…...
Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
使用Flink编写代码,步骤非常固定,大概分为以下几步,只要牢牢抓住步骤,基本轻松拿下: 1. env-准备环境 2. source-加载数据 3. transformation-数据处理转换 4. sink-数据输出 5. execute-执行 DataStream API开发 //n…...
拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM
拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,也称为拉格朗日乘数法。 例如之前博文写的2月7日 SVM&线性回归&逻辑回归在支持向量机(SVM)中,为了…...
鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店
始于杭研所 在2024年7月,我踏上了一段全新的旅程,前往风景如画的杭州,参加华为杭研所举办的鲲鹏&昇腾集训营。这是一个专门为开发者设计的培训项目,中途深入学习HarmonyOS相关技术。对于我这样一个对技术充满热情的学生来说&…...
c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
老规矩,点赞评论收藏关注!!! 目录 线性表 其特点是: 算法实现: 运行结果展示 链表 插入元素: 删除元素: 算法实现 运行结果 线性表是由n个数据元素组成的有限序列ÿ…...
MySQL底层概述—1.InnoDB内存结构
大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.InnoDB引擎架构 (1)InnoDB引擎架构图 (2)InnoDB内存结构 (1)InnoDB引擎架构图 下面是InnoDB引擎架构图,主要分为内存结构和磁…...
MySQL:DATEDIFF()计算两个日期天数之差
题目需求: 计算出比前一天温度要高的日期。 select a.id from weather a, weather b where a.temperature > b.temperature and datediff(a.recordDate, b.recordDate) 1; DATEDIFF(date1, date2)函数用于计算两个日期之间的天数差。函数返回date1和date2之…...
Linux 编译Ubuntu24内核
参考来源: 编译并更新内核:https://www.cnblogs.com/smlile-you-me/p/18248433 编译报错–sub-make: https://forum.linuxfoundation.org/discussion/865005/facing-error-in-building-the-kernel 1.下载源码,执行如下命令,会在/usr/src下多…...
Android系统中init进程、zygote进程和SystemServer进程简单学习总结
Android系统中,init、zygote和SystemServer进程是系统启动和运行的关键进程,它们之间有着密切的关系,本文针对这三个进程的学习做一个简单汇总,方便后续查询。 1、init进程 Android用户空间执行的第一个程序就是它,可…...
Flask 基于wsgi源码启动流程
1. 点击 __call__ 进入到源码 2. 找到 __call__ 方法 return 执行的是 wsgi方法 3. 点击 wsgi 方法 进到 wsgi return 执行的是 response 方法 4. 点击response 方法 进到 full_dispatch_request 5. full_dispatch_request 执行finalize_request 方法 6. finalize_request …...
leetcode代码 50道答案
简单难度:两数之和 def twoSum(nums, target): for i in range(len(nums)): for j in range(i 1, len(nums)): if nums[i] nums[j] target: return [i, j] return [] 简单难度:有效的括号 def isVa…...
Centos-stream 9,10 add repo
Centos-stream repo前言 Centos-stream 9,10更换在线阿里云创建一键更换repo 自动化脚本 华为centos-stream 源 , 阿里云centos-stream 源 华为epel 源 , 阿里云epel 源vim /centos9_10_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.h...
【隐私计算大模型】联邦深度学习之拆分学习Split learning原理及安全风险、应对措施以及在大模型联合训练中的应用案例
Tips:在两方场景下,设计的安全算法,如果存在信息不对等性,那么信息获得更多的一方可以有概率对另一方实施安全性攻击。 1. 拆分学习原理 本文介绍了一种适用于隐私计算场景的深度学习实现方案——拆分学习,又称分割…...
DataWhale—PumpkinBook(TASK05决策树)
课程开源地址及相关视频链接:(当然这里也希望大家支持一下正版西瓜书和南瓜书图书,支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿) Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》(南瓜…...
elasticsearch7.10.2集群部署带认证
安装elasticsearch rpm包安装 下载地址 https://mirrors.aliyun.com/elasticstack/7.x/yum/7.10.2/ 生成证书 #1.生成CA证书 # 生成CA证书,执行命令后,系统还会提示你输入密码,可以直接留空 cd /usr/share/elasticsearch/bin ./elasticsearch-certutil ca#会在/usr/share/el…...
Java基础-I/O流
(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 字节流 定义 说明 InputStream与OutputStream示意图 说明 InputStream的常用方法 说明 OutputStrea…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
