私にとって、あなたの質問が示唆するように、私は特にバッチ処理を自動化するためだけでなく、反復可能な専門家の計算を作成するためにもPythonを使用しています。最近では、フリーランスのGISコンサルタントとしてESRIライセンスを購入する余裕がないため、ArcPyを使用していません。GDAL / OGR、Shapely、PostGIS、Numpy、SciPyを頻繁に使用しますが、リストのすべてをArcPyで実行できます(一部はそうでした)。例は次のとおりです。
- 最初に2つの異なるデータタイプの20kmのラスタータイルをモザイク化し、それらのラスターでいくつかの「マップマティクス」を実行し、10kmのベクトルポリゴンタイルの同等の領域をマージし、ラスターマップと統計テーブルを元のベクターデータに結合してから、論理ディレクトリ構造のシェープファイルに出力し、クライアントのCDに書き込みます。
- 道路またはトラックに沿って100mごとに連続した可視性計算を実行し、計算の結果をM値としてルートデータに割り当てます。
- ラスターデータとベクターデータのタイルをモザイク化/マージし、必要な領域にクリップし、独自の(非GIS)3D形式に変換することにより、3Dランドスケープモデルを作成する自動プロセス。フリーランスの仕事では、このために開発した小さなPythonライブラリを多く使用しています。
- チームで取り組んだ1つの巨大なプロジェクトでは、ArcPyを使用してバッチプロセスを作成し、GISデータから新しいデータを、手続き型コンピューターゲームアセットジェネレーターで使用できる機能を備えた形式に変換または派生させました。ジオプロセシングスクリプトは、同じくPythonで記述され、Djangoを介して実行されるバッチ処理「スレーブドライバー」によって呼び出されました。
- Pythonは、特に反復がある場合(機能処理による機能など)、小さなタスクでも非常に便利です。ArcGISのモデルビルダーは、バージョン10で導入されたフロー制御により大幅に改善されていますが、それでも、必要な制御を提供できない場合や、ArcPyでプロセスを記述する方が、より速くて簡単ですモデルビルダーを強制します。
- Pythonでスイープパス解析を実行するツールを作成しました(非常に長い車両が特定のルートをたどることができるかどうか、およびトレーラーが建物の間の狭いターンでくさび止められる可能性があるかどうかを計算します。兵器庫。
- Mapnikからの出力の生成
- ArcGISがマルチスレッドになる前に、Pythonを使用してサブプロセスを生成しました。これにより、ArcMapのオーバーヘッドがメモリを乱すことなく、計算が長く、遅くなることがありました。
商業ジオプロセシングのPythonは、Pythonが提供するスクリプトのすべての速度と簡潔さ、およびコンパイルされたCスタイルコードの処理速度を備えているため、Pythonは優れています。Pythonは、多くの連続したジオプロセシングタスクをまとめて保持できる接着剤を提供します。上記のリストは、私が個人的に使用しているもののほんの一部です。「古き良き時代」では、Watchファイルを設定し、ArcInfoにコマンドライン入力を記録してから、AML(Arc Macro Language!を覚えている)をクリーンアップして、再利用可能なジオプロセシングコールのプロセスをAMLと結合します。最近では、PythonまたはC#を接着剤として使用することを除いて、それほど違いはありません。