ArcGIS Desktopでポリゴンの重複をカウントしてラスタライズしますか?


17

ポリゴンが重なっているベクターレイヤーをどのようにして、各セルがそのセルを含むポリゴンの数をカウントするラスターに変えるのですか?

1976年から2000年までの火傷エリアのポリゴンを調べており、各ラスタセルに含まれる火の数を確認したいと考えています。

回答:


22

これを3つのステップで行います。ポリゴンをコンポーネントパーツに分割し、オーバーラップをカウントし、ラスタに変換します。これにより、すべてのポリゴンを個別にラスタに変換し、それらのラスタを結合するという潜在的に莫大な計算コストを回避できます。

  1. UnionGeoprocessingメニュー内)は、ポリゴンをパーツに分割します。

    残念ながら、各オーバーラップは出力で複製されます。それは、それをカバーする元のポリゴンごとに同一のコピーを1つ持っています。だから

  2. Dissolve(ここでもGeoprocessingメニューにあります)は、重複するパーツをマージします。ただし、それらを一意に識別する方法を見つけることができます。ダイアログを読みます:最後に、「統計」を計算するオプションがあります。元のポリゴンを識別した可能性のあるフィールドを選択し、カウントを求めます。

    多くの場合、ポリゴン領域と境界線の組み合わせにより、部品が一意に識別されます。そうでない場合は、すべてのフィーチャを区別するのに十分な情報を蓄積するまで、重心の座標などの追加フィールドに幾何学的プロパティを追加できます。

    結果のレイヤーには、ポリゴンのオーバーラップごとに1つのフィーチャがあり、オーバーラップの数をカウントする何らかの「カウント」フィールドがあります。

  3. 属性の「カウント」フィールドを使用して、それをラスターに変換します。


たとえば、いくつかの重複するポリゴンとその識別子と属性テーブルを次に示します。

ここに画像の説明を入力してください

2番目のステップの後、重複の量を記号化するためにすでに使用できるカウントとともに、重複する領域ごとに1つのレコードがあります。

ここに画像の説明を入力してください

残りは簡単です-そして、それはただ一つのラスタライズ操作です。


このベクター法は...限られたメモリを備えたコンピュータ上で、多くの重なりとポリゴンの数十万人に適用された場合を除き、あまりにも、素晴らしい作品
CCN

@ccn ArcGISで処理可能なポリゴンよりも多くのポリゴンがある場合、データセットを処理可能な部分に分割します。出力は、数千個または数百万個ではなく、数個のラスターになります。これは簡単に合計できます。使用のもう1つの利点はUnion、ほぼ同じワークフローで、ポリゴンが複数のデータセットに存在する状況に対処できることです(これは通常、悪いデータベース設計ですが、残念ながら一般的です)。すべての入力データセットを一度に結合するだけです。
whuber

@ccn(続き)これは、ベクトル操作(union)の後にラスタライズを行うよりも、ポリゴンをラスタライズし、ラスタ操作を使用してマージする方がよいのはいつですか?フィーチャが必要以上に詳細にデジタル化されると、ベクトル演算が機能しなくなり、頂点が多すぎます。これらの極端な状況では、ラスターアプローチの方が優れている可能性があります(ただし、最初にポリゴンを単純化することは優れたオプションかもしれません)。ただし、他のすべての状況では、各ポリゴンを個別にラスタライズすることは、コンピューター人間の時間の大きな浪費です。
whuber

1
ベクトルベースのソリューションの場合は+1。ここで物事を理解するために、境界データの書き込みはそれほど大きくありません。たとえば、1984〜2010年のMTBS書き込み境界データセット全体(アラスカを含む米国)には、〜19000個のポリゴンが含まれています。ベクターベースまたはラスターベースのアプローチのどちらでも問題なく機能します。
アーロン

@Aaron視点をありがとう。妥当な解像度(100mなど)で一度に連続したUSAを実行するには、1,500,000,000セルを含む50000列と30000行のラスターが必要です。19,000のこのようなラスターを生成し、組み込みの圧縮を考慮して、19,000 * 1500000000 =約3000億の追加を実行する場合でも、かなりの時間が必要です!代わりに各ポリゴン、たとえば100個の頂点(非常に詳細)を使用する場合、結合には1,900,000個の頂点が含まれ、O(n log(n))操作になります。原則として(ただし、ArcGISではそうではありません)、1秒未満で完了します。
whuber

1

次の投稿には、関連する解決策を見つけることができる多少似た質問があります。ベクターポリゴンシェープファイルからオーバーラップのラスターサーフェスを作成しますか?

この計算が高速でシンプルなラスターアプローチでは、(1)ModelBuilderのSelect By Attributesでイテレーターまたはスクリプトツールを使用して、(1)重複するポリゴンを個別のレイヤーに分離する必要があります(2年ごとに)MAXIMUM_COMBINED_AREAセル割り当てによるポリゴンからラスターへ(同じセルサイズスナップラスターを確保し、範囲がポリゴンのセット全体と同じままであること)-定数フィールド値を使用(例:年フィールドまたはすべて1の行を使用)変換するには(再びModelBuilderをイテレータまたはPythonスクリプトと共に使用して自動化する)、(3)次のSpatial Analystツールを適用します:セル統計 -各ラスターに年などの一意の値がある場合はstatistics_type VARIETYを使用し、すべてのラスターセル値が1である場合はSUM-NoDataを無視することを確認してください。

中間ラスター(以前の変換から)は削除されるか、後続のラスター分析で使用する準備ができています。


アーロンの答えへの私のコメントをご覧ください。)
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.