Encontre a interseção de duas rasters

9

Eu tenho duas imagens raster, classificadas como booleanas (1 ou 2). Eles se sobrepõem em determinadas áreas.

Eu preciso de uma varredura que é apenas as seções sobrepostas.

Usando o Arcinfo 10. A resposta pode usar apenas métodos raster, sem conversão em polígonos, pontos, etc.Apenas para referência, aqui está uma captura de tela.

Thad
fonte
Ambas as respostas estão corretas, a primeira é mais elegante, mas eu decidi dar o segundo crédito, pois foi o mais útil para mim.
Thad

Respostas:

8

Parece uma operação de corte bem simples. Use a ferramenta Clipe (Gerenciamento de dados) .

Na documentação da ajuda:

Uma camada raster ou vetorial existente pode ser usada como a extensão do clipe. Se você estiver usando uma classe de recurso como extensão de saída, poderá recortar a varredura pelo retângulo mínimo delimitador da classe de recurso ou pela geometria do polígono dos recursos. Se a geometria de recorte for usada, a profundidade de pixels da saída poderá ser promovida. Portanto, você precisa garantir que o formato de saída possa suportar a profundidade de pixel adequada.

Na verdade, isso deve ser mais simples do que o seu requisito, pois utiliza funções principais e nem deve exigir a extensão do Spatial Analyst , como outros métodos.

-------------- Editar

Por outro lado, se seu objetivo é criar uma varredura que mostre onde as duas entradas eram nulas, ou uma delas tinha um valor ou ambas tinham um valor, você usaria a Multiplicação de Varredura . Isso basicamente cria uma varredura de saída que possui valores que são os múltiplos dos valores dos rasters de entrada. Observe que o que se segue requer a extensão do Spatial Analyst.

Um exemplo, no seu caso, com rasters booleanos.

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

Se você deseja determinar quais de suas entradas têm um valor verdadeiro, precisará reclassificar uma das rasters de entrada para que seus valores multiplicados sejam completamente exclusivos. Ambas as entradas precisarão ser reclassificadas para que não exista um valor "1", pois isso permitirá duplicar valores em uma varredura multiplicada.

Exemplo:

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

Você pode fazer uma combinação dessas operações em que recorta um dos rasters pelo outro, para mostrar apenas a área sobreposta. Em seguida, reclassifique e multiplique os separadores para mostrar onde ambos são falsos, um ou outro é verdadeiro ou ambos são verdadeiros.

Espero que isto ajude.

Get Spatial
fonte
Eu continuo recebendo um erro de extensão de saída. Ou um erro de máscara. Tão frustrante ... Nunca se deparar com isso antes.
Thad
NVM. Acho que tenho um problema de projeção. ou seja, essas funções não suportam projetos dinâmicos ... portanto, não se sobrepõem no que diz respeito às funções envolvidas.
Thad
@ Had - Eu tentaria reprojetar um dos rasters para corresponder à projeção do outro. Use a ferramenta Rasterização de projeto encontrada nas ferramentas de gerenciamento de dados. Ou use o código python para fazer isso programaticamente como parte do seu fluxo de trabalho.
Get Spatial
Sim, eu fiz isso e funcionou perfeitamente.
Thad 23/05
9

Eu suponho que em seus rasters você tenha o valor 1 para branco (de alguma forma área nodata) e 2 para azul / verde.

Portanto, você precisa obter áreas nas quais as duas máquinas têm valor 2.

Isso pode ser facilmente realizado com a Calculadora Raster no ArcGIS.

A expressão terá a seguinte aparência:

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

ou

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

PS esta ferramenta requer extensão Spatial Analyst

Alex Markov
fonte
0

Eu acho que esse método pode ajudá-lo:

  1. arctoolbox >> Data management tools >> Raster >> Rasterprocessing >> Clip arraste e solte sua varredura na entrada e na saída (não importa qual). Agora você tem um shapefile da sua área de sobreposição (chamamos de overlap.shp).
  2. usando extração por máscara, para ambos os rasters:: arctoolbox >> Spatial analyst tools >> Extraction >> Extract by maskinput: o Raster 1, mascarar dados: the overlap.shp. Agora você tem uma varredura de sobreposição de varredura 1 (chamamos de sobreposição1). arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask: input: o Raster 2. mascarar dados: o overlap.shp. Agora você tem uma varredura de sobreposição raster 1 (chamamos de overlap2).
  3. o último passo:: arctoolbox >> Spatial analyst tools >> Map algebraarraste e solte overlap2 e overlap1.

Agora você pode fazer qualquer coisa. Todas as estatísticas que você precisa.

unpointseul
fonte