MapnikRasterizer
使用Mapnik工具包从输入向量和栅格特征生成栅格,并对符号和标签进行精细控制。
典型的使用
- 创建矢量特征或栅格特征上的矢量的制图渲染
它是如何工作的?
MapnikRasterizer提供了一个接口Mapnik工具包。它接收矢量和/或栅格输入特征,并根据参数选择使用制图样式将它们呈现为栅格图像。
当放置在工作区中,MapnikRasterizer有一个输入端口,连接输入.特性可以连接到这个端口,这将为连接到那里的每个项创建一个新的输入端口。多个特征输入特征流可以连接到一个输入端口,如果它们要接收相同的样式,并且是相同的几何类型——例如,将几种类型的道路连接到一个单一的道路端口。
“参数”对话框包含一个参数表呈现规则. 每个规则由一个输入端口,一个象征着,风格. 可以为一个输入端口创建多个规则-例如,可以输入三次边界层-一次用于设置线条样式,一次用于在线条后面添加光晕,另一次用于从属性创建和设置标签样式。
各种各样的Symbolizers可用的,包括线、点和多边形样式和图案、文本、盾牌和点标记,以及光栅。每种类型都有相关的样式选择。对于许多样式选项,条件值是允许的,其中可以创建一个测试条件表来分配不同的值——例如颜色或线宽。
图层将按照它们在渲染规则表中出现的顺序绘制——也就是说,第一个项目将首先绘制(在图像的底部),随后的项目将在前一个项目的上方绘制。排序将决定重叠的对象将如何出现——后面的项可能覆盖前面的项。
注意:完整的符号化细节可在Mapnik文档.
输出光栅的大小可以通过定义它们的尺寸(列和行数)或指定地面单位的像素大小(水平和垂直)。光栅覆盖的地面范围默认为所有输入特征的范围,但可以指定。如果指定的区段小于数据的区段,它将被裁剪到定义的区域。
光栅解释型可以是RGB24或RGBA32(带alpha)。栅格的背景可以是指定的颜色,也可以是在栅格范围内平铺的图像。要使用一个地理引用的栅格作为整个背景,它应该连接到一个输入端口,并使用渲染规则和栅格符号(不是作为背景图像附加)进行样式化。
在这个例子中,我们将使用一些数据集创建一个光栅表示。来源数据包括:
- 一个正色摄影(GeoTIFF)
- 公园(多边形)
- 自行车道(带有标记属性的线)
- 三(3)个独立的街头食品摊贩数据集(点)
所有源数据集都被路由到MapnikRasterizer中。在需要时通过连接到Connect input端口创建新的输入端口。注意,所有三个食品供应商的数据集都连接到同一个端口-它们都是点几何体,并且样式都是相同的。
在参数对话框中,我们设置输出光栅大小为基于(1)米像素(单元),并构造呈现规则表格
注意以下选择:
GEOTIFF(正射影像)首先为输出光栅提供背景。 它的样式为光栅符号。 不透明度设置为。7,使图像淡出一点,让其余的特征突出。 |
|
公园是下一个,样式与一个多边形符号化。填充为绿色,不透明度设置为。5。 如果我们想在公园周围画一条对比鲜明的边界,我们会复制规则,并使用线条符号来设计边界。 |
|
Bike_ALL包含带有属性的自行车路径。我们已经为它们创建了两条规则(使用表格下面的复制和粘贴工具)——注意,它们不会在表格中一起出现,而是被FoodVendors层分开。 第一个规则对行进行样式设置,第二个规则执行标记。食品摊贩的标识可能会与线条重叠,但会出现在自行车道标识的后面,它们可能会与之相撞。 要生成标签,我们选择PathName属性。“光晕填充”参数会在字母后面产生光晕,使字母在背景和其他特征下更可见。 |
样式: 标签: |
FoodVendors包含连接到此输入端口的所有三个点数据集。 在呈现规则表中重命名端口反映在转换器本身中-此端口是在连接热狗以连接输入时创建的,然后在此处重命名。 此图层使用点符号设置样式。通过选择符号类型、图像,我们可以选择要使用的符号光栅——在本例中,橙色标记被保存为带有透明背景的PNG文件。 通过使用变换参数将符号缩放到适当的大小,规模(或25)。 |
OrangeMarker.png有一个透明的背景: |
所有样式参数选择和行为的完整文档可在Mapnik文档.
根据参数选择产生光栅。
选择光栅变压器
FME有大量用于处理光栅数据的变压器选择。它们通常可分为使用整个光栅、条带、单元格或选项板,以及设计用于工作流控制或将光栅与矢量数据组合的光栅。亚搏在线
有关光栅几何和属性的信息,请参见光栅(IFMERaster).
使用光栅
光栅插入器 | 设置栅格的单元格原点。 |
RasterConvolver | 应用卷积滤波器(有时称为内核或透镜)的栅格特征,并输出结果。 |
RasterExpressionEvaluator | 计算光栅或光栅对中每个单元格上的表达式,包括代数运算和条件语句。 |
Rasterextenscoercer | 将输入光栅要素的几何图形替换为覆盖光栅范围的多边形。 |
RasterGCPExtractor | 从栅格特征中提取坐标系统和地面控制点(GCP),并将它们作为属性公开。 |
RasterGCPSetter | 在光栅上设置指定的列(像素),行(线),X坐标,Y坐标和Z坐标的地面控制点(GCP)。 |
RasterGeoreferencer | 使用指定的参数对光栅进行地理引用。 |
RasterHillshader | 生成阴影地形效果,用于可视化地形。 |
RasterInterpretationCoercer | 使用指定的转换选项在输入特性上改变栅格几何图形波段的基本解释。 例如,一个具有三个波段解释(UInt16, Gray8和Real64)的输入光栅特征可以在一次操作中转换为一个具有三个波段解释(Red8, Green8和Blue8)或四个波段解释(Red16, Green16, Blue16和Alpha16)的光栅特征。 |
RasterMosaicker | 将多个光栅特性合并为一个单一的光栅特性。 |
RaserProperty提取器 | 提取栅格特征的几何属性,并将其作为属性公开。 |
RasterPyramider | 基于最小输出光栅的水平或维度,将光栅重采样到多个分辨率。 |
RasterResampler | 基于指定的输出尺寸、以地面单位表示的单元大小或原始单元的百分比对光栅重新采样,并插值新单元值。 |
RasterRotationApplier | 将输入光栅特性上的光栅旋转角度应用于其余光栅特性和数据值。 预期的输入是一个非零旋转角度的光栅,预期的输出是一个旋转角度为0.0的旋转光栅。预期输入光栅属性将被修改,以符合以给定角度旋转的光栅的输出光栅属性。 应用旋转角度主要是为了与其他不能处理旋转角度的处理和写入程序兼容。 |
RasterSubsetter | 使用像素边界而不是地面坐标剪裁光栅要素,并可以选择在周长周围添加单元。 |
RasterTiler | 通过指定以单元/像素为单位的平铺大小或平铺数量,将每个输入光栅拆分为一系列平铺。 |
RasterToPolygonCoercer | 从输入光栅要素创建多边形。对于输入光栅中具有相同值的每个相邻像素区域,输出一个多边形。 |
WebMapTiler | 创建一系列可被web地图应用程序(如Bing™Maps、谷歌Maps™或web地图平铺服务)使用的图像平铺。这是通过将光栅重新采样到不同的分辨率,然后将它们分割成贴图来实现的。 |
与乐队合作
RasterBandAdder | 添加一个新的波段到光栅功能。 |
光栅组合器 | 将巧合栅格特征合并到一个单一的输出栅格特征,保留和附加所有波段。 |
光栅带解释强制器 | 改变单个光栅波段的解释类型,必要时转换单元格值。 |
RasterBandKeeper | 从光栅特性中删除所有未选择的波段。 |
RasterBandMinMaxExtractor | 从光栅要素中提取最小和最大标注栏值、选项板关键点和选项板值,并将它们添加到列表属性中。 |
RasterBandNameSetter | 在光栅上设置选定波段的波段名称,使光栅内容比波段数更容易理解。 |
光栅带节点去除器 | 从光栅要素的选定标注栏中删除现有节点数据标识符。以前等于nodata值的任何值都被视为有效数据。 |
RasterBandNodataSetter | 在光栅要素的选定标注栏上设置新的节点数据值。 |
RasterBandOrderer | 指定光栅中所需的波段顺序。频带根据输入频带指数重新排序。 |
RasterBandPropertyExtractor | 提取光栅要素的标注栏和选项板特性,并将其显示为属性。 |
RasterBandRemover | 从光栅特性中删除任何选定的波段。 |
RasterBandSeparator | 分离波段或独特的波段和调色板组合,并输出单个光栅特性或包含所有组合的单个新光栅特性。 |
光栅统计计算器 | 计算栅格波段的统计信息,并将结果添加为属性。 |
处理细胞
拉斯特光谱计算器 | 计算栅格中每个单元格的方面(斜率方向)。角度从0到360度,顺时针从北。 |
RasterCellCoercer | 为光栅中的每个单元格创建单独的点或多边形,可选地提取带值作为z坐标或属性。 |
RasterCellValueCalculator | 对一对光栅的单元格值计算基本算术、最小、最大或平均运算。 |
光栅传感器 | 将光栅中的标注栏值范围替换为新的单个值。 |
拉斯特圆机 | 四舍五入光栅单元格值。 |
RasterSingularCellValueCalculator | 对光栅的单元格值与数值执行基本算术运算。 |
RasterSlopeCalculator | 计算每个栅格单元格的斜率(z的最大变化率)。 |
使用调色板
光栅加法器 | 从属性创建选项板,并将此选项板添加到光栅上的所有选定标注栏。 |
锉刀拔出器 | 在光栅上创建现有调色板的字符串表示形式,并将其保存到属性中。 |
RasterPaletteGenerator | 从光栅的选定标注栏生成调色板。输出光栅将用带有调色板的新标注栏替换选定标注栏。 |
RasterPaletteInterpretationCoercer | 改变栅格调色板的解释类型。 |
刺刀 | 标识匹配光栅带的nodata值的调色板键,并在其上设置值。 |
光栅光栅 | 从光栅特性中移除选定的调色板。 |
RasterPaletteResolver | 通过将单元格值替换为相应的选项板值来解析光栅上的选项板。包含多个组件(如RGB)的调色板值将被分解,并将单个值指定给多个新添加的标注栏。 |
亚搏在线工作流控制
RasterCheckpointer | 在光栅处理中设置检查点,强制立即进行先前的处理。完成后,它将当前状态保存到磁盘。 |
RasterConsumer | 从光栅几何体请求磁贴,但未对磁贴执行任何实际操作。 |
雷射器 | 基于选定的编写器格式将要素的几何图形序列化为Blob属性。 |
RasterNumericCreator | 使用具有数字值的指定大小的光栅创建要素,并将其发送到工作空间进行处理。它对于创建具有用户指定宽度和高度的超大图像非常有用。 |
RasterReplacer | 用Blob属性中保存的几何图形替换特性的几何图形。根据选定的光栅格式对blob进行解码。 |
创造者 | 创建具有指定大小和RGB值的光栅的特征,并将其发送到工作空间进行处理。 |
RasterSelector | 为后续的变换器操作选择光栅的特定标注栏和选项板。 |
矢量和光栅
ImageRasterizer | 创建矢量或点云输入特征的栅格表示,使用fme_color属性在矢量特征的固体背景填充上。点云可以使用它们的颜色或强度组件来渲染。 |
数字星号 | 将输入点、线和多边形特征绘制到填充了背景值的数字光栅上。利用输入向量特征的Z坐标生成像素值。没有Z坐标的特征将被丢弃。 |
MapnikRasterizer | 使用Mapnik工具包从输入向量和栅格特征生成栅格,并对符号和标签进行精细控制。 |
PointOnRasterValueExtractor | 从一个或多个输入点位置的光栅中提取波段和调色板值,并将它们设置为特性的属性。 |
VectorOnRasterOverlayer | 栅格化在现有栅格上的矢量或点云特征。对于向量特征,fme_color属性设置像素颜色,点云可以使用它们的颜色或强度组件进行渲染。 |
配置
输入端口
输入端口可以通过将特征流连接到连接输入端口,或通过将它们添加到呈现规则表的“输入端口”列中。
输入端口也可以在呈现规则表中被重命名、移动和删除。
输出端口
根据参数选择从一组要素中绘制的光栅。
参数
集团 | 如果集团参数设置为属性列表时,每个组将生成一个光栅。 |
||||||||||||
并行处理 | 选择要应用的并行处理级别。默认为No Parallelism。
并行处理
注意:并行处理如何与FME工作:看到了吗对并行处理有关详细信息。 该参数确定变压器是否应该跨并行进程执行工作。属性指定的每个组将启动一个进程集团参数 并行处理水平
例如,在四核机器上,最小的并行性将导致两个同时的FME进程。在8核机器上的极端并行将导致16个并发进程。 您可以试用此特性,并在Windows任务管理器和Workbench日志窗口中查看信息。 |
||||||||||||
输入命令 | 没有:这是默认行为。只有当所有输入都存在时,才会在这个转换器中进行处理。 分组:此变压器将按顺序处理输入组。资产价值的变化集团输入流上的参数将触发当前累积组的批处理。如果组较大/复杂,这将提高总体速度,但如果输入组没有真正排序,则可能会导致不期望的行为。具体地说,在双输入端口转换器上,“顺序”意味着整个组必须在下一组到达两个端口之前到达两个端口,以便转换器按预期工作。这在工作区中可能需要仔细考虑,并且不应与单独排序但不同步排序的两个端口的输入流相混淆。
考虑使用输入按顺序排列
在某些场景中,使用Ordered输入可以提高性能,但是,这并不总是可取的,甚至是可能的。在使用它时,考虑一下下面的内容,包括一输入和两输入变压器。 单一数据集/要素类型:通常是Ordered处理的最佳候选者。如果您知道数据集正确地按集团属性,使用输入按顺序排列可以提高性能,这取决于数据的大小和复杂性。 如果输入来自数据库,则在SQL语句中使用ORDERBY使数据库对数据进行预排序是提高性能的极为有效的方法。考虑使用具有SQL语句的数据库读取器,或者SQLCreator变压器。 多个数据集/功能类型:由于所有的特征都匹配a集团值需要在属于下一组的任何特征(任何特征类型或数据集)之前到达,使用多个特征类型排序比处理单个特征类型更复杂。 来自多个数据集的多个要素类型和要素通常不会以正确的顺序自然出现。 一种方法是通过电子邮件发送所有功能分拣机,按期望排序集团属性分拣机是一个功能保持转换器,收集所有输入功能,执行分拣,然后将其全部释放。然后可以通过适当的过滤器发送它们(TestFilter,AttributeFilter,几何过滤器,或其他),它们不是特性保持的,并将一个一个地向使用的转换器发布特性输入按顺序排列,现在按照预期的顺序。 排序和筛选的处理开销可能会抵消您将从使用输入按顺序排列.在本例中,使用集团不使用输入按顺序排列可能是等效的更简单的方法。 在所有情况下,当使用输入按顺序排列,如果您不确定传入的特征是否正确排序,则应该对它们进行排序(如果是单一特征类型),或者排序然后过滤(对于多个特征或几何类型)。 与许多场景一样,在工作区中使用数据测试不同的方法是确定性能增益的唯一确定方法。 |
此表定义了指定要素渲染方式的图层和符号。
表中的每个条目都包含一个输入端口、一个符号器类型以及该符号器的参数。符号器参数取决于符号器类型。每个符号器的参数说明见Mapnik文档.
请注意,将按照指定的顺序渲染层。这个表中的第一层将首先呈现(也就是说,它将出现在任何后续层的下方)。
规则可以被复制以添加额外的样式。
输入端口 | 层的名称,也反映在工作区中的转换器中。多个要素流可以连接到单个输入端口,应为相同的几何体类型,并具有相同的样式。 |
象征着 | 选择要对特性执行的样式类型。选项包括:
|
风格 | 编辑…将打开一个特定于Symbolizer类型的参数对话框。 |
图层定义
这个参数指定了层的定义。
每个渲染规则都是一个层 | 上表中的每个单独规则将作为单独的层呈现。 |
每个输入端口是一个层 | 每个输入端口将被渲染为一个层。注意,在这种情况下,某些层将包含多个符号。 |
本质上,这决定了呈现规则的绘制顺序。层是按顺序渲染的,在任何下一层的特征之前绘制一个层的所有特征。在一个层中,符号符是按特性应用的。
示例:有表示街道的线要素,每个要素还包含一个指定街道名称的属性。要呈现此效果,可以设置线条符号器和文本符号器。在本例中,您需要首先绘制所有街道,然后将所有标签置于这些街道之上,因此每个渲染规则都是一个层会更合适。
例如:你有重叠的多边形,并且想要为每个多边形绘制一个边界。要呈现这个,您可以设置一个多边形符号化器和一个直线符号化器。在这种情况下,在继续下一个特性之前,您可能希望将每个特性都作为一个多边形和一条线来绘制,所以每个输入端口是一个层会更合适。
注意每个渲染规则都是一个层可以被复制图层定义被设置为每个输入端口是一个层. 为此,只需为每个单独的层添加一个新的输入端口。
尺寸规格 | 选择定义输出光栅大小的方法:
|
列数(单元格) | 如果尺寸规格是列和行,以单元格(像素)输入输出光栅的宽度。 |
行数(单元格) | 如果尺寸规格是列和行,以单元格(像素)输入输出光栅的高度。 |
单元格间距 | 如果尺寸规格是间距,输入输出光栅单元的宽度,以地面单位度量。 |
解释型 | 设置输出光栅的解释类型。选项包括:
|
背景可以用纯色和/或图像填充。如果既不指定颜色也不指定图像,则背景将是透明的。
颜色 | 设置背景颜色。 使用文本框右侧的颜色选择器,或者直接编辑文本框的内容。 颜色必须指定为 |
颜色Alpha值(0-1) | 设置背景色的alpha值。 它必须是一个介于0和1之间的数字,其中0是完全透明的,1是完全不透明的。 |
形象 | 选择要用作背景的图像文件。如果图像小于输出光栅的范围,它将被平铺。 背景图像不会使用地理参考-要使用地理参考光栅,将它连接到输入端口并使用呈现规则表格 |
地面区段 | 如果使用输入数据接地扩展,区段没有明确指定,输出光栅区段将由有效输入向量特征的边界框的并集决定。 如果指定地面范围,其余的“地面范围”参数用于指定输出光栅的范围。 输出光栅将被剪裁到指定的范围。 |
最小X | 这将指定输出光栅的最小x值。当地面区段参数设置为指定地面范围. |
最小Y | 这指定了输出光栅的最小y值。它用于地面区段参数设置为指定地面范围. |
最大X | 它指定输出光栅的最大x值。它用于地面区段参数设置为指定地面范围. |
最大Y | 这将指定输出光栅的最大y值。当地面区段参数设置为指定地面范围. |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配转换器参数。更高级的函数,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击除适用参数外。有关更多信息,请参见变压器参数菜单选项.
定义值
有几种方法可以定义在转换器中使用的值。最简单的方法是简单地键入值或字符串,其中可以包括各种类型的函数,如属性引用、数学和字符串函数以及工作空间参数。有许多工具和快捷方式可以帮助构造值,通常可以从值字段旁边的下拉上下文菜单中获得。
使用文本编辑器
Text Editor提供了一种方便的方法来从各种数据源(如属性、参数和常量)构造文本字符串(包括正则表达式),其中结果直接在参数中使用。
使用算术编辑器
算术编辑器提供了一种方便的方法来从各种数据源(如属性、参数和功能函数)构造数学表达式,其中结果直接在参数中使用。
有条件的值
根据一个或多个通过或失败的测试条件设置值。
内容
表达式和字符串可以包含许多函数、字符、参数等等——无论是直接在参数中输入,还是使用其中一个编辑器构造。
参考文献
加工行为 |
|
功能持有 |
对 |
依赖关系 | 没有一个 |
FME授权级别 | FME专业版及以上 |
别名 | |
历史 | |
类别 |
FME社亚搏国际在线官网区
FME社区是演示亚搏国际在线官网、操作指南、文章、常见问题解答等的场所。获取您问题的答案,向其他用户学习,并对新功能提出建议、投票和评论。
搜索所有关于MapnikRasterizer的结果在FME社区。亚搏国际在线官网
示例可能包含根据开放政府许可证(温哥华)许可的信息