PythonウィンドウとPythonスクリプトツールのパフォーマンスに違いはありますか?


9

PythonウィンドウでPythonスクリプトを実行する場合と、ArcGIS Desktop 10.0のツールボックスからPythonスクリプトツールとして実行する場合で、パフォーマンスに違いはありますか?

ArcPyを使用してArcGISを実行する必要がある場合があります。私の最近の経験では、ツールボックスとpythonウィンドウで同じスクリプトを実行でき、ツールボックスは少し高速のようです。


スタンドアロンスクリプトを使用する場合:Arcmapを開く必要がないため、時間とリソース(CPUとメモリ)を節約できます。今のところ、まともなコンピュータを買う余裕はない。
gm70560 2013年

ツールボックスは、現在のマップドキュメントを操作することもできません。Pythonウィンドウでarcpy.mapping.MapDocument( "CURRENT")を使用できるのに対して、ツールの特定のマップで何かを行うには、mxdをポイントする必要があります。
エセレム

3
@eseglem、CURRENTインプロセスで実行されている限り、キーワードを使用してスクリプトツールで現在のマップドキュメントにアクセスできることは間違いありません。
blah238 2013年

1
@ gm70560スタンドアロンスクリプトを実行すると、一種のArcmapインスタンスを作成する必要があり、時間がかかります。すでに起動しているpythonウィンドウ内。
マシュースネイプ

2
import arcpyスタンドアロンスクリプト(またはツールボックスの一部)として長い時間がかかりますが、ArcMap内ではすでにPythonウィンドウのネームスペースの一部になっています。
Michael Markieta 2013年

回答:


5

Michael Markietaとgm70560の両方が正しいです。大規模なジオプロセシングタスクを実行している場合は、スタンドアロンのpythonスクリプトを使用して実行します。できれば、IDEではなくコマンドラインから起動します。この種のタスクでは、ArcPyのインポートのオーバーヘッドはそれだけの価値があります。

ただし、小さなタスク、特にユーザー入力が必要なタスクは、ArcMapで通常より高速で便利です。ただし、ArcMapを起動するオーバーヘッドがあり、接続するためのダウンタイムがある場合を除きます。 MXDで参照されているすべてのデータベース(低速のネットワーク接続を使用している場合は面倒な場合があります)。

同様に、小さなタスクでもバッチ処理は、ArcMapのツールボックスを使用するよりもスタンドアロンのPythonスクリプトで行う方が良いと思います。インポートヒットを1回しか受け取らず、ArcMapのオーバーヘッドがないためです。

Pythonスクリプトを介して多くの自動ジオプロセシングを行った後、追加の速度と柔軟性が気に入ったので、デフォルトでそれらをスタンドアロンプ​​ロセスとして実行しました。ツールボックスでより高速に実行されるほとんどのタスクは通常、コードを記述しなくてもModelBuilderでそれらをノックアップするほど十分に小さいです。

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