.NETからarcpy / pythonを呼び出しますか?


15

Pythonを.NET ArcGISアドインまたはエクステンションに統合する方法を示す利用可能な例はありますか?.NETのフォームイベント(ボタンのクリックなど)から呼び出す一連のpythonスクリプトがあります。また、.NETフォームからスクリプトに変数を設定できるようにしたいと思います。

弾丸を噛んでこれらのスクリプトを.NETで書き直す必要がありますか、それともPythonコードをラップする簡単な方法がありますか?

回答:


25

Arcpyは基本的にArcObjectsのラッパーであることに注意してください。ただし、書き換える必要のないPythonスクリプトを呼び出そうとしている場合は、引数で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アドインを使用する方が簡単だと思います。

ArcGIS 10.1は、デスクトップアドインを作成するための言語のリストにPythonを導入し、デスクトップ機能を拡張する簡単なソリューションを提供します。Pythonアドインの開発を簡素化するには、Pythonアドインウィザードをダウンロードして使用し、カスタマイズの種類を宣言する必要があります。ウィザードは、アドインが機能するために必要なすべての必要なファイルを生成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.