Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >作品分享-FME作品集

作品分享-FME作品集

作者头像
数据处理与分析
发布于 2022-11-18 07:07:31
发布于 2022-11-18 07:07:31
1.6K0
举报

内容简介

今天分享的内容,是收到的FME作品集。相对上一篇推送的用R实现的方式,用FME实现的更多。 下面我将按照:整体思路、关键转换器的方式对各个作品进行逐一解读。 根据作者的意愿与我之前被白嫖的经历,本篇推送只分享思路,不分享具体的实现模板。

点是空间中只有位置,没有大小的图形 线是由点形成的图形,只具有位置和长度,没有宽度 面是由线围合而成的图形

作品集

总的来说,使用三角网思路来查找缝隙的作品比较多,有四个(加油_💯琦、傻狗、鹦鹉拔牙、以及我);使用缓冲区思路实现的有一个(凡尘);调用QGIS实现的有一个(悟空)。 下面对各个作品进行详细解读。

加油_💯琦

整体思路

1、作者首先将待检查的面进行编号,赋予每个面一个唯一的ID,然后将面转成三角形; 2、然后通过空间分析的方式将三角形的边分成两部分:原面边线一致的,位于原来面内部的; 3、通过设置的值域(宽度小于60米),找出符合条件的内部边; 4、使用步骤三中的内部边,筛选出与之相邻的边(为后续的构面使用); 5、构面,并将相邻的小面融合在一起; 6、用空间裁切的方式,区分出狭长面和大面部分。

重点转换器

作者使用了三个SpatialFilter转换器,这几个转换器的参数设置有两种,一种是如下图所示的包含:

作者的第2步,使用如上图所示的参数将三角形的边分成了两部分。

上图的红色和水蓝色,是分别从转换器的两个端口输出的数据。需要知道,当线与面的边线重合的时候,那不叫包含,只能叫相交。

作者的另一种设置是相交

作者的第3步,使用空间相交的方式,过滤出了构成小面所需要的边。 这几个SpatialFilter转换器的使用,筛选出了狭长面相关的边,通过后续的构面处理,形成了狭长面,思路非常清晰,作品也很精彩,值得学习、借鉴。

运行时间

在我的笔记本上,运行时间0.5s

运行结果

努力的悟空

整体思路

从整体上来看,悟空这个思路复杂了不少,用的转换器也比较多。他将寻找分割线的计算,放到了Qgis中来计算。不过 1、计算面积、编号; 2、使用Qgis计算分割线; 3、过滤计算后的分割线,保留需要的部分; 4、把所有线放在一起打断、构面; 5、计算小面面积,并计算占比进行过滤; 6、使用面进行裁剪,分出大小面。

重点转换器

这位作者的重点转换器,是在QGIS里的这些计算,通过QGIS的计算,取出了分割线,后续通过构面、计算、裁切实现了狭长面的寻找

运行时间

在我的笔记本上,运行时间1.1s

运行结果

凡尘

首先,凡尘这个排版就很清爽,一看就是个精致的人,非常棒!

整体思路

1、将面打断为线段; 2、使用两次缓冲,提取出面主体部分; 3、使用空间计算,筛选出狭长部分的边线; 4、将边线碎线连接成长线段; 5、构面; 6、裁切并输出。

重点转换器

两个缓冲转换器的使用,非常精妙地去除了面的狭长部分。又用三个空间筛选,找出了狭长部分的边线。后续的捕捉,将开口的边线封闭起来,以便后续裁切。

运行时间

在我的笔记本上,耗时0.7秒

运行结果

傻狗

整体思路

作者也是使用三角网的方式来完成狭长面查找的,整体也比较清爽,大致思路如下: 1、分别将面拆分为三角面和线段; 2、将三角边拆分为线段,并按照线段的长度过滤出符合条件的边; 3、将边连接起来; 4、构面,并按照面积大小进行过滤; 5、融合小面,并对原始面进行裁切,输出大小面。

重点转换器

作者这里生成三角网用的是chopper,节点个数设置为4(鹦鹉拔牙也用的这种方式)

按照这样的方式打断之后,面就变成了三角面。

这跟Triangulator转换器的结果是一致的,都可以完成对大面的三角剖分。

运行时间

在我的机器上,运行时间0.5秒

运行结果

鹦鹉拔牙

酒神不愧为神,除了三角网,基本就没用啥空间分析类的转换器,跟其他作品思路完全不一致,真棒!

整体思路

