主题中的问题:“图像光栅化器” https://knowledge.亚搏在线safe.com/questions/topics/single/604.html网站 “图像光栅化器”主题的最新问题 PDF到geotiff https://knowledge.亚搏在线safe.com/questions/77859/pdf-to-geotiff.html网站

你好,

我有一个多个PDF文件,其中包含自己的图像。图像是向量和稍后在Acrobat Reader中添加的一些更多数据的组合。图像旁边有注释,我需要裁剪图像,删除注释,然后镶嵌这些多个PDF。
在FME中可以完成吗?我试过刺槐,但没用。也,我已经尝试过裁剪器和图像光栅化器,但是结果很糟糕,因为PDF中的层不是很好。它扰乱了层的顺序,我不知道如何保持它,因为它是最重要的事情之一。

这是它在PDF中的外观,下面是它在剪辑器和图像光栅器中的外观。

我试过暴露fme_fill_颜色的属性,但它不会改变任何东西。
希望我能得到一些提示。提前谢谢!

德扬

光栅 PDF 图像光栅化器 结婚,2018年9月5日13:37:43格林威治标准时间 马里奥德帕卢布
基于某些数据的成像光栅化器的地面范围? https://knowledge.亚搏在线safe.com/questions/63994/imagerasterizers-ground-extents-based-on-some-data.html

你好,我需要基于dwg层边界框之一设置ImageRasterizer的地面范围!有可能吗?请告诉我!对于我来说,决定FME是否对我们有用是一个交易破坏者。

图像光栅化器 程度 范围 结婚,2018年2月14日格林威治标准时间14:48:44 经纬仪3
将矢量和图像写入PDF https://knowledge.亚搏在线safe.com/questions/62160/writing-vector-and-image-to-pdf.html

希望在PDF文件中写入一个带有光栅图像的多边形。它们将是两个视图,一个更近的视图,第二个是车费视图

任何建议

图像光栅化器 正在写入光栅 FRI,2018年1月19日格林尼治标准时间19:30:19 鲍彻
我有一个需要转换为JPG格式的形状文件。有人能帮我吗? https://knowledge.亚搏在线safe.com/questions/48710/i-have-a-shapefile-that-i-need-to-convert-to-jpg-c.html

我有一个需要转换为JPG格式的形状文件。形状文件有一个值范围为90到130的属性。我需要根据以下条件为JPG中的这些属性提供不同的颜色

90到100

100至110

110至130

我尝试使用图像光栅,它显示“此格式不能支持超过3个波段。请删除多余的带子,然后重试“

我刚接触过FME,所以请解释一下,即使这是个小问题。

Shape文件 JPG格式 图像光栅化器 结婚,2017年7月26日格林尼治标准时间15:28:32 1991年
图像光栅与图像光栅 https://knowledge.亚搏在线safe.com/questions/29338/imagerasterizer-vs-mapnikrasterizer.html

不是一个问题,而是一个我想和你分享的提示。最近,我用MapnikRasterizer替换了一些图像光栅变压器,从而在复杂的工作空间中获得了相当大的性能提升。除了过程中的一些其他调整,我还将FME云的处理时间缩短到了7分钟,最初是14分钟。

简而言之:如果您有一个使用图像光栅化器的工作区,并且需要很多时间,试试看地图扫描器

马普尼克光栅 图像光栅化器 清华大学,2016年6月2日08:33:27格林尼治标准时间 红色地理
将矢量数据转换为光栅 https://knowledge.亚搏在线safe.com/articles/1099/converting-vector-data-to-graster.html网站

介绍

有很多方法可以使用FME来转换矢量数据(点,线,区域)转换为光栅数据。这个例子集中在三个变压器上,这个图像光栅化器,请这个数字放大器以及矢量叠加器.

下载

第1部分:图像光栅化器

图像光栅化器-begin.fmwt

图像光栅化器-完成.fmwt

第2部分:数字放大器

拉链

数字扩音器-完成.fmwt

第3部分:矢量叠加器

vectoronrasteroverlayer-begin.fmwt

vectoronrasteroverlayer-complete.fmwt

指令

第1部分:图像光栅化器

