MapnikRasterizer
使用Mapnik工具包从输入向量和栅格特征生成栅格,并对符号和标签进行精细控制。
典型的使用
- 创建矢量特征或栅格特征上的矢量的制图渲染
它是如何工作的?
MapnikRasterizer提供了一个接口Mapnik工具包。它接收矢量和/或栅格输入特征,并根据参数选择使用制图样式将它们呈现为栅格图像。
当放置在工作区中,MapnikRasterizer有一个输入端口,连接输入.特性可以连接到这个端口,这将为连接到那里的每个项创建一个新的输入端口。多个特征输入特征流可以连接到一个输入端口,如果它们要接收相同的样式,并且是相同的几何类型——例如,将几种类型的道路连接到一个单一的道路端口。
参数对话框包含一个表呈现规则.每条规则由一个输入端口,一个象征着,风格.可以为一个输入端口创建多个规则——例如,可以输入三次边界层——一次是样式线,一次是添加后面的辉光,再一次是从属性创建和样式标签。
各种各样的Symbolizers可用的,包括线、点和多边形样式和图案、文本、盾牌和点标记,以及光栅。每种类型都有相关的样式选择。对于许多样式选项,条件值是允许的,其中可以创建一个测试条件表来分配不同的值——例如颜色或线宽。
图层将按照它们在渲染规则表中出现的顺序绘制——也就是说,第一个项目将首先绘制(在图像的底部),随后的项目将在前一个项目的上方绘制。排序将决定重叠的对象将如何出现——后面的项可能覆盖前面的项。
注意:完整的符号化细节可在Mapnik文档.
输出光栅的大小可以通过定义它们的尺寸(列和行数)或指定地面单位的像素大小(水平和垂直)。光栅覆盖的地面范围默认为所有输入特征的范围,但可以指定。如果指定的区段小于数据的区段,它将被裁剪到定义的区域。
光栅解释型可以是RGB24或RGBA32(带alpha)。栅格的背景可以是指定的颜色,也可以是在栅格范围内平铺的图像。要使用一个地理引用的栅格作为整个背景,它应该连接到一个输入端口,并使用渲染规则和栅格符号(不是作为背景图像附加)进行样式化。
在这个例子中,我们将使用一些数据集创建一个光栅表示。来源数据包括:
- 一个正色摄影(GeoTIFF)
- 公园(多边形)
- 自行车道(带有标记属性的线)
- 三(3)个独立的街头食品摊贩数据集(点)
所有源数据集都被路由到MapnikRasterizer中。在需要时通过连接到Connect input端口创建新的输入端口。注意,所有三个食品供应商的数据集都连接到同一个端口-它们都是点几何体,并且样式都是相同的。
在参数对话框中,我们设置输出光栅大小为基于(1)米像素(单元),并构造呈现规则表格
注意以下选择:
GEOTIFF(正射影像)首先,为输出光栅提供背景。 它的风格与一个栅格符号。 不透明度设置为。7,使图像淡出一点,让其余的特征突出。 |
|
公园是下一个,样式与一个多边形符号化。填充为绿色,不透明度设置为。5。 如果我们想在公园周围画一个对比鲜明的边界,我们可以复制这个规则,并使用一个Line符号来装饰边界。 |
|
Bike_ALL包含带有属性的自行车路径。我们已经为它们创建了两条规则(使用表格下面的复制和粘贴工具)——注意,它们不会在表格中一起出现,而是被FoodVendors层分开。 第一个规则对行进行样式设置,第二个规则执行标记。食品摊贩的标识可能会与线条重叠,但会出现在自行车道标识的后面,它们可能会与之相撞。 要生成标签,我们选择PathName属性。光晕填充参数在字母后面产生辉光,使它们在背景和其他特征的衬托下更加可见。 |
样式: 标签: |
FoodVendors包含连接到此输入端口的所有三个点数据集。 在呈现规则表中重命名端口反映在转换器本身中—该端口是在将Hot Dogs连接到Connect Input时创建的,然后在这里重命名。 此图层使用点符号设置样式。通过选择符号类型、图像,我们可以选择要使用的符号光栅——在本例中,橙色标记被保存为带有透明背景的PNG文件。 使用Transform参数将符号缩放到适当的大小,规模(或25)。 |
orangemark .png有一个透明的背景: |
所有样式参数选择和行为的完整文档可以在Mapnik文档.
根据参数选择产生光栅。
选择光栅变压器
FME有大量的变压器可供选择,用于处理光栅数据。它们通常可以分为使用整个光栅、波段、单元格或调色板的工作,以及为工作流控制或将光栅与向量数据结合而设计的工作。亚搏在线
有关光栅几何和属性的信息,请参见位图(IFMERaster).
使用位图
RasterCellOriginSetter | 在栅格中设置单元格的起始点。 |
RasterConvolver | 应用一个卷积滤波器(有时称为内核或镜头)的栅格特征,并输出结果。 |
RasterExpressionEvaluator | 计算光栅或光栅对中每个单元格上的表达式,包括代数运算和条件语句。 |
RasterExtentsCoercer | 用覆盖光栅范围或光栅内数据范围的多边形替换输入光栅特征的几何形状。 |
RasterGCPExtractor | 提取地面控制点(GCP)坐标系统和点阵特征的点值,并将它们作为属性公开。 |
RasterGCPSetter | 集地面控制点(GCPs),将单元格位置与已知坐标进行配对。 |
RasterGeoreferencer | 通过已知的角坐标或原点、单元格大小和旋转来引用光栅。 |
RasterHillshader | 基于高程值生成地形的灰度阴影浮雕表示。 |
RasterInterpretationCoercer | 更改栅格的解释类型,包括所有波段,并在必要时转换单元格值。 |
RasterMosaicker | 将多个光栅特性合并为一个单一的光栅特性。 |
RasterPropertyExtractor | 提取栅格特征的几何属性,并将其作为属性公开。 |
RasterPyramider | 基于最小输出光栅的水平或维度,将光栅重采样到多个分辨率。 |
RasterRegisterer | 转换图像以使其与另一图像的差异最小。 |
RasterResampler | 重新采样光栅,基于指定的输出尺寸,单元格大小在地面单位,或原始的百分比,并插值新的单元格值。 |
RasterRotationApplier | 根据其旋转角度属性旋转栅格特征,插值新的单元格值,更新所有其他受影响的栅格属性,并产生一个旋转角度为零的输出栅格特征。 |
RasterSharpener | 增强栅格图像的特征。栅格锐化器增强边框、线条和曲线,同时减少栅格图像平坦区域的噪声。 |
RasterSubsetter | 使用像素边界而不是地面坐标剪辑光栅特性,并可选择在周长周围添加单元格。 |
RasterTiler | 通过指定单元格/像素的瓦片大小或瓦片数量,将每个输入光栅分割成一系列瓦片。 |
RasterToPolygonCoercer | 从输入的栅格特征创建多边形。对于输入光栅中具有相同值的每个连续像素区域,输出一个多边形。 |
WebMapTiler | 创建一系列可被web地图应用程序(如Bing™Maps、谷歌Maps™或web地图平铺服务)使用的图像平铺。这是通过将光栅重新采样到不同的分辨率,然后将它们分割成贴图来实现的。 |
与乐队合作
RasterBandAdder | 添加一个新的波段到光栅功能。 |
RasterBandCombiner | 将巧合栅格特征合并到一个单一的输出栅格特征,保留和附加所有波段。 |
RasterBandInterpretationCoercer | 改变单个光栅波段的解释类型,必要时转换单元格值。 |
RasterBandKeeper | 从光栅特性中删除所有未选择的波段。 |
RasterBandMinMaxExtractor | 从光栅特性中提取最小和最大波段值、调色板键和调色板值,并将它们添加到列表属性中。 |
RasterBandNameSetter | 在光栅上设置选定波段的波段名称,使光栅内容比波段数更容易理解。 |
RasterBandNodataRemover | 从光栅特性的选定波段中移除现有的nodata标识符。任何先前等于nodata值的值都被认为是有效数据。 |
RasterBandNodataSetter | 在光栅特征的选定波段上设置一个新的nodata值。 |
RasterBandOrderer | 指定光栅中所需的波段顺序。频带根据输入频带指数重新排序。 |
RasterBandPropertyExtractor | 提取光栅特性的波段和调色板属性,并将它们作为属性公开。 |
RasterBandRemover | 从光栅特性中删除任何选定的波段。 |
RasterBandSeparator | 分离波段或独特的波段和调色板组合,并输出单个光栅特性或包含所有组合的单个新光栅特性。 |
RasterStatisticsCalculator | 计算栅格波段的统计信息,并将结果添加为属性。 |
处理细胞
RasterAspectCalculator | 计算栅格中每个单元格的方面(斜率方向)。角度从0到360度,顺时针从北。 |
RasterCellCoercer | 为光栅中的每个单元格创建单独的点或多边形,可选地提取带值作为z坐标或属性。 |
RasterCellValueCalculator | 对一对光栅的单元格值计算基本算术、最小、最大或平均运算。 |
RasterCellValueReplacer | 用一个新的单值替换光栅中的波段值范围。 |
RasterCellValueRounder | 四舍五入光栅单元格值。 |
RasterSegmenter | 根据输入栅格图像单元的强度差异,将栅格图像从输入图像分割成任意大小的单元组。 |
RasterSingularCellValueCalculator | 对光栅的单元格值对数值执行基本算术运算。 |
RasterSlopeCalculator | 计算每个栅格单元格的斜率(z的最大变化率)。 |
使用调色板
RasterPaletteAdder | 从属性创建一个调色板,并将该调色板添加到光栅上所有选定的波段。 |
RasterPaletteExtractor | 在光栅上创建现有调色板的字符串表示形式,并将其保存到属性中。 |
RasterPaletteGenerator | 从光栅的选定波段生成调色板。输出光栅将选择的波段(s)替换为一个新的波段与调色板。 |
RasterPaletteInterpretationCoercer | 改变栅格调色板的解释类型。 |
RasterPaletteNodataSetter | 标识匹配光栅带的nodata值的调色板键,并在其上设置值。 |
RasterPaletteRemover | 从光栅特性中移除选定的调色板。 |
RasterPaletteResolver | 通过将单元格值替换为相应的面板值来解析光栅上的面板。带有多个组件(如RGB)的调色板值被分解,单个值被分配给多个新添加的波段。 |
亚搏在线工作流程控制
RasterCheckpointer | 强制处理累积的光栅操作,将状态保存到磁盘并释放资源以优化性能或帮助解决内存限制。 |
RasterConsumer | 读取光栅特性以进行测试,包括任何累积的光栅操作。不执行任何额外的操作,对特性也不做任何操作。 |
RasterExtractor | 将光栅特性的几何形状序列化为Blob属性,根据常用二进制光栅格式的选择对内容进行编码。 |
RasterNumericCreator | 使用默认单元格值创建指定大小和分辨率的数字光栅。 |
RasterReplacer | 解码包含存储为Blobs的编码光栅的二进制属性,用解码后的光栅替换特性的几何形状。 |
RasterRGBCreator | 使用默认单元格值创建指定大小、分辨率和解释类型的色光栅特性。 |
RasterSelector | 为后续的变压器操作选择光栅的特定波段和调色板。 |
矢量和位图
ImageRasterizer | 创建矢量或点云输入特征的栅格表示,使用fme_color属性在矢量特征的固体背景填充上。点云可以使用它们的颜色或强度组件来渲染。 |
NumericRasterizer | 创建矢量或点云输入特征的数字栅格表示,其中单元格值取自输入特征的z坐标,并覆盖在统一的背景上。 |
MapnikRasterizer | 使用Mapnik工具包从输入向量和栅格特征生成栅格,并对符号和标签进行精细控制。 |
PointOnRasterValueExtractor | 从一个或多个输入点位置的光栅中提取波段和调色板值,并将它们设置为特性的属性。 |
RasterDEMGenerator | 通过对输入点和断点生成的Delaunay三角剖分进行均匀采样,生成栅格数字高程模型(DEM)。 |
VectorOnRasterOverlayer | 栅格化在现有栅格上的矢量或点云特征。对于向量特征,fme_color属性设置像素颜色,点云可以使用它们的颜色或强度组件进行渲染。 |
配置
输入端口
输入端口可以通过将特征流连接到连接输入端口,或者将它们添加到呈现规则表的输入端口列中。
输入端口也可以在呈现规则表中被重命名、移动和删除。
输出端口
根据参数选择从一组特征中绘制的光栅。
参数
集团 | 如果集团参数设置为属性列表时,将生成每个组的一个光栅。 |
组的模式 | 进程结束(阻塞):这是默认行为。只有当所有输入都存在时,才会在这个转换器中进行处理。 组更改时的处理(高级):此变压器将按顺序处理输入组。输入流上Group By参数值的更改将触发对当前累积组的处理。这可能会提高整体速度(特别是对于多个大小相同的组),但如果输入组不是真正有序的,可能会导致不希望的行为。
考虑使用集团
有两个典型的使用原因组更改时的处理(高级).第一个是要分组处理的传入数据(并且已经按顺序排列了)。在这种情况下,结构规定了按用法分组——而不是考虑性能。 第二个可能的原因是潜在的性能提升。 当数据已经排序(或使用SQL命令声明),因为FME需要的工作较少。如果数据需要排序,可以在工作区中对其进行排序(尽管增加的处理开销可能会抵消任何收益)。 根据数据流的数量进行排序变得更加困难。多个数据流几乎不可能按正确的顺序排序,因为所有的特征都匹配集团值需要在属于下一组的任何特性(任何特性类型或数据集)之前到达。在本例中,使用集团与进程结束(阻塞)可能是等效的更简单的方法。 注意:多个特征类型和来自多个数据集的特征通常不会自然地以正确的顺序出现。 与许多场景一样,在工作区中使用数据测试不同的方法是确定性能增益的唯一确定方法。 |
此表定义了指定功能如何呈现的层和符号项。
表中的每个条目都包含一个输入端口、符号符类型和该符号符的参数。符号符参数取决于符号符类型。中可以找到每个符号符的参数说明Mapnik文档.
请注意,图层将按照指定的顺序呈现。这个表中的第一层将首先呈现(也就是说,它将出现在任何后续层的下方)。
规则可以被复制以添加额外的样式。
输入端口 | 层的名称,也反映在工作区中的转换器中。多个特性流可以连接到一个输入端口,应该是相同的几何类型,并且具有相同的样式。 |
象征着 | 选择要对特性执行的样式类型。选项包括:
|
风格 | 编辑……将打开一个特定于Symbolizer类型的参数对话框。 |
层定义
这个参数指定了层的定义。
每个渲染规则都是一个层 | 上表中的每一条规则都将被呈现为一个单独的层。 |
每个输入端口是一个层 | 每个输入端口将被渲染为一个层。注意,在这种情况下,某些层将包含多个符号。 |
本质上,这决定了呈现规则的绘制顺序。层是按顺序渲染的,在任何下一层的特征之前绘制一个层的所有特征。在一个层中,符号符是按特性应用的。
示例:有代表街道的线特征,每个特征还包含一个指定街道名称的属性。要呈现它,您可以设置Line符号化和Text符号化。在这种情况下,你会想要首先绘制所有街道,然后在上面有所有的标签,所以每个渲染规则都是一个层会更合适。
例如:你有重叠的多边形,并且想要为每个多边形绘制一个边界。要呈现这个,您可以设置一个多边形符号化器和一个直线符号化器。在这种情况下,在继续下一个特性之前,您可能希望将每个特性都作为一个多边形和一条线来绘制,所以每个输入端口是一个层会更合适。
注意每个渲染规则都是一个层可以被复制层定义被设置为每个输入端口是一个层.为此,只需为每个单独的层添加一个新的输入端口。
尺寸规格 | 选择定义输出光栅大小的方法:
|
列数(单元格) | 如果尺寸规格是列和行,以单元格(像素)输入输出光栅的宽度。 |
行数(单元格) | 如果尺寸规格是列和行,以单元格(像素)输入输出光栅的高度。 |
单元格间距 | 如果尺寸规格是间距,输入输出光栅单元的宽度,以地面单位度量。 |
解释型 | 设置输出光栅的解释类型。选项包括:
|
背景可以用纯色和/或图像填充。如果没有指定颜色或图像,背景将是透明的。
颜色 | 设置背景颜色。 使用文本框右侧的颜色选择器,或者直接编辑文本框的内容。 颜色必须指定为 |
颜色Alpha值(0-1) | 设置背景颜色的alpha值。 它必须是一个介于0和1之间的数字,其中0是完全透明的,1是完全不透明的。 |
图像 | 选择要用作背景的图像文件。如果图像小于输出光栅的范围,它将被平铺。 背景图像不会使用地理参考-要使用地理参考光栅,将它连接到输入端口并使用呈现规则表格 |
地面区段 | 如果使用输入数据接地扩展,区段没有明确指定,输出光栅区段将由有效输入向量特征的边界框的并集决定。 如果指定地面区段,其余的地扩展参数用于指定输出光栅的范围。 输出光栅将被裁剪到指定的范围。 |
最小X | 这指定了输出光栅的最小x值。它用于地面区段参数设置为指定地面区段. |
最低Y | 这指定了输出光栅的最小y值。它用于地面区段参数设置为指定地面区段. |
最大X | 它指定输出光栅的最大x值。它用于地面区段参数设置为指定地面区段. |
最大Y | 它指定输出光栅的最大y值。它用于地面区段参数设置为指定地面区段. |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配转换器参数。更高级的函数,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击除适用参数外。有关更多信息,请参见变压器参数菜单选项.
定义值
有几种方法可以定义在Transformer中使用的值。最简单的方法是简单地输入值或字符串,其中可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作空间参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段附近的下拉上下文菜单中获得。
使用文本编辑器
Text Editor提供了一种方便的方法来从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式),其中结果直接在参数中使用。
使用算术编辑器
算术编辑器提供了一种方便的方法来从各种数据源(如属性、参数和功能函数)构造数学表达式,其中结果直接在参数中使用。
有条件的值
根据一个或多个通过或失败的测试条件设置值。
内容
表达式和字符串可以包括许多函数、字符、参数等等。
当设置值时——无论是直接输入参数还是使用其中一个编辑器构造的值——包含String、Math、Date/Time或FME Feature Functions的字符串和表达式将对这些函数进行计算。因此,这些函数的名称(以@<的形式)function_name>)不应该用作字符串的文字值。
参考
处理行为 |
|
功能持有 |
是的 |
依赖关系 | 没有一个 |
FME授权级别 | FME专业版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网、操作指南、文章、faq和更多内容的地方。获得问题的答案,向其他用户学习,并对新功能提出建议、投票和评论。
搜索所有关于MapnikRasterizer的结果在FME社区。亚搏国际在线官网
例子可能包含在开放政府许可证-温哥华下许可的信息