Valores NoData reconhecidos em raster no ArcGIS Desktop, mas não seguindo as regras de simbologia?

9

Eu tenho uma varredura GeoTIFF no ArcGIS Desktop, que pode ser baixada nos dois links a seguir:

  1. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tfw
  2. http://www.rtwilson.com/downloads/MODIS_MOD04_16-06-2006_Subset.tif

Se você carregá-los no ArcGIS Desktop, verá grandes áreas uniformes. Clicar nessas áreas com a ferramenta Informações mostra que o valor do pixel é Sem dados. No entanto, quando você escolhe exibir valores sem dados como transparentes (ou como qualquer cor) nas preferências de simbologia da camada, os valores sem dados não seguem essa regra.

Curiosamente, os valores Sem dados fora da área principal da imagem seguem a regra (defina a cor para vermelho para ver isso), mas os valores dentro da imagem não.

Eu realmente lutei para tentar resolver esse problema - e não consigo descobrir como fazê-lo.

Alguém tem alguma idéia?

robintw
fonte

Respostas:

3

Fiz o download do arquivo e o converti em uma matriz numpy e, quando faço um loop sobre os valores da matriz, vejo que recebo -3.40282347e + 38 e NaN como valores nodata. Talvez você possa reclassificá-los para valores para um ou outro, para que todos os valores de nodata sejam os mesmos.

Você pode usar a ferramenta reclassificar arcpy.sa.setnullou tenho certeza que o numpy tem algumas funções sofisticadas que poderiam fazer isso se você converter a imagem em uma matriz numpy.

A tradução de Gdal também pode ser útil se você quiser seguir o caminho de código aberto.

dango
fonte
Você tem alguma idéia de como posso reclassificar esses valores? Parece que não consigo fazer o ArcGIS reconhecer nada para o NaN, e ele não parece lidar com o valor muito baixo (basicamente o NaN parece - pois esse é o intervalo de flutuadores no Arc) também.
22812 robintw
Se fosse eu, converteria cada imagem em uma matriz numpy, passaria um loop sobre a matriz, convertendo todos os valores de nodata para -9999 ou o que quer que fosse, e depois transmitiria a matriz de volta para uma imagem. Tenho certeza de que há uma maneira mais inteligente de fazê-lo, mas não trabalhei tanto com o numpy.
Dango
se você decidir usar o método sugerido acima, talvez queira usar a função python math.isnan () para identificar valores de NaN.
Dango
4

Definitivamente, há algo muito descolado com esse arquivo / dados.

Você está certo em que o ArcGIS mostra dois tipos diferentes de NoData, embora os atributos mostrem a mesma coisa. O QGIS também faz isso. Não tenho absolutamente nenhuma idéia do que está acontecendo nos dados (mas meu palpite seria que existem dois valores "noData" diferentes sendo usados ​​nos bastidores, um pode ser "nulo" e o outro "-9999", por exemplo), mas estaria interessado saber, talvez alguém possa nos esclarecer.

No entanto, existem algumas soluções possíveis:

Exportar os dados - Se você exportar os dados com a certeza de "usar renderizador", ele começará a funcionar corretamente. Se você não marcar o renderizador de uso, seu novo arquivo terá os mesmos problemas. No lado negativo, isso os converte em dados de 8 bits (0-255). Outra ferramenta pode ser capaz de renderizá-lo novamente, mantendo os dados à medida que flutuam em 32 bits.

Usar classificação - O método de simbologia classificada parece exibir os dois tipos de NoData corretamente (ou seja, a mesma coisa); portanto, use-o se possível e você não deseja alterar os dados. Esticado exibe seu bug relatado e "Valores exclusivos" simplesmente não mostra nada.

(Usando o ArcGIS 9.3.1)

GIS-Jonathan
fonte
Obrigado pela resposta - fico feliz que não sou apenas eu que acho isso estranho. Infelizmente, a simbologia classificada não será adequada para o que eu preciso fazer, mas eu exportarei usando um renderizador no momento. O frustrante é que isso acontece com todos os arquivos que recebo do satélite MODIS usando o sistema de processamento online MODIS. Eu acho que a questão pode muito bem ser dois tipos diferentes de NoData - acho que nesse caso eles podem ser "nulos" e NaN, mas não sei.
22812 robertw
Eu acho que 'Use Classified' é de longe a menos onerosa de todas as técnicas sugeridas para solucionar esse bug. Você pode aproximar quase tudo o que pode fazer no menu 'Esticado' no menu 'Classificado'.
Alexander
2

Acabei de encontrar o mesmo problema - e encontrei uma "solução". Se você multiplicar a varredura por 1,0 com a calculadora, o ArcMap reconhecerá os valores NoData.

Hellski
fonte
1

Teve o mesmo problema com grades ESRI de 32 bits. Os de 16 bits funcionaram bem e o NoData era invisível, mas apareceria preto nos de 32 bits. Corrigido, exportando individualmente e alterando o valor do nodata para -32768, em oposição ao -2147483647 que os 32 bits normalmente possuem.

Kai
fonte
1

Eu tive o mesmo problema. O que funcionou para mim foi exportar a varredura na pasta geodatabase. Se a varredura for exportada para um geodatabase, o arcmap exibirá os valores NoData corretamente.

Fernando Ribeiro
fonte
0

Eu tenho um problema semelhante com imagens Landsat 8-OLI ao executar um mosaico. Os valores "NoData" do lado de fora (plano de fundo) não fazem nada, mas quaisquer blocos de dados ausentes, como remoção de nuvem / sombra no interior, alteram a cor da camada de mosaico de referência. Eu o executei no ERDAS e no Arcmap, ambos com o mesmo resultado. Por alguma razão, isso afeta a simbologia, mas se você usar a ferramenta "Identificar", os valores de pixel estarão corretos. Se você está buscando resultados e não é exibido, deve ficar bem.

Zman3
fonte