在这个场景中,我们希望创建一个斯坦利公园的光栅图像来显示道路,它主要被水包围。要做到这一点,我们将使用图像光栅化器变压器。图像光栅化器获取二维矢量几何图形并将其转换为单个光栅。

在某些情况下,如果需要不同的光栅化参数,可以使用多个图像光栅化器。例如,消除混叠有利于轮廓,但对于矩形瓷砖边界不太好——在这种情况下,我们应该使用两个光栅器来处理带框架的轮廓文件。当使用多个图像光栅化器时,一光栅扫描器也需要把所有的锉刀变成一个。

1)打开模板工作区

在FME工作台中,打开imagerasterizer-begin.fmwt工作区模板。此模板已经为我们准备了数据,它在道路网络AutoCAD DWG中读取,Parks MapInfo选项卡文件,以及一个社区的谷歌KML文件。使用这些数据,海岸线已经形成,所有的数据都被剪辑成只显示斯坦利公园。我们需要添加颜色和图像光栅。

初始工作区,用于清理斯坦利公园地图的功能

2)颜色特征

在我们将数据光栅化之前,让我们给它点颜色。添加功能颜色设置器将变压器连接到画布并将其连接到空间滤波器变压器,这将是道路的颜色。在参数中,将配色方案更改为“固定”,然后将笔颜色和填充颜色设置为相同的颜色,对于这个例子,我将使用黑色(0,0,0)。

道路的FeatureColorSetter参数,将配色方案设置为“固定”,然后选择“黑色”。

在画布上添加另一个FeatureColorSetter;这次将其连接到测试器变压器,这将是斯坦利公园的颜色。在参数中,将配色方案更改为“固定”,然后将笔颜色和填充颜色设置为相同的颜色,对于这个例子,我将使用祖母绿颜色(0.333333,0.66666 7,0)。

最后,在画布上再添加一个FeatureColorSetter,并将其连接到剪刀变压器。这个色彩设置者会给海岸线上色。在参数中,将配色方案更改为“固定”,然后将笔颜色和填充颜色设置为相同的颜色,对于这个例子,我将使用海洋蓝色(0.333333,0.66666 7,1)。

3)光栅化图像

既然我们已经对我们的功能进行了着色,我们现在可以将它们光栅化。添加图像光栅化器变压器到画布,并将其连接到所有三个特色色彩设置变压器。在参数中,将列数(单元格)和行数(单元格)的值都设置为1000。该值表示我们希望在新的光栅图像上有多少个单元格(或像素)。数字越小,图像越像素化,数字越高,图像越详细。我们将保留其余参数作为默认值。

ImageRasterizer参数:将大小规范设置为RowColumns,并将两者都设置为1000。

4)运行翻译

添加检查员转换并连接到图像光栅器上的光栅输出端口,然后运行翻译。在FME数据检查员中,你的数据可能是按照正确的顺序排列的,上面有道路,然后是公园,然后是海岸线,否则就没有了。我们应该设置功能的顺序,以便它们每次都以相同的方式出现。

公园顶上的海岸线有点乱

5)设置功能顺序

要设置功能的顺序,我们将创建一个名为order的新属性,并为每个功能设置不同的值,然后按降序对特征进行排序,最后在图像光栅器中设置“输入顺序”选项。

回到FME工作台,添加一个属性创建器在为道路着色的FeatureColorsetter之间转换,以及图像光栅。在参数中,创建一个名为order的新属性,并将属性值设置为1。在公园的FeatureColorsetter和ImageRasterizer之间添加第二个attributeCreator。创建一个名为order的新属性,并将属性值设置为2。最后,为海岸线添加第三个属性创建器,然后创建名为order的新属性,并将属性值设置为3。

现在我们需要对这些属性进行排序,添加分拣机转换到画布并将所有三个属性创建者连接到画布,然后将排序的输出端口连接到ImageRasterizer。在参数中,将属性设置为顺序,然后对于alpha/num,将其设置为numeric并按降序排列。

添加三个属性创建器和一个分类器以订购功能

最后,在ImageRasterizer中,将输入按组排序,这将确保我们的功能按正确的顺序光栅化。

6)重新运行翻译

重新运行翻译,这一次,在FME数据检查器中,无论您运行此翻译多少次,功能都应该以正确的顺序进行。