1、分别按照打断面为线段和三角形; 2、计算三角形边长,并根据边长进行过滤; 3、构面; 4、计算面积,并统计面的平均数; 5、通过面积平均数,进行过滤; 6、将碎面融合输出,融合后的面,即为狭长面。

重点转换器

酒神这里统计了每个小面的面积,并计算了平均数,后面又根据平均数,区分出了狭长面,非常精彩!

运行时间
运行结果

我自己的

整体思路

1、将面剖分为三角形; 2、过滤出短边和内部边,和外边线; 3、根据长度过滤内部边; 4、将外部边、内部边连成长边; 5、计算边长度,并构面; 6、根据构面的每个边的边长,区分出大小面; 7、融合小面,并输出,输出的面,即为狭长面。

重点转换器

在这个转换器,保留了构面的每个边的边长,在后续通过计算面的最长部分边,来区分大小面。

运行时间

在我的机器上,运行时间0.5秒

运行结果

总结

通过这次作品征集,我认识了一些新朋友。也从这些作者的思路中,学到了新知识。希望上面作者分享的思路,也能给各位读者一些启发。需要注意的是,这次征集的作品,都是针对样例数据(如图所示的几个面)的解决方案。在更换数据源的时候,上述方案可能会找得到狭长面,也可能找不到。

