斯潘8
斯潘4
有很多方法可以使用FME来转换矢量数据(点,线,区域)转换为光栅数据。这个例子集中在三个变压器上,这个图像扫描仪,这个数字放大器以及矢量叠加器.
第1部分:图像光栅化器
第2部分:数字放大器
第3部分:矢量叠加器
vectoronrasteroverlayer-begin.fmwt
vectoronrasteroverlayer-complete.fmwt
在这个场景中,我们希望创建一个斯坦利公园的光栅图像来显示道路,并且它主要被水包围。要做到这一点,我们将使用图像扫描仪变压器。图像光栅化器获取二维矢量几何图形并将其转换为单个光栅。
在某些情况下,如果需要不同的光栅化参数,可以使用多个图像光栅化器。例如,消除混叠有利于轮廓,但是对于矩形瓷砖边界来说不是很好——在这种情况下,我们应该使用两个光栅器来处理带框架的轮廓文件。当使用多个ImageRasterizer时,一光栅扫描器也需要把所有的锉刀变成一个。
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数据检查器中,无论您运行此翻译多少次,功能都应该以正确的顺序进行。
输出光栅化图像
这个数字放大器Transformer像ImageRasterizer一样对二维矢量几何图形进行栅格化,只是它考虑了Z值(高程)来填充背景值。在这种情况下,我们将采用矢量等高线并创建一个类似于数字高程模型(DEM)的光栅。虽然光栅看起来像DEM,这不是真正的DEM,要了解如何创建插值DEM,请参见从点云创建光栅和DEM文章。
1)打开FME工作台
在空白工作区中,添加一个整形器阅读画布。对于数据集,请浏览包含温哥华市所有轮廓形状文件的contours.zip文件。FME可以读取zip文件,所以你不需要在阅读之前提取它。将工作流选项更改为“单亚搏在线个合并要素类型”,然后单击“确定”添加读卡器。
将outlines.zip中的shapefile reader作为单个合并功能读取
2)力三维
我们的数据有一个Z值与每个轮廓线相关联,但是我们要确保线中的每个垂直线都有一个z值。要做到这一点,我们将使用3DR变压器。将3dforcer添加到画布并将其连接到shapefile功能类型。在参数中,将高程设置为高程。
3)创建数字光栅
现在每个垂直线都有一个z值,我们可以创建数字光栅。添加一个数字放大器将变压器连接到画布,并将其连接到3dforcer上的输出端口。在参数中,将大小规范设置为RowColumns,然后将列数(单元格)和行数(单元格)都设置为100。这个数字取决于您的数据,可能需要一些尝试和错误才能让它看起来像您想要的那样。较大的数字将有更多没有数据的孔。
将大小规范设置为rows columns,并将列和行设置为100。
4)运行和检查翻译
最后,在数字转换器上的光栅输出端口添加一个检查器转换器,然后运行转换。在FME数据检查器中,您将看到黑白图像,如果你点击一个单独的单元格,它将有一个z值。尝试更改列(单元格)的数量和行(单元格)的数量,以查看不同的输出。
输出类似于DEM的光栅化数字图像
最后一个示例使用矢量叠加器在光栅上覆盖矢量数据的转换器。这个场景我们要创建一个地图,显示即将到来的游行的道路封闭。我们有一个包含封闭道路的矢量线数据集,我们有一个感兴趣的区域的光栅正射影像。
1)打开模板文件
开始,打开FME桌面中的vectoronrasteroverlayer-begin.fmwt工作区模板文件。这个工作区已经有了geotiff正射影像和道路封闭形状文件。道路封闭形状文件是一条矢量线,使用FeatureColorSetter将其染成红色。它还包括许多道路线,每个街区一个,因此,每个街道名称使用线形转换器变压器。最后,道路很窄,因此,它被缓冲,以创建一个更厚的线使用缓冲器变压器。还为每条封闭道路创建了标签,使用贴标机变压器。
2)在光栅上叠加矢量
添加一个矢量叠加器变换到画布上,将矢量输入端口连接到缓冲区上的缓冲输出端口和贴标机上的标签输出端口。然后将光栅输入端口连接到geotiff。默认参数正常。
添加一个vectoronrasteroverlayer并将其连接到geotiff,缓冲器,Labeller
3)运行翻译
将检查器添加到VectoronRasterOverlayer上的光栅输出端口,然后运行转换。在FME数据检查员中检查数据,你会看到道路封闭线被光栅化了,但是标签不见了。这是因为标签不是矢量或光栅特征,我们必须解决这个问题。
输出不带标签的图像
4)矢量化标签
为了使我们的标签矢量化,我们需要使用一个textstroker转换器。添加一个文本打字机将变压器连接到画布,并将其连接到贴标机和VectoronRasterOverlayer之间。在参数中,将stroked geometry type设置为polygon features,然后将字体名称设置为Franklin Gothic Demi,并将大小设置为28。单击确定。重新运行翻译并检查输出。
在Labeller和VectoronRasterOverlayer之间添加Textstroker
带标签的最终输出。请注意:屏幕截图质量下降,实际文件质量更高,标签可读。
?2019安全亚搏在线软件公司|合法的