西班牙
斯潘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_TempFilename
它在FME临时文件夹中创建一个具有唯一名称的空文件。
例如,如果我们想创建一个临时文件来使用ImageMagick工具,我们可以编写以下TCL表达式:
表达式将生成一个类似的名称:
C:\Users\username\AppData\Local\Temp\ ImageMagick_1453409310204_7104.png
现在,这个名称可以用于生成命令行、设置transformer参数并使用一些内容填充文件。
根据工作流的不同,可能需要将中亚搏在线间文件保存到某个临时位置,或者直接使用源文件。例如,当我们使用LAStools进行地面分类时,我们可以首先裁剪感兴趣的区域,然后只对原始点云的这一部分进行分类。另一个例子是,当LAStools不支持源格式时。在这些情况下,我们需要制作临时的LAS文件。
使用TCL命令保留的文件名(见上面)和FilenamePartExtractor转换器,我们可以创建属性,指定临时输出数据集的路径和文件的根名称:
之后,在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 $(HEIGHTSTORAGESCALE) $(HEIGHTSTORAGE)"
始终确保命令中的路径和整个命令周围都有双引号——这有助于避免路径中的某些字符(如空格)可能出现的问题。
在某些情况下,组装的命令行可能会变得太长,超过允许的限制。在Windows上,限制是8192个字符。有几种可能的方法来解决这个限制。例如,与其在命令行中列出所有文件,还可以使用通配符,参见AnimatedGIFWriter示例。或者通过选择靠近根目录的FME_TEMP文件夹位置来为文件夹和文件使用更短的名称。例如,而不是C:\Users\username\AppData\Local\Temp\使用E: \ FME_TEMP \
组装好的命令行属性转到SystemCaller,它执行该过程并等待结果,然后继续处理工作区的其他部分。外部工具也可以向日志窗口报告作业或错误消息的状态。
一旦外部工具完成它的工作并产生一些输出,FME就可以使用FeatureReader将输出带回来进行进一步处理。在某些情况下,可能需要将处理后的数据与原始数据合并。
例如,LAStools不支持的格式的点云可能需要与处理过的数据连接以保存原始组件。这可以通过源和处理过的点云的X、Y和Z进行pointcloudmerge来完成。
外部流程完成后,数据被带回正常的FME工作流,我们可能需要删除临时文件。亚搏在线可以通过操作系统命令,如SystemCaller中的“del”,例如:
德尔“@ value (_lastools_temp_input)”/ Q
在某些情况下,当处理点云和栅格时,使用FMEFunctionCaller发出以下FME命令更可靠:
@Geometry (DELETE_SOURCE_DATASET)
这个变形器可以在读取几何图形后立即放置,或者稍后放置——在任何仍然存在几何图形的地方。一旦不再需要临时文件,transformer就会立即删除它——例如,如果它的几何结构在FME工作流中被破坏,或者转换结束。亚搏在线
注意,应该谨慎使用OS“del”命令和@Geometry(DELETE_SOURCE_DATASET)函数,以避免在外部进程使用原始源数据或临时文件之前或期间删除它们。
本文中描述的通用集成工作流不必放在定制的转换器中亚搏在线。然而,创建这样一个转换器可以更容易地将外部工具完成的任务与主工作区分离开来。与整个工作空间相比,调试、更新或修改单个自定义转换器要容易得多,因为整个工作空间可能非常大且复杂。这里显示的所有示例都可以通过右键单击自定义转换器并选择“Edit”轻松修改。transformer将在一个新的工作台选项卡中打开。学习它是如何工作的和随意改变它你需要的方式,添加或删除选项,改变执行转换的工具,将参数转化为另一种语言,或者一些工具链组合进一个变压器,如果在你的工作环境这是有道理的。
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安全亚搏在线软件公司|合法的