您的位置:首页 > 编程语言

用FME集成第三方工具(无需代码)

2017-10-12 17:56 218 查看
众所周知,FME可以转换很多数据格式,而且可以对你的数据进行很多变换,但是所有这些读模块、写模块和转换器,是否还是无法提供一些你想要的功能呢?

 

通过一些方法可以扩展FME支持更多的读模块,写模块和转换器。传统的方法是利用代码,通过FME自带的某一版本的接口(Plug-in
SDKs)来做嵌入式开发。这个方法和其他方法在下面会分别介绍。不过,这里,针对FME 2016 版本及以上,如果你有第三方命令行工具,他们可以读取、写出或者操作数据,通过制作一个普通的工作空间,就可以把他们集成到FME中了。

 

更具体的讲,你可以通过FeatureReader和/或者FeatureWriter来构建一个自定义转换器。这将把第三方工具的全部能力都带入到我们所熟悉和喜欢的FME工作流程里面来,并且用友好的界面来屏蔽这些工具的复杂配置。

 



  

使用命令行工具 和 使用FME界面的对比

 

 

访问FME
Hub,上面列出了由FME的用户创建的很多自定义格式和转换器。

 

我想变换FME不支持的数据

 

如果你有一个命令行工具可以处理这个数据,那么就可以创建一个自定义转换器。这个自定义转换器需要收集参数(命令行工具运行时需要的参数),使用FeatureWriter保存数据到这个工具希望的格式,然后构建并执行命令行工具来处理数据,最后通过FeatureReader读回这些数据。(学习如何做到这些

 



  

这个数据是使用LAStools工具里面的lasnoise,
lasground, lasheight和lasclassify来处理过的数据

 

我想读取一个FME不支持的数据格式

 

如果你有一个命令行工具可以读取这个格式,并保存到一个FME可以读取的格式,就可以创建一个自定义转换器作为读模块了。这个自定义转换器需要从用户收集参数,来创建一个命令行并执行,然后使用FeatureReader来读取用命令行工具创建的数据。这个数据的要素将离开你的自定义转换器,并导入到任何FME标准的读模块中,这样你就可以做任何操作,并保存到任何FME能支持的格式了。(学习如何做到这些

 



  

这个图像就是由自定义读模块SVGReader生成的,集成了ImageMagick的命令

 

我想转换数据到FME不支持的格式

 

如果你有一个命令行工具可以写入到这个格式,创建一个自定义转换器就可以作为写模块来使用。你的自定义转换器需要收集参数,使用FeatureWriter保存数据要素到临时文件,然后集成命令行工具并对临时文件运行这个命令。这个结果将写入到用户指定的位置,就象普通的FME 写模块一样。(学习如何做到这些



  

这个GIF动画由自定义写模块AnimatedGIFWriter生成的,集成了ImageMagick的命令

 

目前能使用的一些工具和库

 

· LAStools

· ImageMagick

· Orfeo
ToolBox

· FreeCAD

· 查看Wikipedia上的免费图形软件名录,很多用于多种2D和3D格式的开源工具包都可以使用

 

以上这些列出的工具中的一些功能已经被我们的用户或者FME大牛(注意,这里是twitter,请确认你可以访问)集成到FME中了(本文图片展示的例子,都可以在这里下载到模版,用以帮助你学习)

 

如果你有一些工具包或者库,你希望添加到列表里面,请留下附言,我们将添加它。

 

如果我没有第三方工具能实现我需要的功能?

 

读取和写出简单数据:创建自定义转换器

 

如果你了解数据的存储格式,你可以创建读模块作为一个自定义格式。(见FME
Hub中自定义格式的例子)。你可以使用现有读模块(常用的有CSV,Text,XML等)并结合一小部分转换器来重构数据,然后保存工作空间作为一个自定义格式。注意,这个自定义格式是被限定于这个读模块的,而上面所述的自定义转换器可以随意的在工作空间中使用,提供了更多灵活性。

 

对于开发人员:使用脚本

 

通过startup/shutdown
scripts或者下面的转换器,你可以在工作空间中使用Python或者Tcl脚本语言:

 

· PythonCreator

· PythonCaller

· TclCaller

 

对于“严格的”开发人员:使用FME
Plug-in SDK

 

对于开发人员,你可以开发自己的读模块、写模块和转换器,通过FME Plug-in SDK。很多我们的合作伙伴都使用这个工具添加新的功能到FME中。这些天我不太愿意碰代码,所以我让你们自己去了解,而我继续无代码……

 

如果我需要集成FME到我自己的应用呢?

 

如果你希望用FME扩展你的应用(比如直接集成FME到你的软件,象FME
Export for Revit或者Esri
Data Interoperability extension),你可以开发一个嵌入模块来读/写你的格式或者是执行一个FME的工作空间。

 

-----------

 

自定义转换器可以让FME没有限制。FME已经支持数百数据格式和转换器,如今FeatureReader和FeatureWriter带来更多是指日可待的。通过创建一个自定义读模块或者写模块,你可以充分应用FME的全部功能到你的数据,不在乎什么格式。通过创建一个自定义转换器,你可以为数据带来更多的变换功能。你还想扩展什么第三方的工具呢?

 



  

 

使用自定义转换器,你可以变换任何事情!

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