ArcPyを使用したArcGIS Desktopでのバッチクリッピング?


12

古いバージョンのArcGISについても同様の質問がいくつかありましたが、ArcGIS 10に適した答えは見つかりませんでした。

大きな領域(たとえば、州/県全体)をカバーする2つのポリゴンシェープファイルがあります。最初のシェープファイルは州全体の土地被覆を表し、2番目のシェープファイルは50の個々の流域を表します。流域に基づいて土地被覆シェープファイルをクリップしたいと思います(それぞれがフィールドに格納された一意の名前を持っています)。次に、分水界名を使用して、出力クリップファイル(50の分水界ごとに1つ)を保存します。

実行するクリップが50個あることを考えると、このプロセスはバッチ処理の優れた候補です。


1
古いバージョンのArcGISで何が見つかりましたか?また、ArcGIS 10での使用に適さないものは何ですか?
-nmpeterson

2
@Radarこの質問をご覧ください。gis.stackexchange.com/ q / 8104/1297探しているものを網羅しています。ニーズに合わせて変更するためのサポートが必要な場合は、お知らせください。これを重複の可能性としてフラグを立てました。
-SaultDon

@SaultDon:gis.stackexchange.com/q/8104/1297のソリューションは、ArcGIS 10でも確実に機能すると言っていますか?
whuber

@SaultDon-ArcGIS 10のカーソルにいくつかの変更が加えられ、特定の回答が古くなっています。ハッキングされたバージョンの9.3スクリプトではなく、Arc10に最適なソリューションを見つけたいと思っています。
レーダー

@whuber現状ではなく、明らかでないかもしれない変更が必要です。レーダー-あなたは正しい、彼らはよりシンプルです=)
SaultDon

回答:


17

次のスクリプトは、ポリゴンの集水域をポリゴン郡の境界にクリップし、各出力フィーチャクラスにHspWBD_HU12_countyのような名前を付けます。テスト済みで動作します。NAMEフィールドの値に特別な文字やスペースが含まれていないことを確認してください(単純なPython文字列メソッドでクリーンアップできます)。

import arcpy

arcpy.env.workspace = r'D:\Projects\GDBs\slowbutter.gdb\IPAS'
rows = arcpy.SearchCursor('HspAOI')
for row in rows:
    feat = row.Shape
    arcpy.Clip_analysis('HspWBD_HU12', feat, 'HspWBD_HU12_' + str(row.getValue('NAME')), '')

古典的なタイプのカーソルでも絶対に完璧!!
イスラム教

8

ArcGIS 10を使用する場合、組み込みツールであるModelBuilderを使用して、このタスクを実行するための反復機能の選択を行います。写真の擬似モデルを参照してください。Pythonスクリプトを知る必要はまったくありません。 擬似モデル


このアプローチのより詳細な説明については、特定のスタディエリアのワークスペース全体簡単にクリップする、および関連するクリップワークスペースジオプロセシングツールパッケージを参照してください。:また、スタック上に、ここで探検gis.stackexchange.com/questions/84989/...
マットウィルキー


-1

別のツールを最初にバッチモードで実行する場合は、変換ツール>ジオデータベースへ>フィーチャクラスからフィーチャクラスへ、必要に応じてこれを実行できます。これにより、エクスプレッションを使用して流域レイヤーを取得し、各流域を個別に引き出して独自のフィーチャクラスとして保存すると、バッチモードのクリップツールで使用できる50個のレイヤーが作成されます。


2
私は答えに感謝しますが、これは非常に効率的な解決策ではないようです。50個の分水界ファイルを作成してから、さらに50個のクリップされたファイルを作成したくない。
レーダー

-1

ArcGIS の分割ツールはまさにこれを行います。

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