输出光栅化图像

第2部分:数字放大器

这个数字放大器Transformer像ImageRasterizer一样对二维矢量几何图形进行栅格化,只是它考虑了Z值(高程)来填充背景值。在这种情况下,我们将采用矢量等高线并创建类似于数字高程模型(DEM)的光栅。虽然光栅看起来像DEM,这不是真正的DEM,要了解如何创建插值DEM,请参见从点云创建光栅和DEM文章。

1)打开FME工作台

在空白工作区中,添加形状文件阅读画布。对于数据集,请浏览包含温哥华市所有轮廓形状文件的contours.zip文件。FME可以读取压缩文件,所以你不需要在阅读之前提取它。将工作流选项更改为单个亚搏在线合并的要素类型,然后单击“确定”添加读卡器。

将outlines.zip中的shapefile reader作为单个合并功能读取

2)力3d

我们的数据有一个Z值与每个轮廓线相关联,但是我们要确保线中的每个垂直线都有一个z值。要做到这一点,我们将使用3DR变压器。将3dforcer添加到画布并将其连接到shapefile功能类型。在参数中,将高程设置为高程。

3)创建数字光栅

现在每个垂直线都有一个z值,我们可以创建数字光栅。添加数字放大器将变压器连接到画布并将其连接到3dforcer上的输出端口。在参数中,将大小规范设置为RowColumns,然后将列数(单元格)和行数(单元格)都设置为100。这个数字取决于你的数据,可能需要一些尝试和错误才能让它看起来像你想要的那样。较大的数字将有更多没有数据的孔。

将大小规范设置为rows columns,并将列和行设置为100。

4)运行和检查翻译

最后,在数字转换器上的光栅输出端口添加一个检查器转换器,然后运行转换。在FME数据检查器中,您将看到黑白图像,如果你点击一个单独的单元格,它将有一个z值。尝试更改列(单元格)的数量和行(单元格)的数量,以查看不同的输出。

输出类似于DEM的光栅化数字图像

第3部分:矢量叠加器

最后一个示例使用矢量叠加器在光栅上覆盖矢量数据的转换器。这个场景我们要创建一个地图,显示即将到来的游行的道路封闭。我们有一个包含封闭道路的矢量线数据集,我们有一个感兴趣的区域的光栅正射影像。

1)打开模板文件

首先,打开FME桌面中的vectoronrasteroverlayer-begin.fmwt工作区模板文件。这个工作区已经有了geotiff正射影像和道路封闭形状文件。道路封闭形状文件是一条矢量线,使用FeatureColorSetter将其染成红色。它还包括许多道路线,每个街区一个,因此,每个街道名使用线形转换器变压器。最后,道路很窄,因此,它被缓冲,以创建一个更厚的线使用缓冲器变压器。还为每条封闭道路创建了标签,使用贴标机变压器。

2)在光栅上叠加矢量

添加矢量叠加器变换到画布上,将矢量输入端口连接到缓冲区上的缓冲输出端口和贴标机上的标签输出端口。然后将光栅输入端口连接到geotiff。默认参数正常。

添加一个vectoronrasteroverlayer并将其连接到geotiff,缓冲器,还有拉贝尔

3)运行翻译

将检查器添加到vectoronrasteroverlayer上的光栅输出端口,然后运行转换。在FME数据检查员中检查数据,你会看到道路封闭线被光栅化了,但是标签不见了。这是因为标签不是矢量或光栅特征,我们必须解决这个问题。

输出不带标签的图像

4)矢量化标签

为了使我们的标签矢量化,我们需要使用一个textstroker转换器。添加文本打字机变换到画布,并将其连接到贴标机和VectoronRasterOverlayer之间。在参数中,将stroked geometry type设置为polygon features,然后将字体名称设置为Franklin Gothic Demi,并将大小设置为28。单击确定。重新运行翻译并检查输出。

在Labeller和VectoronRasterOverlayer之间添加Textstroker

带标签的最终输出。请注意:屏幕截图质量下降,实际文件质量更高,标签可读。

