FME2014的特点:排列前10的更新转换器(二)

原文发布时间:2014-02-13

翻译:小新

翻译文章地址:http://blog.safe.com/2014/01/fmeevangelist122/

接上文:FME2014的特点:排列前10的更新转换器(一)


现在进入排列前五的更新。排列第五的是MapnikRasterizer这是一个新的转换器,我肯定它将是我最喜欢的转换器之一,一旦我有机会使用到它。

这个转换器是矢量数据创建漂亮地图过程中必不可少的工具。它是一个栅格化转换器,包含了大量用于管理输出符号的参数。利用这个转换器,我可以创建线条样式、线条图案、点符号、多边形填充、文本/标注以及其他更多。我还可以选择一个图像作为输出结果的底图。

相比之前我通过Mapnik/Python hack 创建的样式,它有了很大的改善。因为Mapnik的插件已全部植入到FME中,不再需要其他脚本或手动映射过程。我想通过展示我的同事Dmitri的两个输出结果更能说明问题:

        

        

 Dmitri告诉我,现在你可以使用比以往少得多的转换器来得到这样的输出。其中一个示例中,他现在使用15个转换器来替换以前的48个转换器。因此这个新转换器很值得研究。


FME2014可以说是点云转换器的一个复兴;之前出现了一个真正的黑暗时代。这个版本中有8个新的点云转换器。

首先介绍的两个转换器:PointCloudExtractorPointCloudReplacer,这两个转换器连载点云数据的方式与GeometryExtractor/Replacer对矢量以及RasterExtractor/Replacer对栅格相同。因此现在你可以把点云数据写入到blob属性中,然后再读取它,并把它转换为正确的几何形状。

其他的六个新转换器都是对点云数据的组件进行操作。一个组件是点云中一个点的特定值,例如X/Y/Z坐标、回波强度(return intensity)、色彩(color)、分类(classification)以及元数据(例如日期/时间)。因此现在我们有一系列的转换器来处理这些组件;添加、删除、复制、保留、改变数据类型、重命名,就像你操作属性那样。

这里利用PointCloudComponentRemover移除一些不使用的组件:

        

       

 我理解FME2014的重大改变是:具备拥有自定义组件的能力(不是那些固定的或预先定义的组件)。所以你可以使用这些转换器增加自定义组件、重命名已有组件。虽然我使用点云不多,但是我看出这是一个比较大的问题。

其他的关于已有点云转换器的更新:简而言之,ScalerOffsetter升级到可以处理点云要素,因此现在你可以像处理矢量和栅格数据集那样对点云数据进行缩放和偏移。



我们都知道近来几乎所有的
GIS事情都与网络服务(web services)有关,在Safe同样有很多网络爱好者;因此FME2014中有新的与网络相关的转换器并不奇怪。

S3UploaderS3Downloader的功能非常简单,将数据上传亚马逊简易存储服务器中,或下载数据。这样你可以上传数据并与其他用户分享,或者下载其他用户分享给你的数据。更多信息请访问FMEpedia上的这个页面。现在我们有很多关于亚马逊的整合,包括SNSSenderSQSSender

FME2014中其他新的网络转换器是WebSocketSenderWebsocketReceiverWeb sockets比一个简单的存储设备高级一点。它意味着通过持久连接在服务器和客户端质检进行双向通信;例如,在客户端和服务器之间打开了一个连接,一些消息就可以在它们之间来回传送。

你可以看看维基百科中关于WebSockets的内容,应该能找到一些普遍的例子。对于空间数据来说,我觉得车辆轨迹是一个典型应用,而且来回传递的数据相对较小。车辆上的跟踪设备会建立于websocket服务器之间的连接,并通过该连接传递位置数据,就像FME Server Websockets练习中的例子一样。

        

在这个过程中融入FME,会使得你的Websockets能力更加多样化。因为FME可以任何你需要的空间数据过滤和处理,并实现与Websockets服务器之间的通信。

例如,FMEDesktopServer)接收一个车辆(或者飞机)的位置,并做一个空间叠加分析来判断它在哪里以及谁对它负责(可能是一个航空管制问题)。然后通过WebSocketSender发送一条信息给管理该区域的责任人所属的服务器。当飞机离开这个区域时,我们能够做出判断并关闭连接。希望诸如此类的事情是有意义的——我现在只是基于我对该技术的了解做一些随意的联想。这也是我希望再Safe工作的原因——我们试图保持领先,这样当类似于WebSockets的事情变得对你很重要时,我们已经支持它了。


我现在还能清楚回想起大学时学习GIS的一个例子:土地利用分析。我们通过蔬菜类型、气候和坡度评估一个区域土地的不同用途。在FME重复这个过程是非常难的,因为最好是使用栅格网格数据进行计算,但是FME没有可以对栅格DEM中的单元格计算坡度的方法。

现在起这将不再是个问题。在FME2014中有可以对单个栅格单元计算坡度或者坡度方向的转换器:ReasterSlopeCalculatorRasterAspectCalculator


有两种算法可供选择,你还可以选择输出坡度的计量单位,以度计算或百分比计算:


我把这个更新放到前面是因为它增加了一些你之前可能不会首先想到的可能性。除了我提到的经典的土地利用例子外,我还见过一些关于计算光照度(用来评估太阳能发电)的项目,我建议现在你可以使用FME来完成这个事情。我还希望你可以把它用到除了DEM之外的数据中;例如你可以把它用到雨量栅格数据集上,查看雨量的分布情况(这是“坡度”则表示瞬息万变的雨量)。还可以考虑其他的一些事情。


FeatureMerger是我们最受欢迎的转换器之一,我写的关于它的文章(什么时候使用它)也是我最受欢迎的文章之一。

FME2013-SP2中,FeatureMerger已经做了一次完整的升级,所以我建议,如果你没有使用过FME2013-SP2以后的版本,那么这是你需要注意的一个地方。当参数界面升级到可以处理多个关键字时,我写了一篇关于它的文章。不过在FME2014中,仍然有一系列新的功能。

        

Suppliers First:这个选项的作用与Clipper中的Clippers First参数类似。如果所有的要素顺序正确,那么这个参数可以用来把基于组变为基于要素,这样做的好处是带来性能的极大提高。

Comparison Mode: 这个新选项可以让你选择requestorsupplier关键字段的匹配模式。例如,在旧的FeatureMerger中,值“10.0”和“10”不能进行匹配,因为匹配方式是基于字符串进行的。但是现在你可以把属性作为数字而不是字符串来进行比较,这样“10.0”就可以和“10”匹配上。

Supplier Prefix: 当来自supplier的属性合并到requestor时,当属性名称冲突时会发生什么呢。例如,supplierrequestor具有一个名称相同的属性,但是属性值不同。通过这个新参数,你可以为supplier的所有属性增加一个前缀,这样再也不用担心属性同名的问题,所有属性将以不同的名称得以保留。












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值