(ArcGIS)为Arcpy创建新功能

时间:2014-03-29 01:10:33

标签: python toolbox arcpy

作为毕业论文的结果,我正在尝试使用Python脚本为ArcGIS创建一个新的工具箱。问题是我被我的代码卡住了,因为Arcpy中的现有功能都没有我需要做的事情。所以我的问题是,是否可以在Arcpy中创建一个新功能,或者这仅限于ESRI开发人员?

解决此问题的另一种方法是在Spatial Analyst的工具成本距离中实施一些更改。所以我的另一个问题是,我是否可以访问ArcGIS中的本机工具的编码?如果我有,我可以改变它来实现我的目标吗?或者这也受到限制?

谢谢,

加布里埃尔

3 个答案:

答案 0 :(得分:1)

您可以create your own functions使用Python和Python arcpy站点包。 ESRI的所有工具都是专有的,因此大多数都限制访问。您可以检查是否可以编辑ArcToolbox中的工具。例如,您可以看到“成本距离”工具受到限制:

enter image description here

通过右键单击脚本工具可以编辑带障碍的样条曲线工具。

enter image description here

答案 1 :(得分:1)

您可以按照以下帮助为ArcPy创建自己的python工具箱:http://resources.arcgis.com/en/help/main/10.2/index.html#//001500000022000000

还要检查现有工具的环境变量,它可能有一些您正在寻找的选项。

答案 2 :(得分:0)

我知道这已经晚了一年,但我想为那些正在寻找python toolbox帮助的人发布的内容添加一些想法。

出于教育目的,首先在模型构建器中创建模型。这是以新方式使用ESRI专有工具的一种方法。决定你想做什么,看看ESRI在GitHub上的存在。那里的开发人员有很多可以在ArcMap中使用的开源工具。这是一个这样的存储库:GeospatialPython

附注,为存储库做出贡献是一个很棒的简历构建器。

创建工作模型构建器后,在ArcCatalog中右键单击它并选择“导出为Python脚本”。在您喜欢的IDE中打开脚本并开始清理它!

现在你有了一个python脚本,它已经准备好成为一个python工具箱。使用gDexter42的链接并开始工作。

我的团队对python工具箱有一些有趣的用途,我目前正在创建我的第一个。

  1. 我们使用跑步者脚本来调试我们的软件。 (硬编码参数)
  2. 我们对我们一遍又一遍使用的函数使用继承(类BaseToolboxMixin(object):) Stack Exchange Article on Mixins
  3. 最重要的是,我们围绕该工具创建了自己的python模块。
  4. 我们制作的.pyt文件只是导入arcpy,我们创建的模块,从我们在'toolbox_loader.py'文件中创建的列表中执行模块,并且有一个调用 init 的类首先创建模块的文件。 > 20行代码。
  5. 当我们的团队为module / python工具箱创建更多工具时,我们会将它们添加到列表中。它们将与所有ESRI工具一起出现在我们的工具箱中。今年的开发者峰会上,“无缝集成”被大量抛出。
  6. ESRI鼓励创造力和开源使用(查看esri传单)。我不会限制我的想法,因为ESRI的工具是专有的。

    所有这些功能都是在ArcMap中作为模型开始的。不是每个人都需要创建自己的模块 - 对于大多数任务来说完全过度 - 但是很高兴知道Python功能的上限很高。我不是一个经验丰富的开发人员,但我能够在大约25个工时的工作中从零开始到功能性python工具箱。知道他们的东西的人可以在早上做到。