光栅 地理信息系统 数字放大器 图像光栅化器 矢量叠加器 清华大学,2015年10月8日19:15:23格林尼治标准时间 Rylanat亚搏在线safe公司
Web映射平台的光栅化 https://knowledge.亚搏在线safe.com/articles/606/rasterization-for-web-mapping-platforms.html网站


下载

世界轮廓.zip
FFS2PASGIS.FMW
轮廓-光栅化postgis.fmw
光栅或传感器.fmw



介绍

运行所附工作区需要最新的(发布后)FME 2009或FME 2010!

这个场景展示了如何从矢量数据为Web映射平台准备光栅图块。场景使用微软必应地图瓷砖系统,然而,结果可以用于谷歌地图和其他地图平台。

Bing地图(又称虚拟地球)是一个强大而灵活的工具,可以通过互联网提供数据服务。FME可以在为必应地图准备数据时发挥重要作用。我已经发布了一个场景,解释了如何将光栅数据转换为Bing地图的光栅图层。

我发现Bing地图瓷砖非常方便的地方是,我们总是知道瓷砖和像素的地面单位大小,它在整个地球上每一个变焦级别都是恒定的。这是由球面墨卡托投影定义的。它允许以一种简单的方式设置一些参数。

现在想象一下,我们想获取一些矢量数据,并将其显示在Bing地图或谷歌地图中(请注意,两个链接指向同一个图块集)。有几种方法可以做到这一点;在本文中,我将只讨论一种方法——光栅化和制作Bing地图瓷砖。

这篇文章意味着你知道一些关于Bing地图工作原理的基础知识,什么是瓷砖?四脚架,和缩放级别。

作为源地图,我使用了来自vmap级别0。该数据集覆盖全球,细节级别为1:1000000地图。


轮廓给了我们一个有趣的挑战——如果我们在每个缩放级别上显示所有线条,在较低的缩放级别,轮廓将完全覆盖山区的背景地图,因此,我们必须发明一种算法,可以为每个缩放级别选择特定高度的轮廓。例如,在任何缩放级别上都应能看到1000米的轮廓。而只有当我们放大到接近7级时,才有100米的轮廓。

另一方面,它可以非常有用地看到所有的轮廓,以获得地球的救济感。此外,保持所有轮廓对于FME桌面和FME服务器来说是一个很好的压力测试,所以我发布了这两个变体。


我们还希望在每个缩放级别上获得最高质量的光栅图块。这意味着,当我们进入下一个缩放级别时,我们无法对为一个缩放级别创建的分片重新取样–光栅化应分别对每个级别进行。

请看下图。我们可以看到当webmaptiler从源光栅(上面的行)制作图块时,光栅图块是如何淡出的。当我们制作矢量图块并分别对它们进行栅格化时,我们在所有缩放级别上都有一致的质量,另外,我们可以控制每个级别的内容(下一行):


虚拟地球有19个缩放级别。每层新瓷砖的数量是前一层的四倍。如果我们想缩小到14-15级,我们应该得到数以千万计的瓷砖,这就是为什么我还要讨论我们必须克服的性能挑战。该过程展示了如何在空间上启用数据库和FME服务器的情况下使用FME的全部功能。

源数据

vpf格式的源数据可以从国家地理空间情报局(NGA)网站.为了您的方便,我下载数据并将其转换为FFS格式。完整的档案可以从附加的world\u outlines.zip下载。未压缩的,完整的数据集占用超过600兆字节。数据包含1000英尺间隔的轮廓(在某些地方为500英尺,其他一些轮廓线具有不同的间隔)。

为了我们的目的存储和检索这些数据量的最佳方法是在一个支持空间的数据库中。在我的例子中,我用过PostGIS数据库(将ffs转换为postgis的工作区是附件ffs2postgis.fmw)。

对于那些人,害怕数据库,我知道我花了一个多小时才下载,安装,能够在上面运行PostgreSQL和Postgis,尽管我根本不是数据库专家。

准备矢量数据

“智能”数据选择

在为光栅化准备数据时,我加了一个过滤器,根据轮廓间隔选择数据,也就是说,缩放级别14有所有的轮廓,缩放级别13–只能被10整除,12级的轮廓可以被20整除,等等,我们可以用测试仪来测试,但有时,表达评估师的一个简单表达可以做到完美:

