2つのラスターの交点を見つける


9

ブール分類(1または2)の2つのラスターイメージがあります。それらは特定の領域で重なり合っています。

重なり合う部分のみのラスターが必要です。

Arcinfo 10の使用。Answerはラスターメソッドのみを使用でき、ポリゴン、ポイントなどへの変換はできません。参考までに、ここにスクリーンショットを示します。


どちらも正解です。1つ目はよりエレガントですが、2つ目は私にとって最も有用だったので、2つ目のクレジットを与えることにしました。
サド

回答:


8

これはかなり単純なクリッピング操作のようです。使用するクリップ(データの管理)ツールを。

ヘルプドキュメントから:

既存のラスターまたはベクターレイヤーをクリップ範囲として使用できます。フィーチャクラスを出力範囲として使用している場合、フィーチャクラスの最小外接長方形またはフィーチャのポリゴンジオメトリによってラスターをクリップするオプションがあります。クリッピングジオメトリを使用すると、出力のピクセル深度が向上する場合があります。したがって、出力形式が適切なピクセル深度をサポートできることを確認する必要があります。

これは、コア関数を使用し、他のメソッドのようにSpatial Analyst拡張機能を必要としないため、実際には要件よりも単純なはずです。

--------------編集

一方、両方の入力がnullであるか、どちらかが値を持つか、または両方が値を持つかを示すラスターを作成することが目的である場合は、ラスター乗算を使用します。これは基本的に、入力ラスタの値の倍数である値を持つ出力ラスタを作成します。以下ではSpatial Analyst拡張機能が必要になることに注意してください。

ブールラスターを使用した例。

Raster 1:  1,2  
Raster 2:  1,2

Output Raster:  Possible combinations:  1x1,1x2,2x1,2x2 with output values: 1,2,4  
Value 1:  Both Boolean False  
Value 2:  1 or the other, Boolean True  
Value 4:  Both Boolean True

どの入力に真の値があるかを判別できるようにする場合は、乗算された値が完全に一意になるように、入力ラスターの1つを再分類する必要があります。値が「1」にならないように、両方の入力を再分類する必要があります。これにより、乗算されたラスターで重複した値が可能になります。

例:

Raster 1: 1,2 - Use [Raster Addition][4], with a constant of 1 - Output Raster 3  
Raster 2: 1,2 - Use [Multiply Raster][5], with constant of 2 - Output Raster 4  
Raster 3: 2,3  
Raster 4: 2,4

Now, multiply Raster 3 and Raster 4  
Output Raster:  Possible Combinations:  2x2,3x2,4x2,4x3 with output values: 4,6,8,12

Value 4:  Both Boolean False  
Value 6:  Raster 3 True, Raster 4 False  
Value 8:  Raster 4 True, Raster 3 False  
Value 12: both Boolean True

これらの操作を組み合わせて、ラスターの1つを他のラスターでクリップし、重なり合う領域のみを表示することができます。次に、ラスタを再分類して乗算し、両方がFalse、一方がTrue、または両方がTrueの場所を示します。

お役に立てれば。


出力範囲エラーが発生し続けます。またはマスクエラー。とてもイライラします。
サド

nvm。私は投影の問題があると思います。つまり、これらの関数はオンザフライでの投影をサポートしていません...したがって、関係する関数に関しては重複しません。
サド

@Thad-次に、ラスターの1つを再投影して、他のラスターの投影と一致させます。データ管理ツールの下にあるプロジェクトラスターツールを使用します。または、Pythonコードを使用して、ワークフローの一部としてプログラムで実行します。
空間を取得する

ええ、私はそれをしました、そしてそれは完全に働きました。
サド

9

私はあなたのラスターであなたが白(何らかの方法でnodataエリア)の値1と青/緑の値2を持っていると思います。

したがって、両方のラスターの値が2である領域を取得する必要があります。

これは、ArcGISのRaster Calculatorで簡単に実行できます。

式は次のようになります。

("raster1" == 2) & ("raster2" == 2)

または

Con(("raster1" == 2) & ("raster2" == 2), 1, 0)

PSこのツールにはSpatial Analyst拡張機能が必要です


0

私はこの方法があなたを助けることができると思います:

  1. arctoolbox >> Data management tools >> Raster >> Rasterprocessing >> Clip 入力と出力でラスターをドラッグアンドドロップします(どちらでもかまいません)。これで、オーバーラップエリアからシェープファイルが作成されました(ここでは、overlap.shpと呼びます)。
  2. マスクによる抽出を使用して、両方のラスターに対して arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask::入力:ラスター1、マスクデータ:overlay.shp。これで、オーバーラップラスタ1のラスタが作成されました(overlap1と呼びます)。 arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask:入力:ラスター2.マスクデータ:overlay.shp。これで、オーバーラップラスター1のラスターができました(オーバーラップ2と呼びます)。
  3. 最後のステップarctoolbox >> Spatial analyst tools >> Map algebra::overlap2とoverlap1をドラッグアンドドロップします。

これで何でもできます。あなたが必要とするすべての統計。

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