如何使用调用python脚本的c#在arcobjects中设置输入和输出参数?

2024-05-13 00:57:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个python脚本来处理ArcGIS数据,并在python代码中设置工作区、输入和输出参数如下:

env.workspace = arcpy.GetParameterAsText(0)
# input feature class 
inFeatures = arcpy.GetParameterAsText(1)
# output feature class
Transect_featureclass = arcpy.GetParameterAsText(2)

由于我不熟悉在VisualStudio2010中使用c#的ArcObjects,所以我尝试使用ArcMap插件将按钮添加到ArcMap桌面。但是我不知道如何从c#调用这个python脚本,然后获得类似文本框弹出窗口的内容,并询问有关输入和输出参数路径的信息。因为我直接调用python,所以它不能与python代码中的GetParameterAsText命令一起工作。在

如果有人能帮上忙,我非常感激。提前谢谢。在


Tags: 数据代码env脚本inputoutput参数workspace
3条回答

ArcPy不支持IronPython,它给出错误“cannot load library arcgisscripting”。我相信问题是IronPython does not support pyd files其中包含了arcgisscripting。在

ESRI为leveraging ArcPy in .net提供以下示例

找到了几个选择:

  1. 使用IronPython库加载Python脚本并直接从C代码调用方法。这篇文章很好,包含示例代码和找到的每个步骤的详细说明here。在

  2. 使用Process.Start()使用Python可执行文件执行脚本

首选方法为方案1。它似乎是一个更“完整”的解决方案,它允许Python脚本方法直接从C#调用,同时也允许异常冒泡。对于选项2,您完全依赖于用于错误处理和日志记录的单独的Python进程。在

我犹豫是否提供选项2,但是如果您不能让arcpy模块很好地使用IronPython,那么它可能是必需的。在

在Esri页面的.NET开发人员帮助中有一个示例: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Walkthrough_Consuming_a_geoprocessing_model_tool_in_NET/0001000001sw000000/

通过它,您应该已经学会了如何从ArcMap调用地理处理工具。你必须做一个包含python脚本的工具箱。这可以用.NET代码调用(请参阅演练)。在

Esri的基本内容有时很难找到;)

相关问题 更多 >