第8页
第4排
尽管FME提供近500种不同的变压器,在某些情况下,用户可能希望将特定的ArcGIS地理处理工具应用于其数据。在FME的pythoncaller变压器中使用arcpy,工作区作者可以将该工具直接纳入其FME工作流程中,亚搏在线有效地扩展了FME的地理处理能力。
然而,arcpy特征和fme特征具有非常不同的结构,而将arcpy工具应用于基于FME特征的数据是一项非常复杂的任务。
所以,不是试图将数据从一个结构转换为另一个结构,我们推荐的方法是:
在这个例子中,我们将在一组输入多边形上使用arcgis溶解工具。
注:功能性本文中提到的需要获得许可的Arcgis版本与FME安装在同一台计算机上.
源数据:数据.zip
工作区示例:arcpy-示例.fmw
源数据集是一组分区多边形,我们希望在通用分区类别的基础上进行分解。
输入
输出
为此,我们将使用arcpy溶解工具(文档)。
完成的工作区将整个过程包装成一个FME自定义转换器:
这将创建一个通用解决方案,其中,例如,用户可以更容易地选择要分解的功能组的属性。
在定制变压器内部,必须执行许多步骤来准备用于地理处理的数据。
第一步是将特征类型(层/表名称)更改为一致的类型。在这种情况下,我们使用一个attributeCreator用一个称为“pre-dissolve”的功能类型值标记每个功能:
这将是在临时地理数据库中创建的表的名称。
下一步是为此数据创建一个临时文件位置。一个名为temppathnamecreator的特殊转换器用于创建临时位置。然而,因为我们只希望生成一个位置,我们首先用一个采样器将一个特性从其余特性中分离出来,并将这个特性发送给temppathnamecreator。
然后使用variablesetter和variableretriever将临时位置复制到所有其他功能。
注意:当工作区完成时,由temppathnamecreator创建的临时文件夹将自动清理。删除您在其中写入的所有文件。因为我们要把整个地理数据库文件夹放在那里,这很有用。
创建临时地理数据库所需的最后一步是创建模式。为此,通过一个名为方案制定者.
创建架构之后,所有功能都会发送到FeatureWriter,要将它们写入临时地理数据库:
请注意,临时路径名用于定义要写入的位置,fme_feature_type用于定义表名。还要注意,应用了动态模式定义设置,源架构(“来自架构的架构功能”)来自架构设置器转换器创建的架构。
注意:使用动态模式是我们生成可用于任何源数据的通用解决方案的另一种方法。
在开始Arcgis地质处理之前,还需要两个变压器。创建地理数据库之后,FeatureWriter输出一个摘要功能,其中包含作为属性的输出数据集位置。因为(在Windows计算机上)它有向前和向后斜杠的组合,使用StringReplacer变压器清理路径。
最后,使用参数蚀刻器转换器来检索要分解的属性列表,正在从用户参数“group by”提取它。
pythoncaller变压器执行arcpy处理。代码如下:
导入fmeimport fmeobjectsimport arcpy def processfeature(feature):从feature attributes dataset=feature.getattribute(“数据集”)solvefields=feature.getattribute(“组”attrs').split(“,”)arcpy.env.workspace=dataset设置本地变量infeatures=“pre覕dissolve”outFeatureClass=dataset+“/dissolved”覕使用分组属性作为溶解字段执行溶解arcpy.dissolve覕管理(infeatures,排水设施等级,溶解场,“”,“多部分”,“溶解管线”)
此代码从fme属性(feature.getattribute函数)中获取有关数据集的信息,然后使用该信息执行arcpy溶解工具。
一旦python脚本的工作完成,溶解完成后,要将功能恢复到FME工作区,需要一个FeatureReader Transformer。触发python脚本的摘要功能用作输入,通过属性提供源地理数据库位置。
我们在要读取的要素类型中指定了已分解的要素类,这样就不会同时读取原始要素类。清除临时属性后,溶解特性由变压器输出。
同样的过程可以用于任何一次完成整个要素类的arcpy要素处理。
如果ARCGIS与FME在同一台计算机上可用,它的地质处理工具可以通过使用蟒蛇来扩展FME的功能。特写和特写。
2017-10-04 13:33:05 56.8 0.0致命工厂代理未初始化2017-10-04 13:33:05 56.8 0.0致命F_(Pythonfactory):Pythonfactory未能处理功能有什么建议吗?
2017-10-04 13:54:59 14.3 0.0错误python异常提前谢谢:arcgisonLineFeatures中的幻数错误:b'\x16\r\n'2017-10-04 13:54:59 14.3 0.0错误无法创建python reader'arcgisonLineFeatures'2017-10-04 13:54:59 14.5 0.2 stats已将71487个功能存储到FME功能存储文件'e:\fme\temp\full inspect--1 125-1507143282390.ffs'2017-10-10-04 13:54:59 14.5 0.0 0.0 0.0 0.0;告知14.5:54:54:54:59;0.0;2017-10-10-04 13:54:54:59;14.5;0.0;14.5;14.5;0.5;0.5;13:54:5;0.5;0.5;0.0;0.0.5 0.0 Error无法创建python reader `%0'
?2019安全亚搏在线软件公司|法律