Как установить входные и выходные параметры в arcobjects с помощью C #, который вызывает скрипт Python? - PullRequest
2 голосов
/ 28 марта 2012

Я написал скрипт python для геообработки данных ArcGIS и установил рабочее пространство, входные и выходные параметры внутри кода Python следующим образом:

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

Поскольку я новичок в ArcObjects, использующим c # в Visual Studio 2010,Я пытаюсь использовать надстройку ArcMap, чтобы добавить кнопку на рабочий стол ArcMap.Но я не знал, как вызвать этот скрипт на Python из c #, получить что-то вроде всплывающего окна с текстовым полем и запросить информацию о пути входных и выходных параметров.Поскольку я напрямую вызываю python, он не работал с командой GetParameterAsText внутри кода python.

Я очень ценю, если кто-то там может помочь в этом деле.Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 15 апреля 2012

В справке .NET Developer есть пример на страницах Esri: 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, но иногда их трудно найти; -)

1 голос
/ 06 ноября 2012

ArcPy не поддерживает IronPython , выдает ошибку «не удается загрузить библиотеку arcgisscripting». Я полагаю, что проблема в том, что IronPython не поддерживает файлы pyd , которые содержатся внутри.

ESRI предлагает следующий образец для использования ArcPy в .net

0 голосов
/ 28 марта 2012

Найдена пара опций:

  1. Использовать библиотеки IronPython для загрузки скриптов Python и вызова методов непосредственно из кода C #.Хорошая статья с примером кода и подробным объяснением для каждого шага найдена здесь .

    или

  2. Использование Process.Start () для выполнения сценария с использованием исполняемого файла Python

Предпочтительным методом будет вариант 1. Кажется, что это более «полное» решение, позволяющее вызывать методы сценария Python непосредственно из C #, а также допускающие исключенияпузыритьсяС опцией 2 вы полностью зависите от отдельного процесса Python для обработки ошибок и ведения журнала.

Я не решался предоставить вариант 2, но это может потребоваться, если вы не можете заставить модуль arcpy игратьхорошо с IronPython.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...