@值(_Elevation)%1000==0?8:(@value(_elevation)%500==0?9:(@value(_elevation)%200==0?10:(@value(_elevation)%100==0?11:(@value(_elevation)%20==0?12:(@value(\u elevation)%10?13:14),))


通过这种方式,我们计算出应该看到轮廓的最高(最小数目)缩放级别。

之后,一个小循环将允许我们为每个缩放级别制作多组轮廓。


所以第一组只包含千分之一的轮廓,第二个-1000和500,第三,第一千,第500和第200,等等。

着色数据

渐变渐变是一个很好的选择范围广泛的值,如轮廓高程。使用pythoncaller设置颜色是分配fme_颜色属性的快速简便的方法。下面是附加工作区中使用的python代码示例:

import pyfmelogger=pyfm.fmelogfile()类colorsetter(object):def input(self,功能):self.elev=feature.getInttribute('elevation_ft'),如果self.elev<2000:if self.elev<1000:self.color='0',str(0.24+0.0004*self.elev)+,0'否则:self.color='0.5',str(0.24+0.0004*self.elev)+,0.5'elif self.elev<=6000:if self.elev<=3500:self.color=str(0.0002*(7000-self.elev))+','+str(0.0002*(7000-self.elev))+',0'其他:self.color='0.7',+str(0.0002*(7000-self.elev))+',0'elif self.elev<=15000:如果self.elev<10000:self.color='1',+str(0.0001*(self.elev/2))+',0'其他:self.color='1,'+str(0.0001*(15000 self.elev))+,0.5'elif self.elev<25000:self.color=str(0.0001*(25000-self.elev))+,0,+str(0.0001*(self.elev/3))否则:self.color='0.5,0.5,1'feature.setattribute('fme\u color',self.color)feature.setattribute('fme_fill_color',self.color)self.pyoutput(功能)




光栅化

试错法

通常,FME使用WebMaptiler Transformer从输入光栅生成Bing映射图块。这种方法可能对向量数据集不太适用。将地图光栅化到缩放级别10将产生一幅每边262144像素的图像,这些刺耳的声音有点难以控制。我们可以将数据集的较小部分光栅化,然后在较小的光栅上使用WebMaptiler,但这将涉及两个光栅操作(光栅化本身和光栅平铺)。此外,如果我们选择一个任意的网格,我们可能会以不完整的瓷砖结束,还要注意把它们拼接在一起。经过一些测试,我放弃了这条路线,决定尝试直接剪切和光栅化到必应地图瓷砖。也就是说,ImageRasterizerTransformer应获取制作单独瓷砖所需的准确数据部分。所以现在我们只有一个光栅变压器。这一变化的另一个积极的副作用是,我们现在不会生产没有任何数据的瓷砖。

我们怎样才能做出这样的部分呢?答案很简单剪刀变压器。我们可以制作矢量瓷砖多边形作为裁剪器,数据集提供剪辑。这就是理论。如果我们把我们的世界从1级放大到10级,我们必须制造近150万台快船。太多了。尽管改进了很多,当裁剪器的数量超过20000-60000(取决于裁剪数据的数量)时,我们仍然存在一些性能问题。

我试着用交叉线代替剪子,这让我可以比剪子再放大两级,然而,它需要一些额外的工作来计算四键,尽管如此,它不能用于更深层的铺砖。

在我对最终工作流的近似中,下一个合乎逻辑的步骤是制定一个由两个(或更多)步骤组成的过程。亚搏在线第一步,我将把原始数据集平铺成更小的数据集,其范围与某个缩放级别的平铺范围相匹配(例如,7或8,如在我的测试中)。然后,对每个较小的数据集进行相同的平铺和最终光栅化,将其缩小到14-15级。

事实上,不应该有太多的需要在一个过程中,会采取一些数据,并瓦片它的整个缩放级别范围从1级(世界)到19级(摩尔山)。世界地图和街道地图的内容各不相同,即使有些元素是相同的(海岸线,例如,它们通常用完全不同的几何图形来表示——广义的或详细的。

为了管理这样的工作流程,亚搏在线我必须设置以下程序。在第一阶段,原始数据集被分割成更小的部分,并以某种方便的格式存储(最好是使用空间索引-一个FFS或一些空间数据库)。第二阶段有两个工作区,一个用另一个执行工作空间器或ServerJobSubmitter Transformer。

第一个工作区决定应获取数据的哪个部分(文件或数据库表),第二个工作区知道如何平铺和光栅化进入它的内容。

不过,生成和保留多个较小的数据集而不是一个较大的数据集的必要性不是一个理想的解决方案——很难管理数据存储和分发,一些零件更容易松动,等。这就是为什么空间数据库在整个过程中发挥着更重要的作用。

最终工作流亚搏在线

空间数据库,如Oracle,SQL服务器,MySQL或PostGIS在快速读取空间数据子集方面非常有效。如果我们需要从传统的向量格式(如mapinfo或dgn)中提取一些数据,我们必须读取整个数据集,添加一个定义感兴趣区域边界的多边形,然后,使用裁剪器或其中一个覆盖器(例如AreaOnAreaOverlayer)获取数据。对于数据库读卡器,获得相同的结果只是设置读卡器参数的问题,可以出版,因此,从外部工作区设置。




此处发布的最终工作流亚搏在线如下所示。

我们采用了一个代表我们所在区域的功能——它可以是一个国家区域或简单的边界框。我们要求参数-最小和最大缩放级别(从中可以看到缩放级别数据)。我们还必须指定所谓的“平铺级别”(我以前称之为“读取”,但就其用途而言,这不是一个很好的词。

使用光栅化器,我们制作一个小的光栅(1*1或10*10像素,以避免任何舍入问题)。并通过WebMaptiler传递此光栅。我们有瓷砖,知道他们的四键名称。

然后用边界提取程序,我们得到最小和最大的x和y,它们和Quadkey一起作为第二个工作区的参数。

在下面的示例中,我们有28块瓷砖,这意味着我们将执行从缩放级别5到缩放级别7(即平铺级别)的28个工作区。顺便说一句,我们有人在马达加斯加用FME把TIFF转换成BMP,也许在下次会议上我会告诉你我们是怎么知道的,我们如何收集和使用有关用户的统计数据。


现在,我们在这28个工作区中做什么?我们将从外部工作区发送的参数(平铺区)应用于数据库读取器。使用“clip”选项,我们只获取我们提交的QuadKey中的数据。

在那之后,我们做我们的常规工作——如果需要的话,染色和比例选择。

然后,我们要么简单地按读取到图块的内容分组,然后将其保存为PNG文件,或者我们做额外的瓷砖。


为什么有些瓷砖会马上写出来,有些又被铺了瓷砖?这取决于瓷砖的水平。再一次,说到上面的图像,用5级和6级变焦的图像块读取的数据立刻被光栅化和写入。

使用缩放级别7的分片读取的数据也直接光栅化,但在此之前,是瓷砖,以制作缩放级别8和9的平铺。

这一切都给了我们很大的灵活性。现在我们可以控制将执行多少工作区,以及每个工作区将生成多少个图块。当我们增加第一个工作区中的平铺数量(通过增加平铺级别编号)时,我们增加了将要执行的工作区的数量,这意味着每个工作区的工作量都会减少。或者,如果我们提交较少的瓷砖,这意味着更少的工作空间,每个工作区有更多的工作(更多的图块)。

在FME桌面上的结果-每个工作区多个工作区还是多个图块?

下图显示平铺到(或向下)缩放级别8。当我试图用一个工作区来平铺所有东西时,36小时后我不得不放弃——我没有看到任何工作在进行。或者我的故障模式与影响分析停止了,或者我没有足够的耐心——其余的数字告诉我们,进一步的等待是没有意义的。


当工作区不需要做那么多的剪报时,情况开始好转。每个工作区有4000块瓷砖的效果似乎比16000块要好得多,每个工作区的间隔在64到1000块之间似乎是最佳的。当我们有太多的工作空间时,通过所有其他变压器传递数据的必要性超过了快速剪切的任何优点。
每个WKSP的工作区瓷砖铺设水平
1 1 16384
2 16 4096个
3 64 1024个
4 320 320
5 1344 64个
6 5440 5440
7 21824 4个

FME服务器

如果我们真的需要很多瓷砖,这个过程可能会很慢。根据不同的条件,我的机器每秒能生产6到10块瓷砖,这意味着每天大约50万到85万块瓷砖。然而,大项目,比如说加拿大全境,如果将细节降低到缩放级别14-15,则需要数百万个瓷砖。

上面解释亚搏在线的工作流程非常适合于FME服务器技术。

事实上,所有需要做的(假设FME服务器已经启动并运行)就是用ServerJobSubmitter替换WorkbencRunner。该变压器将采用相同的参数,一旦发生变化,我们已经准备好用FME服务器制作磁贴。

更多的机器还是更多的引擎?

最初,我们尝试了一台单引擎的FME服务器四核机器,结果与我们在带FME桌面的机器上得到的结果非常接近。这是意料之中的。然后我们想,如果我们在那台四核机器上安装四个引擎,我们会看到性能的真正改进。然而,许多引擎的性能比只有一个引擎的性能差(第1列和第5列):



我们接下来的两个测试比较了四台机器的性能,分别是单引擎和双引擎。如你所见,结果非常接近——都在2.5小时左右(第2列和第4列)。

8台单引擎机器取得了最快的结果。也许,两台发动机的机器也一样,但是,当你为一台发动机买单时,要得到相同的结果,可能没有多大的意义。

为什么会这样?我们检查了任务管理器的CPU消耗情况,在这个过程的大部分时间里,它是相当低的。在与技术经验更丰富的安全人员进行了一些磋商之后,亚搏在线我们一致认为瓶颈是I/O——我们只是不能在给定的时间段内写入更多的文件,所以多个引擎会等他们有机会写东西,但结果将是相同或更糟的——仅仅是因为我们制造了这样的人群。

FME服务器平铺性能

然后我们做了一些简单的性能测试,以了解我们可以多快地生成瓷砖。我们将vmap轮廓平铺到缩放级别8。为此,我们用1运行了平铺过程,2,4,8台机器,如你所见,我们把休息时间从两小时缩短到20分钟以下。



然后我们尝试了如果我们达到10级和11级的速度,表格显示了这些数字。25万块瓷砖可以在大约2小时内完成,在6.4小时内完成了100万块瓷砖。在一台机器上,这需要将近两天的时间。
水平平铺分钟(小时)
8 24500 18(0.3)
10 245000 105(1.75)
11 1000000 384(6.4)

现在很容易想象,将一个具有多层的大区域平铺到缩放级别14或15可能需要很长的时间或大量的计算资源。

无限的可扩展性?

所以,如果我们有无限数量的计算机,我们能以多快的速度达到我们的目标?

此图不处理总时间;它显示每个工作区的平均时间和最大时间。



图中所示的过程生成约3500块瓷砖,一个工作区大约需要半小时。当工作空间数量增加时,平均值和最大值都在下降。有82个工作区,也就是说,有82台发动机,这个过程可以在半分钟内完成(如果没有其他瓶颈)。

FME服务器现在可以工作,请上述测试也由我们的同事在韦戈.

结论

用FME制作瓷砖真的很容易。只要瓦片的数量不超过数十万或几百万,就只需要使用FME桌面就可以开始制作它们。

平铺过程的结果并不局限于单个映射平台Bing映射。它可以与谷歌地球和其他网络地图平台一起使用。

如何将数据处理拆分为多个工作区的一般思想并不局限于所描述的过程,因此,更有价值。

FME服务器允许更快的数据生成,因此,如果您的卷很大或需要频繁更新,这就是我们要走的路。

即使FME服务器不够,FME现在生活在云中,它可以扩展到非常宽的范围。

数据,工作空间,链接

world_outlines.zip-FFS格式的源数据

ffs2postgis.fmw-将ffs转换为postgis的工作区

rasterizerrunnerpostgis.fmw-执行助手工作区的父工作区

Contour_RasterizationPostgis.fmw-帮助工作区生成瓷砖

结果在必应地图

结果在谷歌地图

上述过程相当复杂,随时联系技术支持有任何相关问题或发现任何不正常工作。

光栅 网状物 网络地图绘制程序 图像光栅化器 清华大学,2015年10月8日19:13:59格林尼治标准时间 Rylanat亚搏在线safe公司