转换器SherbendGeneralizer示例
原文发布时间:2016-11-24
翻译文章链接:https://knowledge.safe.com/articles/1283/sherbendgeneralizer-example.html
点击:示例模板下载
简介
SherbendGeneralizer是能够做到“智能”概化(generalization)的FME转换器。它能够保留原始要素的拓扑结构。
Sherbend算法的目标是,根据线要素弯曲部位的分析,减少线要素不必要的细节。Sher bend算法是一个基于约束条件的算法,它保留输入的点、线要素的拓扑结构。Sherbend算法通过直径参数(Diameter参数)选择弯曲部位,然后通过迭代概化线要素的弯曲部位。在解决线要素冲突时,可能会消除,减少,或合并弯曲部位。
概化线要素弯曲部位的策略如下:
1、 使用“Diameter”参数计算参考圆的面积
2、 对每条线,决定弯曲部位的位置
3、 对每个弯曲部位,计算它的周长。然后,构造一个有相同周长的圆。最后,弯曲部位的校正面积采用该圆75%的面积
4、 对每个弯曲部位,如果它的校正面积低于参考圆面积,并且满足拓扑约束条件,那么概化弯曲部位
5、 重复上述步骤,直到没有更多的弯曲部位需要概化
示例
例1:拓扑检查
通常,一个简单的示例比一堆解释性说明更直观。这就是我使用SherbendGeneralizer反复处理一个数据集,直到理解该转换器是如何工作的原因。
FME中已有的概化算法既未考虑要素间的相互关系,也未考虑对每个单独的要素可能造成的不好的改变。
下图分别是等高线和高程点在“旧”的概化转换器处理之前和之后的截屏。
“旧”转换器:
概化前:
通过Generalizer转换器概化后:
我们可以观察到,概化后的等高线至少有三种问题:
1、 一条等高线存在自相交
2、 高程值为437的高程点在转换前后,分别位于440等高线的不同两侧,导致等高线和高程点的位置关系出现错误
3、 等高线之间相交
转换器SherbendGeneralizer能够处理上述三个问题:
它能够控制:
1、 自相交
2、 线之间相交
3、 Sidedness,也就是,它确保没有改变线与点之间的位置关系。
SherbendGeneralizer转换器:
如果概化时产生了改变,该转换器会查看是否存在冲突。转换器的输出端口包含一个Conflicts端口,如果对该端口所示的弯曲部位做概化处理,那么,概化后的线会与选择的约束条件冲突。
转换器SherbendGeneralizer示例相关推荐
- Clipper转换器使用示例
原文发布时间:2017-12-29 10:40:09 原文地址: https://knowledge.safe.com/articles/23184/example-using-the-clipper ...
- 进制转换器java程序_Java实现复杂的进制转换器功能示例
本文实例讲述了Java实现复杂的进制转换器功能.分享给大家供大家参考,具体如下: 这是用java写的进制转换器,包括10.2.8.16进制之间共12种的相互转换.输入一个要转换的数之后,按提示选择所采 ...
- jpa 返回数据转换_如何使用JPA类型转换器加密数据
jpa 返回数据转换 几天前,我读了Bear Giles关于2012年使用JPA监听器进行数据库加密的有趣文章.他讨论了对加密解决方案的要求,并提供了JPA监听器的代码示例. 他的主要要求是: 提供不 ...
- flutter dio 示例
GIT HUB常常打不开,保存一份以方便随时查看. 示例 发起一个 GET 请求 : Response response; var dio = Dio(); response = await dio. ...
- 零中频接收机频率转换图_用网络分析仪测量 DC-DC 转换器的反馈环路特征
DC-DC 转换器的基本工作原理 首先,我们快速概括一下 DC-DC 转换器的基本工作原理.我们以一个简单的.采用电压控制模式的非隔离单相降压转换器为例. 图 1 的原理图和时序图显示了 DC-DC ...
- springboot自定义消息转换器HttpMessageConverter
在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换,底层这种灵活的消息转换机制就是利用HttpMessageCo ...
- XStream转换器: 处理xml节点中既有属性又有值
1.需处理的数据: <orderInfo orderName="酸奶" orderType="奶制品" orderPrice="5.00&quo ...
- 参数调整 新部署rac_开工的欲望 | AI Studio悄然上线新功能,用你的模型生成在线预测服务...
开工第一天,小伙伴们是不是还没有从过年的状态转换过来?今天给大家介绍一个AI Studio新功能,能让大家用自己训练好的模型,轻松生成在线预测服务,通过在线API调用,而且是免费的哦~ 大家是不是已经 ...
- Django URL
一.创建Django项目: 用命令行创建: 创建项目:在终端通过命令:django-admin startproject [项目名称] 即可创建,比如:django-admin startprojec ...
最新文章
- log4net 配置参数意思
- 独家 | NLP详细教程:手把手教你用ELMo模型提取文本特征(附代码论文)
- Servlet-监听器(ServletContext、Request、Session)
- C语言程序设计第三次作业——选择结构(1)
- Docker-compose配置Mysql,Redis,MongoDB
- linux四种集群是什么,lvs四种集群特点及使用场景
- JavaFX 2 GameTutorial第1部分
- java实现愤怒的小鸟游戏
- andriod studio 查看项目依赖_Intellij IDEA 中如何查看maven项目中所有jar包的依赖关系图...
- CoreData简介
- 【Day05】Html5 有哪些新特性?如何处理 Html5 新标签的浏览器兼容问题?如何区分 Html 和 Html5?
- Facebook再次发生全球性宕机
- qt designer 自定义插件找不到指定的模块_go与qt的新酒老瓶
- 关于云计算的讨论,一年就等这一回!
- Netty(3)Time protocol
- tinyxml读xml
- 数字电子技术基础(六):译码器、数据选择器
- 戴尔计算机没有硬盘驱动,如果Dell计算机无法从硬盘驱动器启动怎么办
- 利用EasyPub为Kindle制作mobi格式书籍
- NR 5G 无线接入网
热门文章
- Substrate 基础教程(Tutorials) -- 模拟网络 添加可信节点
- html语言需要dw吗,DW(HTML-基础知识点1)
- 【Pytorch】Pytorch深度学习实战教程:超分辨率重建AI与环境搭建
- 谷歌G1反抗iPhone
- vscode中用快捷键 Alt + Shift + F 格式化代码不生效的问题
- javascript开发微信小程序,怎么把手写稿子转换成word,如何快速把手稿转换为电子稿
- 把简单的 Postman,玩出花样?
- 中国联通MEC边缘云架构与部署实践
- 微信小程序实现蓝牙打印(图片、二维码、文字)
- 3D角色遮挡住UI的实现,关于Stencil Buffer,描边,以及其他