西班牙
斯潘4
将python启动脚本添加到工作区是扩展workbench功能的一个好方法。尽管我们鼓励您尽可能使用FME的transformers,但有时有必要利用自定义脚本提供的更大控制。如果您以前没有很多编程经验,那么python是一种很好的语言,因为它简单明了的语法使它易于使用和理解。Python也被选为ArcGIS的默认脚本语言;如果您的计算机上有有效的ArcGIS许可证,则可以在python脚本中使用arcpy模块中的许多地理处理功能,还可以使用ModelBuilder从模型中创建python脚本。
在本例中,我们将创建一个python启动脚本,以便在工作区运行之前进行一些geodatabase清理。我们正在使用的数据集是一个文件地理数据库,它包含一个现有的多边形特征类,它通过关系类链接到注释特征类。当我们试图覆盖polygon类时会出现这个问题;要素类型参数上的“截断表”设置将只截断多边形要素表,不会根据需要删除相应的注释要素。为了使我们的工作区正确运行,我们必须确保在工作区执行之前,两个表都被正确清空,以便可以编写新功能并正确链接。为此,我们将从python启动脚本调用arcpy python模块中的Delete Rows方法,以便在运行工作区之前从两个表中删除所有特性。
首先,我们需要创建一个python脚本。如果您不熟悉使用arcpy编写python脚本,可以使用ArcGIS ModelBuilder将模型导出到python脚本。在本例中,我们创建了一个简单的模型,该模型从geodatabase中的两个表的数据管理工具箱中运行Delete Rows工具。我们将此工具添加到空白模型中,并将其单个参数设置为要清除的表的名称。我们为我们的多边形要素类,我们的注记要素类做到这一点。然后,我们可以从型号菜单中选择导出>到Python脚本并指定一个文件位置导出我们的模型到一个Python脚本如下图所示:
然后,我们可以检查我们的脚本在文本编辑器中的内容,如记事本。内容应该是这个样子:
# - * - 编码:UTF-8 - * -
#---------------------------------------------------------------------------
#samp.py
#创建于:2012年11月5日10:44:15.00000
#(由ArcGIS /模型构建器产生的)
#说明:
#---------------------------------------------------------------------------
#导入ArcPy中模块
进口ArcPy中
#局部变量:
包裹= “C:\\ \\ FMEData资源\\ \\ ESRI的\\ CityData.gdb \\ PropertyData包裹”
Parcel_Ids = “C:\\ \\ FMEData资源\\ \\ ESRI的\\ CityData.gdb \\ PropertyData Parcel_Ids”
#过程:删除行
arcpy.DeleteRows_management(包裹)
#过程:删除行(2)
arcpy.DeleteRows_management(Parcel_Ids)
该脚本进口ArcPy中模块,分配我们在模型构建指定的变量要素类的位置,并调用删除行处理工具。
工作台可以让我们增加一个python脚本在启动时的主工作区之前执行关机时运行,或者您的工作空间运行完毕(成功与否),通过添加脚本作为工作区参数后面。要设置此参数,我们定位导航窗口中的工作空间的参数项,然后展开高级参数如下图所示:
然后,我们请双击“启动 - Python脚本”。这开辟了一个简单的文本编辑器,在这里我们可以在我们的python脚本的内容粘贴。选择并导出Python脚本的内容,从记事本或您选择的文本编辑器中复制并粘贴到启动的Python脚本编辑器。然后点击确定。现在你的Python脚本应该所有设置工作区之前运行。
您也可以使用PythonCaller变压器打电话给你的Python和ArcPy中的脚本。在这里的例子所描述的,你可以结合使用PythonCaller与FeatureReader而不是启动 - Python脚本。同样,FeatureWriter + PythonCaller可以取代关机脚本。
处理FME功能在ArcPy中的脚本是一个有点棘手,并在文章中进行了讨论使用ArcPy中的FME特征处理。
如果您收到类似,当您尝试运行工作区下面的错误信息:
Python异常
这是最有可能的,因为ArcPy中库还没有被添加到PATH环境变量。为了解决这个问题,找到下找到Desktop10.1.pth文件
C:\ Python27 \ ArcGIS10.1 \ LIB \站点包,并在其内容中指定的文件位置添加到“路径”环境变量。根据你的环境,你可能还需要添加
C:\ Python27 \ ArcGIS10.1 \ LIB \站点包本身PYTHONPATH环境变量。
如果你正在使用ArcPro,然后本文可能与您的ArcPy中配置有帮助
如果您在FME 2013收到此错误可能是因为在这个确定的问题文章。因为FME 2013与Visual Studio 2010的编译的ArcPy中模块与FME兼容。运行工作区在2012年FME的构建或升级到ArcGIS 10.2是唯一的解决方法。
附带两个样本的工作空间
ArcpyStartupExample.fmw- 用于在该例子中运行工作空间之前,从删除要素类的行
End_Python_script.fmw- 生成一个形状文件FME构建它之后的空间索引(这可以通过现在的形状作家本身来完成
?2019安全亚搏在线软件公司|合法的