FME在三维方面的一点应用

写在前面

纪念我的九成岁月!是在九成测绘大把的时间,让我用FME做了一些酷酷的事情。今天偶尔翻开之前的笔记,发现其中一篇记录了FME在三维方面的应用。看着笔记与模板,我想了不少。当时的笔记写的天马行空,虽然不完美,但现在的我很难再写出同样的东西,我再也没有那么多的时间与精力了。我好怀念,可以晒着太阳睡一下午的时光!

现在打开模板与笔记,能做的只有对模板进行一些优化,而记录整体思路的笔记,我做不出大的改动。这说明了一个问题,虽然几年过去了,FME用的越来越溜,但在对待新生事物上,却再没有当初的激情!这像极了我高考前后的状态,从无所不能,到啥也不能!


下面是正文了!

FME怎么建模?

如果说FME无所不能,有点夸张了。但如果从另一个角度看待问题呢,如果我说C++ 无所不能、Python无所不能,是不是不同意的观点就稍微少一点?说起来,FME也可以当作是一种语言。只是这种语言封装程度比较高,社区也没那么活跃,但有一个让人无法拒绝的优势:图形化界面! ok!既然FME已经无所不能了(几乎),那拿来做个建模应该也是可以的吧。抱着这样的态度,我开始写了相关的模板。下面这是模板转换出来的一点数据:

贴图我只贴了红砖和红瓦,所以模型转出来看着有点那啥,各位多担待。

下面看看模板?

这里有一个自定义转换器,3D_operator,大部分的功能都是在这里面实现的,前面的pycaller只是随机的计算房屋高度与屋顶类型。 注: 数据来源: 建筑物底面:某德电子地图,庄河市市区范围; 贴图:某度搜索的红砖红瓦图片。

3D_operator

下面着重介绍一下这个转换器的功能,如下图所示:

大概可以分为三个方面,墙、屋顶、房檐!里面又有几个自定义转换器,分别是,direction、脊型_top_house、人字形_Top_house。

功能介绍

1、首先是计算四堵墙,给房屋分出东南西北面,当时考虑的是东南西北可能需要贴不同的图。比如:有可能南面是门,北面是窗。 说起这个转换器,不得不提当年刚学fme的时候,被贝贝的四至祸祸的不轻。当时每天没啥生产上的任务,想的就是怎么学技术,昊哥写了很多FME方面的博客,其中有一篇介绍了如何使用FME去求取地块的四至,我迷上了。后来也动手写了一个,可以简单的算出一个多边形的东南西北各条边,还不知天高地厚的发到了技术交流群

还好,当时没人拍砖!

这个四至提取的转换器,现在看来,除了思路是对的,其它的可以说是漏洞百出,我优化了好几天。 经过自定义求四至的转换器,下面就是给墙贴图了,为了简单(其实是懒),我就从网上找了个砖墙图片,按照长与高,计算了一下uv贴上去了。 这就是我贴的大砖墙面了:

2、再就是房顶,房顶当时想了两种,一种是人字形的顶一种是脊形(我不知道这种说法准确不),如下图:

生成方式也比较曲折,简单来讲就是计算出屋脊线,然后把线拉高,再构面,贴图; 3、房檐,与以上两部分相比,房檐的生成,是最简单的,计算一下边线,设置个参数缓冲一下,再拉上去就好了。

模板可以应用在哪里?

需要三维的地方,就是模板可以发挥作用的地方!

本文分享自微信公众号 - 数据处理与分析(Qing_master)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励