.NET에서 arcpy / python을 호출합니까?


15

파이썬을 .NET ArcGIS Addin 또는 Extension에 통합하는 방법을 보여주는 사용 가능한 예가 있습니까? .NET의 양식 이벤트 (예 : 버튼 클릭)에서 호출하려는 일련의 파이썬 스크립트가 있습니다. 또한 스크립트에서 .NET 양식으로 변수를 설정할 수 있기를 원합니다.

글 머리 기호를 물고 .NET에서 이러한 스크립트를 다시 작성해야합니까, 아니면 파이썬 코드를 래핑하는 간단한 방법이 있습니까?

답변:


25

Arcpy는 본질적으로 ArcObject를 감싸는 래퍼입니다. 그러나 다시 작성하고 싶지 않은 일부 Python 스크립트를 호출하려는 경우 args로 Python 실행 파일을 호출하는 프로세스를 생성 할 수 있습니다.

var startInfo = new ProcessStartInfo() {
   CreateNoWindow = false,
   UseShellExecute = false,
   FileName = pathToPythonRuntime,
   WindowStyle = ProcessWindowStyle.Hidden,
   Arguments = pathToYourPythonScriptYouDoNotWantToRewrite+" "+yourOtherArgsEtc
 };
var exeProcess= Process.Start(startInfo);
//If you need synchronous execution you can do this
exeProcess.WaitForExit();

이것으로도 멋진 멀티 스레딩 작업을 수행 할 수 있습니다.


0

귀하의 질문에서 .NET에 어떻게 결합했는지 확실하지 않지만 데스크톱에 ArcGIS 10.1 이상을 사용하는 경우 Python AddIn 을 사용하는 것이 더 간단한 방법이라고 생각합니다 .

ArcGIS 10.1은 데스크탑 애드 인 제작을위한 언어 목록에 Python을 도입하여 데스크탑 기능을 확장 할 수있는 쉬운 솔루션을 제공합니다. Python 추가 기능 개발을 단순화하려면 Python 추가 기능 마법사를 다운로드하여 사용하여 사용자 정의 유형을 선언해야합니다. 마법사는 추가 기능이 작동하는 데 필요한 모든 필수 파일을 생성합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.