span8
span4
功能强大的一对——FeatureReader和FeatureWriter(在FME 2016中新增)——允许将第三方命令行工具简单地集成到FME中。
任何能够以FME支持的格式读取、处理和保存数据的工具和库都可以成为FME工作流的一部分。亚搏在线为了获得更好的可用性,这些外部工具可以封装到自定义转换器中,因此用户只需处理熟悉的FME接口,而不需要了解工具所需的任何复杂语法细节。
这种集成的一般工作流亚搏在线程如下所示。请注意,依赖于工作流的大多数组件都可以被跳过(以蓝色显示)。亚搏在线唯一需要的部分是组装命令行并执行它(以红色显示)。
以下是三个最常见的场景:
上面的集成工作流图中的每个步骤都在这里进行了描述。亚搏在线
当命令行界面被transformer GUI替换时,创建看起来用户友好的参数是有意义的:与其使用简短的选项,不如使用它们的扩展描述。“带有别名的选择”用户参数允许显示这样的描述,而参数获得的值可以直接在命令行中使用。
下面是这样一个参数在命令行中的样子:
在编辑选择对话框:
并在变压器的GUI中向用户公开:
有些参数可能需要额外的处理。例如,我们可能需要通过FME“颜色选择器”(例如,“1,0.5,0.25”)来重新计算规范化的颜色集,以达到RGB24表示(255,127,63)。在这种情况下,可以使用ParameterFetcher获取参数,使用AttributeSplitter将参数分割为R、G和B部分,使用AttributeCreator将其组装成所需的字符串。更多细节见下面的SVGReader。
外部工具的路径可能需要也可能不需要作为参数发布。对于在组织中使用自定义转换器,最好在转换器的命令行中向没有经验的用户隐藏路径。FME专业人员将负责变压器的安装。如果一个工具要在组织间共享(例如通过FME Store),最好发布路径:
虽然可以使用常规FME转换器为临时输入和输出文件生成唯一的名称,但在TCLCaller转换器中使用特殊的TCL命令更可靠。命令的语法如下所示:
FME临时文件名
它在FME TEMP文件夹中创建一个具有唯一名称的空文件。
例如,如果我们想使用ImageMagick实用程序之一创建一个临时文件,可以编写以下TCL表达式:
表达式将生成类似于以下内容的名称:
C:\Users\username\AppData\Local\Temp\ImageMagick_1453409310204_7104.png
现在,这个名称可以用于生成命令行,设置为transformer参数并用一些内容填充文件。
根据工作流的不同,可能需要将中亚搏在线间文件保存到某个临时位置或直接使用源文件。例如,当我们使用LAStools进行地面分类时,我们可以首先剪裁感兴趣的区域并仅对原始点云的这一部分进行分类。另一个例子是LAStools不支持源格式。在这种情况下,我们需要制作临时的LAS文件。
使用TCL命令保留的文件名(见上文)和FilenamePartExtractor transformer,我们可以创建指定临时输出数据集路径和文件根名称的属性:
之后,在FeatureWriter中很容易使用这些属性:
命令行可以直接写在SystemCaller transformer中,也可以使用AttributeCreator作为属性,然后将在SystemCaller中使用。
命令行应包括:
下面是几个例子:
“$(IMAGEMAGICKCONVERT)”-延迟$(延迟)@Value(_ImageMagick_sequence_file)-循环$(循环)$(GIFOUTPUT)”
“$(LASTOOL)”-i“@Value(_input)”-o“@Value(_lastools_temp_output)”-scale_$(HEIGHTSTORAGESCALE)$(HEIGHTSTORAGE)$”
始终确保命令中的路径以及整个命令周围都有双引号-这有助于避免路径中某些字符(如空格)的潜在问题。
在某些情况下,组装的命令行可能过长,超过允许的限制。在Windows上,限制为8192个字符。有几种可能的方法可以克服这个限制。例如,与其在命令行中列出所有文件,还可以使用通配符,请参见AnimatedGIFWriter示例。或者通过选择更靠近根目录的FME_TEMP文件夹位置,对文件夹和文件使用较短的名称。例如,不使用C:\ Users\username\AppData\Local\Temp\,而使用E:\ FME\u Temp\
组合的命令行属性转到SystemCaller,后者执行进程并等待结果,然后再继续工作区的其他部分。外部工具还可以向日志窗口报告作业的状态或错误消息。
一旦外部工具完成了它的工作并输出了一些内容,FME就可以用FeatureReader将输出带回来进行进一步的处理。在某些情况下,可能需要将处理过的数据与原始数据合并。
例如,LAStools不支持的格式的点云可能需要与处理过的数据连接以保留原始组件。这可以通过源点云和已处理点云的X、Y和Z进行点云合并来完成。
外部过程完成后,数据被带回正常的FME工作流程,我们可能需要删除临时文件。亚搏在线这可以通过操作系统命令实现,例如SystemCaller中的“del”,例如:
del“@值(_lastools_temp_input)”/Q
在处理点云和光栅时,使用FMEFunctionCaller发出以下FME命令更可靠:
@几何图形(删除源数据集)
这种变压器可以在读入几何图形之后再放置在任何几何特征仍然存在的地方。当临时文件不再需要时,转换程序会立即删除它,例如,如果它的几何体在FME工作流中被破坏或转换结束。亚搏在线
注意,OS“del”命令和@Geometry(DELETE_SOURCE_DATASET)函数都应小心使用,以避免在外部进程使用原始源数据或临时文件之前或期间删除它们。
本文中描述的一般集成工作流不必放入自定义转换器中亚搏在线。然而,创建这样一个转换器可以更容易地将由外部工具完成的任务与主工作区分开。与整个工作区相比,调试、更新或修改单个自定义转换器更容易,因为整个工作区可能非常大且复杂。右键单击自定义转换器并选择“编辑”,可以轻松修改此处显示的所有示例。转换器将在新的工作台选项卡中打开。了解它是如何工作的,并可以随意更改它-添加或删除选项,更改执行转换的工具,将参数转换为其他语言,或者将一些工具链接到一个单一的转换器(如果这在您的工作环境中有意义的话)。
SVG(可缩放矢量图形)是XML-基于矢量图像格式用于支持交互和动画的二维图形。FME支持写入SVG文件,但不支持读取。我们可以使用raster读取SVG文件ImageMagick,一个免费的开源软件套件,用于显示、转换和编辑光栅图像和矢量图像文件。它可以读写超过200种图像文件格式。
注意ImageMagick不是FME的一部分。你可以从这里下载你的产品副本-http://www.imagemagick.org/
SVGReader自定义转换器允许读取一个或多个svg文件,并使用FeatureReader将它们作为raster导入FME。然后可以以任何支持的光栅格式存储光栅。请注意,某些格式可能需要调整其光栅解释(请参见光栅解释转换器)。此自定义转换器中未使用FeatureWriter。
还值得注意的是,我们如何设置背景的颜色和透明度-该参数设置为标准化的FME颜色,然后更改为ImageMagick rgba模型,其中包含attributeslift和AttributeCreator:
“rgba(@Evaluate(@floor(@Value(@color{0})*255)),@Evaluate(@floor(@Value(@color{1})*255)),@Evaluate(@floor(@Value(@color{2})*255)),$(ALPHA))”
下载模板:svgreader.fmwt公司
另一个使用ImageMagick的例子。通过添加动画GIF支持,AnimatedGIFWriter扩展了FME的编写功能。
使用FME可以更容易地创建地理参考动画,例如驾驶地图。
工作区示例显示如何将背景范围传递到动画的移动部分,以便用户不必计算动画中光栅化特征的位置。
自定义转换器使用FeatureWriter将背景和所有动画帧保存到临时PNG文件中。ImageMagick将它们组合成GIF。
FME 2016不支持动画GIF,因此将文件读回并在数据检查器中显示是没有意义的。查看动画的最简单方法是通过web浏览器:
下载模板:工作之家.fmwt
大众LAStools软件套件被许多组织广泛用于处理激光雷达数据。对于FME 2016,我们制作了几个定制的变压器,其中包括一些LAStools仪器。
注意,LAStools套件不是FME的一部分。你可以从http://rapidlasso.com/.有关定价和许可信息,请访问http://rapidlasso.com/pricing/和http://www.cs.unc.edu/~isenburg/lastools/LICENSE.txt.
LAStools_lasground_Caller调用lasground.exe,它将点分为地面和非地面。
在本例中,如果在输入转换器之前更改了源文件,或者LAStools不支持源点云格式,则使用FeatureWriter。在这两种情况下,临时LAS文件是在TEMP文件夹中创建的,lasground.exe运行在这些文件上,否则它直接与源文件一起工作:
FeatureReader始终用于将lasground.exe生成的结果返回到FME。
此工作流的一个有趣部分是将原始点云与生成的LAS文件合并亚搏在线。如果源具有LAS不支持的组件,则在lasground.exe完成其工作后,这些组件将丢失。PointCloudMerger允许将原始点云与X、Y和Z的结果结合起来:
请注意,如果工具更改了其中一个组件,则XYZ合并将不起作用。
下载LAStools包装变压器:lastoolstransformers.zip
下载模板(包含带有5个LAStools包装器转换器的工作区):拉斯托尔斯德莫.fmwt
©2019安全亚搏在线软件公司法律