西班牙
斯潘4
功能强大的FeatureReader和FeatureWriter(FME 2016新增)允许将第三方命令行工具简单集成到FME中。
任何能够以fme支持的格式读取、处理和保存数据的工具、库都可以成为fme工作流的一部分。亚搏在线为了获得更好的可用性,这些外部工具可以打包到一个自定义转换器中,因此用户只处理熟悉的fme接口,而不需要知道工具所需的任何复杂语法细节。
这种集成的一般工作流亚搏在线如下所示。请注意,可以跳过依赖于工作流的大多数组件(以蓝色显示)。亚搏在线唯一需要的部分是组装命令行并执行它(红色显示)。
以下是三种最常见的情况:
上面集成工作流图中的每个步骤都在这里描述。亚搏在线
当命令行界面替换为transformer gui时,创建看起来用户友好的参数是有意义的:不要使用简短的选项,而是使用它们的扩展描述。“choice with alias”用户参数允许在参数获取可直接在命令行中使用的值时显示此类描述。
下面是这样一个参数在命令行中的外观:
在“编辑选项”对话框中:
在向用户公开的变压器图形用户界面中:
某些参数可能需要额外处理。例如,我们可能需要重新计算通过fme“颜色选择器”(例如,“1,0.5,0.25”)到rgb24表示(255127,63)的规格化颜色集。在这种情况下,可以使用parameterfetcher获取参数,使用attributesleater拆分为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文件,但不支持读取。我们可以使用光栅来读取SVG文件ImageMagick,这是一个用于显示、转换和编辑光栅图像和矢量图像文件的免费开源软件套件。它可以读写200多种图像文件格式。
注意ImageMagick不是FME的一部分。你可以从这里下载你的产品http://www.imagemagick.org/
SVGReader自定义转换器允许读取一个或多个svg文件,并用FeatureReader将它们作为栅格导入FME。然后可以以任何受支持的光栅格式存储光栅。注意,有些格式可能需要调整其光栅解释(参见rasterinterpretation tationcoer)。自定义转换器中不使用FeatureWriter。
同样值得注意的是,我们是如何设置背景的颜色和透明度的——参数被设置为一个标准化的FME颜色,然后用AttributeSplitter和AttributeCreator更改为ImageMagick rgba模型:
“rgba (@Evaluate (@floor (@ value (_color {0}) * 255)), @Evaluate (@floor (@ value (_color {1}) * 255)), @Evaluate (@floor (@ value (_color{2}) * 255)),(α)美元)”
下载的模板:svgreader.fmwt
另一个使用ImageMagick的例子。AnimatedGIFWriter通过添加动画GIF支持扩展了FME的写作能力。
使用FME可以更容易地创建地理相关的动画,例如,驱动地图。
工作空间示例展示了如何将背景区段传递给动画的移动部分,这样用户就不必计算动画中栅格化特征的位置。
自定义转换器使用FeatureWriter将背景和所有动画帧保存到临时PNG文件中。ImageMagick将它们组合成GIF。
FME 2016不支持动画gif,所以读取文件并在数据检查器中显示是没有意义的。查看动画最简单的方法是通过网络浏览器:
下载的模板:work2home.fmwt
受欢迎的LAStools软件套件被许多组织广泛用于处理激光雷达数据。为了2016年的FME,我们制作了几个定制的变压器,封装了一些LAStools的仪器。
注意,LAStools套件不是FME的一部分。你可以下载你的LAStools从http://rapidlasso.com/。有关价格和许可信息,请访问http://rapidlasso.com/pricing/和http://www.cs.unc.edu/~isenburg/lastools/LICENSE.txt。
lasground LAStools_lasground_Caller调用。exe, which classifies points as ground and non-ground.
在本例中,FeatureWriter用于在输入转换器之前更改源文件,或者LAStools不支持源点云格式。在这两种情况下,临时的LAS文件创建在临时文件夹和lasground.exe运行在这些文件,否则它直接与源文件:
FeatureReader总是用来把激光产生的结果。exe回到FME。
这个工作流中一个有趣的部分是将原始点云与生成的LAS文件亚搏在线合并在一起。如果源有不被LAS支持的组件,它们将在lasground.exe完成工作后丢失。pointcloudmerge允许通过X、Y和Z将原始点云与结果组合起来:
请注意,如果工具更改了其中一个组件,则XYZ合并将不起作用。
下载LAStools包装变压器:lastoolstransformers.zip
下载模板(包含5个LAStools包装变形金刚的工作空间):lastoolsdemo.fmwt
?2019安全亚搏在线软件公司|合法的