Compreendendo os valores mínimo e máximo com Mosaic to New Raster?

14

Eu tenho que combinar vários rasters DEM em um desta fonte: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp , então eu uso a ferramenta Mosaic to New Raster.

Eu configurei a ferramenta:

  1. Eu insiro os rasters (todos da mesma fonte, mesmo tamanho e sem projeção);
  2. Configure o Tipo de pixel (ponto flutuante de 32 bits, como nos rasters originais);
  3. Configure o tamanho da célula como os rasters originais;
  4. Número de bandas = 1 como os rasters originais; Operador de mosaico, eu fiz isso com BLEND e MEAN (obtenho o mesmo resultado).

O problema que tenho é que o mosaico resultante mostra uma faixa diferente de valores máximos e mínimos que os valores máximos e mínimos da varredura individual, por exemplo, varredura 1 (-5123,8, 23,25), varredura 2 (-5974,6, 40,09), varredura 3 (-57770,2, 38), quadriculação 4 (-2534,3, 23,55) e quadriculação final em mosaico (-5975,8, 81,1).

Eu acho que essa solução não está certa, pelo menos eu não esperava isso. Alguém tem uma idéia se isso está ok, e se não estiver, como resolvê-lo e obter uma varredura de mosaico adequada com os valores máximos e mínimos corretos?

Estou usando o ArcGIS 10.2.2 for Desktop.

tom
fonte
Você poderia nos dizer como encontrou as estatísticas para os rasters de entrada e saída? Às vezes, no interesse da eficiência, o ArcGIS trapaceia e usa apenas um subconjunto dos dados para estimar as estatísticas. Em particular, isso significa que pode ser muito distante nos relatórios de mínimos e máximos.
whuber
Obrigado pelo seu interesse. Clico com o botão direito do mouse na camada (rasters iniciais e mosaico) e olho para Propriedades. Vale ressaltar que eu verifiquei para alternar os valores de cada varredura na simbologia de Streched para valores exclusivos, e acontece que, se eu mudar para os valores Streched para todas as camadas, ele corresponderá ao valor mínimo Streched de uma camada e a max Streched value de outro, para os valores mínimo e máximo que vejo quando o mosaico é criado. Alguém poderia me explicar se o procedimento ainda está correto, e essas diferenças entre os valores Streched e Uniques? Obrigado!
tom
2
Eu suspeito que a guia "Propriedades" esteja trapaceando. Para mais informações, consulte gis.stackexchange.com/questions/8780 .
whuber
1
Obrigado. Nunca pensei na possibilidade de a guia "Propriedades" estar trapaceando. Talvez isso possa ser esclarecido se soubermos que o motivo por trás do ArcGIS fornece valores diferentes para valores Streched e Unique em Symbology, para uma única camada raster. Alguém saberia o porquê?
tom

Respostas:

10

Como mencionado anteriormente, muitas vezes as estatísticas encontradas nas propriedades da varredura são às vezes aproximadas ou desatualizadas. São propriedades predeterminadas que podem ser enganosas para os valores reais da varredura.

Calculou seus próprios valores mínimo / máximo de 100% dos dados reais usando matrizes NumPy. Consulte Trabalhando com NumPy no ArcGIS e RasterToNumPyArray (arcpy) . Por exemplo:

import arcpy

inrast = r'C:\data\inRaster.tif'
my_array = arcpy.RasterToNumPyArray(inrast)
print((my_array.min(), my_array.max()))

Se você tiver valores ausentes (NODATA), será necessária uma matriz mascarada para obter as estatísticas corretas:

import numpy as np
my_array = arcpy.RasterToNumPyArray(inrast)
my_masked_array = np.ma.masked_equal(my_array, arcpy.Raster(inrast).noDataValue)
print((my_masked_array.min(), my_masked_array.max()))

Além disso, você não precisa do ArcGIS para ler rasters como matrizes NumPy; por exemplo, GDAL ou rasterio podem fazer o mesmo .

Mike T
fonte
6

Como as outras respostas dizem, as estatísticas provavelmente estão desatualizadas. Se você preferir usar o ArcGIS, tente a ferramenta Calcular Estatísticas na caixa de ferramentas Gerenciamento de Dados. Isso deve atualizar as estatísticas para você.

Martin
fonte