我希望以后的作品征集,能有更多的作者参与进来,我们一起来交流学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python利用海伦公式求三角形的面积
从小学我们都知道,三角形的面积是底乘以高除以2。那么已知任意一个三角形的三条边,如何能够求出三角形的面积呢?这里我们用到了海伦公式。
用户7886150
2021/01/27
2.9K0
Python 分形算法__代码里开出来的数学之花
分形几何是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学。
一枚大果壳
2022/08/23
1.4K0
Python 分形算法__代码里开出来的数学之花
重新网格化(Remesh)
Remesh并没有一个严格的定义,简单的讲,Remesh就是从一个输入网格生成另一个网格,并且满足一定的要求。根据网格改动大小,可以分为这么几类:
NT4.4
2019/10/21
3.7K0
重新网格化(Remesh)
图形学入门(二):光栅化
光栅化(Rasterize)就是将一些矢量形状转换为位图(Raster Image)形式。经过这样的变换后,这些形状才可以在屏幕上进行显示,也可以被打印机打印出来。
zhiruili
2021/08/10
4.3K0
图形学入门(二):光栅化
3D Mesh的体积计算原理及实现代码
计算Mesh网格的体积是一个相对简单和众所周知的问题。在这个教程中我们将介绍计算Mesh网格对象体积的一般思路、数学依据,给出JavaScript实现代码,并对大量重复对象的体积计算给出优化算法。
用户5687508
2021/07/14
3.4K0
3D Mesh的体积计算原理及实现代码
知乎热议:如何看待人教版教材用爱因斯坦相对论证明勾股定理?
课本中写到爱因斯坦用相对论中的质能方程论证勾股定理,证明发表,震惊国际数学界,德国著名数学刊物「 Mathematische Annalen」 因此聘请爱因斯坦去做了多年主编。
新智元
2020/06/29
1.1K0
知乎热议:如何看待人教版教材用爱因斯坦相对论证明勾股定理?
通过Mesh投影来实现贴花系统
在做FPS之类的游戏中,如果枪打到了墙角,并不能简单放置一来弹孔面片了事。而是要像一张贴纸一样,完全与墙角贴合。这时就需要去实现一个贴花系统来达到这种效果。
重归混沌
2020/04/26
1.1K0
三角形的重点、垂心、内心
三角形的重点、垂心、内心是三角形的重要几何特性,它们在数学、几何学、以及实际应用中都有着重要的作用。下面我将分别介绍这三个点的起源、定义、引伸义、作用和使用场景。
jack.yang
2025/04/05
2860
PhysX4.1 Capsule-Heightfield地形碰撞检测源码分析
PhysX4.1的Capsule-Heightfield大致代码结构和Sphere-Heightfield差不多,都是遍历包围盒内的三角形,然后用Capsule和每个三角形做检测,不熟悉的读者可以看我的前一篇文章,这篇文章可能会更偏数学思路上的导读而非代码结构一点
Bairuo
2022/11/18
5140
PhysX4.1 Capsule-Heightfield地形碰撞检测源码分析
判断二维平面一个点是否在三角形内
给定二维平面三个点 A(x_1, y_1), B(x_2, y_2), C(x_3, y_3) 组成一个三角形,给定该平面内一点 P(x,y),如何快速判断 P 在 \Delta ABC 内部、边上、还是外部?
为为为什么
2024/07/17
2230
判断二维平面一个点是否在三角形内
不可错过的欧几里得几何:探索数学世界的奇迹应用
从古至今,数学一直是科学、技术和工程的基础,同时也是解决问题和探索未知的有力工具。数学的应用涵盖了自然科学、社会科学、医学、经济学、工程学等各个领域。在现代社会,数学已经成为无法替代的核心学科之一,在科研、技术创新和产业发展中发挥着不可替代的作用。
Lion 莱恩呀
2025/05/14
640
不可错过的欧几里得几何:探索数学世界的奇迹应用
光怪陆离的世界之Delaunay三角剖分和Voronoi图
缘起 封面图是不是很酷炫? 该图的核心算法就是 Delaunay三角剖分. 这种低多边形的成像效果在现代游戏设计中越来越被喜欢,其中的低多边形都是由三角形组成的。于是我们来学习一下. 分析 首先,先来
ACM算法日常
2020/09/18
4.4K0
如何用 canvas 画出分形图
分形是一门以非规则几何形态为研究对象的几何学,由曼德勃 罗(B.B.Mandelbrot)等人创立并命名。
ConardLi
2021/09/29
2.1K0
如何用 canvas 画出分形图
Python计算三角形的面积
在学习中我们可以发现关于三角形面积的计算经常广泛运用到各种实际问题中,而本文将要针对如何用python计算三角形的面积展开探讨。
算法与编程之美
2024/06/18
1580
Python计算三角形的面积
《天才引导的历程:数学中的伟大定理》从月牙定理看古希腊数学的奇妙突破
在数学的浩瀚星空中,希波克拉底月牙面积定理宛如一颗独特而耀眼的星辰,散发着迷人的光芒。它不仅是古希腊数学智慧的杰出结晶,更是人类数学发展历程中的一座重要里程碑。
空白诗
2025/02/19
2030
《天才引导的历程:数学中的伟大定理》从月牙定理看古希腊数学的奇妙突破
西电OJ题解-91(C语言):求三角形面积
本专栏为西安电子科技大学C语言课程题库的题解,题目及其部分解题思路由好兄弟梁忠鑫提供,学长在此只是修改完善。请各位支持原创,目前仅在CSDN发布。
不温卜火
2020/12/21
1.8K0
西电OJ题解-91(C语言):求三角形面积
C语言实例之求三角形面积、解一元二次方程
输入三个数分别代表三角形的三个边长,运用三角形的性质:任意两边之和大于第三边,判断三边是否可以构成一个三角形,若能构成三角形,则可求出该三角形的面积。
程序员小顺
2021/10/13
1K0
python小练习
1.python一行代码实现1+2+3+.....+100的和 分析:求和用sum函数 代码展示: print(sum(range(0,101))) 执行结果: 5050 2.python实现九九乘法表 分析:利用for循环 代码展示: for i in range(1, 10): for j in range(1, i+1): print('{}x{}={}\t'.format(j, i, i*j), end='') print() 执行结果: 1x1=1 1x2=2
织幻妖
2021/03/02
7620
python小练习
即将开源STD:用于3D位置识别的稳定三角形描述子
文章:STD: Stable Triangle Descriptor for 3D place recognition
点云PCL博主
2022/12/27
2K0
即将开源STD:用于3D位置识别的稳定三角形描述子
使用 SVG 和 JS 创建一个由星形变心形的动画
序言:首先,这是一篇学习 SVG 及 JS 动画不可多得的优秀文章。我非常喜欢 Ana Tudor 写的教程。在她的教程中有大量使用 SVG 制作的图解以及实时交互 DEMO,可以说教程的所有细枝末节都可以成为学习 SVG 以及 JS 画图的资料。另一方面,这篇教程也非常枯燥,因为教程的主要篇幅是关于几何图形的数学计算,不过上过中学的人都能理解。全篇翻译完,我觉得我几乎重新温习了一遍中学的几何知识,顺便学了点英语词汇。最后还要感叹一下,想要灵活运用 SVG 画图,深厚的数学功底是不可或缺的,同时还要有敏锐
叙帝利
2018/03/28
4.9K0
使用 SVG 和 JS 创建一个由星形变心形的动画
推荐阅读
相关推荐
python利用海伦公式求三角形的面积
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档