SPAN8.
SPAN4.
一对强大的FeatureReader和FeatureWriter(在FME 2016中新增)允许将第三方命令行工具简单地集成到FME中。
Any tool, any library that is able to read, process and save data in formats supported by FME can become a part of an FME workflow. For better usability, such external tools can be wrapped up into a custom transformer, so a user deals only with a familiar FME interface with no need to know any of the complicated syntax details a tool requires.
这种集成的一般工作流亚搏在线程如下所示。请注意,可以跳过根据工作流程的大多数组件(以蓝色显示)。亚搏在线唯一必填部件正在组装命令行并执行它(以红色显示)。
以下是三个最常见的方案:
上面的集成工作流图中的每个步骤都在这里描述。亚搏在线
当命令行界面被transformer GUI替换时,创建看起来用户友好的参数是有意义的:不要使用简短的选项,而是使用它们的扩展描述。“Choice with Alias”用户参数允许显示这样的描述,而参数获取的值可以直接在命令行中使用。
以下是此类参数在命令行中的外观:
在“编辑选项”对话框中:
在变压器的GUI暴露给用户:
某些参数可能需要额外处理。例如,我们可能需要通过FME“color Picker”(例如,“1,0.5,0.25”)到RGB24表示(255127,63)重新计算标准化颜色集。在这种情况下,可以使用ParameterFetcher获取参数,使用attributespliter将其拆分为R、G和B部分,并使用AttributeCreator将其组装成所需的字符串。有关更多详细信息,请参阅下面的SVGReader。
外部工具的路径可能需要或不需要作为参数发布。对于在组织中使用自定义转换器,最好在转换器的命令行中对没有经验的用户隐藏路径。FME专业人员必须负责设置变压器。如果要跨组织共享工具(例如,通过FME Store),最好发布路径:
虽然可以使用常规的FME转换器为临时输入和输出文件生成唯一的名称,但是在TCL转换器中使用特殊的TCL命令更可靠。命令的语法如下所示:
FME\u TempFilename<文件名\u前缀><文件名\u后缀>
它在FME Temp文件夹中创建具有唯一名称的空文件。
例如,如果我们想创建一个临时文件来使用ImageMagick实用程序之一,我们可以编写以下TCL表达式:
表达式将生成类似于此的名称:
C:\用户\ username \ appdata \ local \ temp \ imagemagick_1453409310204_7104.png
现在,此名称可用于进行命令行,设置为变换器参数并使用某些内容填充文件。
根据工作流的不同,可能需要将中亚搏在线间文件保存到某个临时位置或直接使用源文件。例如,当我们使用LAStools进行地面分类时,我们可以首先剪裁感兴趣的区域,然后只对原始点云的这一部分进行分类。另一个例子是LAStools不支持源格式。在这种情况下,我们需要制作临时LAS文件。
使用TCL命令保留的文件名(见上文)和FilenamePartExtractor transformer,我们可以创建属性,指定临时输出数据集的路径和文件的根名称:
之后,在Featurewriter中使用这些属性很容易:
命令行可以直接写在SystemCaller转换器中,也可以用AttributeCreator作为属性,然后在SystemCaller中使用。
命令行应包括:
以下是一些例子:
“$(imagemagickconvert)”--delay $(delay)@value(_imagemagick_sequence_file)-loop $(loop)$(gifoutput)“
“$(lastool)”-i“@value(_input)”-o“@value(_lastools_temp_output)”-scale_u $(theedstoragescale)$(theedstorage)“
始终确保命令中的路径以及整个命令都有周围的双引号 - 这有助于避免在路径中的某些字符的潜在问题,例如空格。
在某些情况下,组装的命令线可能变得太长超过允许的极限。在Windows上,限制为8192个字符。有几种可能的方法可以解决这个限制。例如,代替列出命令行中的所有文件,可以使用通配符,请参阅AnimatedGifwriter示例。或者通过选择靠近root的FME_TEMP文件夹位置来使用更短的文件夹和文件。例如,而不是c:\ users \ username \ appdata \ local \ temp \,使用e:\ fme_temp \
组装的命令行属性转到SystemCaller,它执行进程并在继续工作空间的其他部分之前等待结果。外部工具还可以报告回日志窗口作业或错误消息的状态。
一旦外部工具完成了它的工作并进行了一些输出,FME就可以用FeatureReader将输出带回进行进一步的处理。在某些情况下,可能需要将处理后的数据与原始数据合并。
例如,Lastools不支持的格式的点云可能需要与处理后的数据加入以保留原始组件。这可以通过源和处理点云的x,y和z的pointcloudmerger来完成。
外部处理完成后,数据恢复到正常的FME工作流,我们可能需要删除临时文件。可以通过操作系统命令,例如SystemCaller中的“del”,例如:亚搏在线
del“@值(\u lastools\u temp\u input)”/Q
在处理点云和光栅的某些情况下,使用FMEFunctionCaller发出以下FME命令更可靠:
@geometry(delete_source_dataset)
此转换器可以在读取几何图形后立即放置,也可以稍后放置-在特征几何图形仍然存在的任何位置。当不再需要temp文件时,transformer会立即将其删除(例如,如果其几何体在FME工作流中被破坏或转换结束)。亚搏在线
请注意,操作系统“del”命令和@Geometry(DELETE\u SOURCE\u DATASET)函数都应谨慎使用,以避免在外部进程使用原始源数据或临时文件之前或期间删除它们。
本文中描述的通用集成工作流不必放入自定义转换器中亚搏在线。但是,创建这样一个转换器可以更容易地将外部工具完成的任务与主工作区分开。调试、更新或修改单个自定义转换器比调试、更新或修改整个工作区更容易,因为整个工作区可能非常大和复杂。通过右键单击自定义转换器并选择“编辑”,可以轻松修改此处显示的所有示例。变压器将在新的工作台选项卡中打开。了解它是如何工作的,并且可以按照您需要的方式随意更改它—添加或删除选项、更改执行转换的工具、将参数转换为不同的语言,或者将一些工具链接到一个转换器中(如果这在您的工作环境中有意义的话)。
SVG(Scalable Vector Graphics)是一种XML-based矢量图像格式用于支持交互和动画的二维图形。FME支持编写SVG文件,但不支持读取。我们可以使用ImageMagick.,一个免费的开源软件套件,用于显示、转换和编辑光栅图像和矢量图像文件。它可以读写200多种图像文件格式。
请注意,ImageMagick不是FME的一部分。您可以从此处下载您的产品副本 -http://www.imagemagick.org/
Svgreader自定义变形器允许读取一个或多个SVG文件并将其作为带有FeatureReader的Rasters作为Rasters。然后栅格可以存储在任何受支持的栅格格式中。请注意,某些格式可能需要调整其栅格解释(请参阅RasterInterpretationCoercer)。此自定义变压器中不使用featurewriter。
另外值得注意的是,我们如何设置背景的颜色和透明度-参数设置为标准化的FME颜色,然后使用AttributeSplitter和AttributeCreator更改为ImageMagick rgba模型:
“rgba(@evaluate(@value(@value(_color {0})* 255)),@评估(@floor(@value(_color {1})* 255)),@评估(@floor(@Value(_color {2})* 255)),$(alpha))“
Download the template:svgreader.fmwt.
另一个例子使用imagemagick。AnimatedGifwriter通过添加动画GIF支持来扩展FME的写入功能。
Using FME allows much easier creation of the georeferenced animations, for example, driving maps.
工作区示例演示如何将背景范围传递到动画的移动部分,以便用户不必计算动画中光栅化特征的位置。
自定义转换器使用FeatureWriter将背景和所有动画帧保存到临时PNG文件中。ImageMagick将它们组合成GIF。
FME 2016不支持动画GIF,因此将文件读回并在Data Inspector中显示是没有意义的。查看动画的最简单方法是通过web浏览器:
Download the template:工作2主页.fmwt
受欢迎的最后的软件套件被许多组织广泛用于处理激光雷达数据。对于FME 2016,我们制作了几个定制变压器,其中包含一些LAStools仪器。
请注意,Lastools套件不是FME的一部分。您可以从Lastools副本下载http://rapidlasso.com/. 有关定价和许可信息,请访问http://rapidlasso.com/pricing/和http://www.cs.unc.edu/~isenburg/lastools/LICENSE.txt.
LAStools\u lasground\u来电lasground.exe文件,它将点分为地面点和非地面点。
在这个例子中,FeatureWriter时使用urce file was changed before entering the transformer, or the source point cloud format is not supported by LAStools. In these two cases, the temporary LAS files are created in the TEMP folder and lasground.exe runs on these files, otherwise it works directly with the source files:
FeatureReader始终用于显示生成的结果lasground.exe文件回到FME。
此工作流的一个有趣部分是将原始点云与生成的LAS文件合并亚搏在线。如果源中有LAS不支持的组件,则这些组件将在lasground.exe文件完成任务。PointCloudMerge允许通过X、Y和Z将原始点云与结果相结合:
请注意,如果工具更改其中一个组件,则通过XYZ进行合并将不起作用。
下载LastTools包装变压器:lastoolstransformers.zip文件
下载模板(包含带5个Lastools包装器变压器的工作区):lastoolsdemo.fmwt文件
©2019安全亚搏在线软件公司|法律