Valori NoData riconosciuti in raster in ArcGIS Desktop ma non seguendo le regole di simbologia?


9

Ho un raster GeoTIFF in ArcGIS Desktop, che può essere scaricato dai seguenti due collegamenti:

  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 li carichi in ArcGIS Desktop vedrai grandi aree uniformi. Facendo clic su queste aree con lo strumento Informazioni, il valore del pixel è Nessun dato. Tuttavia, quando si sceglie di visualizzare i valori Nessun dato come trasparenti (o di qualsiasi colore) nelle preferenze Simbologia per il livello, i valori Nessun dato non seguono quella regola.

È interessante notare che i valori Nessun dato al di fuori dell'area principale dell'immagine seguono la regola (imposta il colore su rosso per vederlo), ma quelli all'interno dell'immagine non lo fanno.

Ho davvero faticato a cercare di risolvere questo problema e non riesco a capire come farlo.

Qualcuno ha qualche idea?

Risposte:


3

Ho scaricato il file e l'ho convertito in un array numpy e quando giro sopra i valori nell'array posso vedere che ottengo -3.40282347e + 38 e NaN come valori di nodata. Forse potresti riclassificarli in valori l'uno o l'altro, quindi tutti i valori dei nodati sono uguali.

È possibile utilizzare lo strumento di riclassificazione arcpy.sa.setnullo sono sicuro che numpy abbia alcune funzioni fantasiose che potrebbero farlo se si converte l'immagine in un array numpy.

Gdal translate potrebbe anche essere utile se vuoi seguire il percorso open source.


Hai idea di come posso riclassificare questi valori? Non riesco a convincere ArcGIS a riconoscere nulla per NaN, e non sembra avere a che fare con il valore molto basso (praticamente NaN sembra - dato che questa è la gamma di float in Arc).
Robintw,

Se fossi in me, convertivo ogni immagine in un array intorpidito, girando sull'array convertendo tutti i valori dei nodati in -9999 o qualsiasi altra cosa e quindi riportando l'array in un'immagine. Sono sicuro che esiste un modo più intelligente di farlo, ma non ho lavorato tanto con Numpy.
dango,

se decidete di usare il metodo che ho suggerito sopra, potreste voler guardare usando la funzione python math.isnan () per identificare i valori NaN.
dango,

4

C'è sicuramente qualcosa di molto strano in quel file / dato.

Hai ragione nel dire che ArcGIS mostra due diversi tipi di NoData anche se gli attributi mostrano entrambi la stessa cosa. Anche QGIS lo fa. Non ho assolutamente idea di cosa stia accadendo nei dati (ma suppongo che ci siano due diversi valori "noData" usati dietro le quinte, uno potrebbe essere "null" l'altro "-9999" per esempio) ma sarebbe interessato per sapere, forse qualcun altro può illuminarci.

Tuttavia, ci sono un paio di possibili soluzioni alternative:

Esporta i dati : se esporti i dati assicurandoti di "utilizzare il renderer", inizierà a funzionare correttamente. Se non selezioni il renderizzatore di utilizzo, il tuo nuovo file avrà gli stessi problemi. Sul lato negativo, questo lo converte in dati a 8 bit (0-255). Alcuni altri strumenti potrebbero essere in grado di renderizzarli nuovamente mantenendo i dati come float a 32 bit.

Usa classificato : il metodo di simbologia classificato sembra visualizzare correttamente entrambi i tipi di NoData (vale a dire la stessa cosa), quindi usalo se possibile e non vuoi modificare i dati. Allungato mostra il tuo bug segnalato e "Valori unici" semplicemente non mostra nulla.

(Utilizzo di ArcGIS 9.3.1)


Grazie per la risposta - Sono contento che non sono solo io a pensare che sia strano. Sfortunatamente la simbologia classificata non sarà adatta a ciò che devo fare, ma al momento eseguirò l'esportazione utilizzando un renderer. La cosa frustrante è che questo accade per tutti i file che ottengo dal satellite MODIS usando il sistema di elaborazione online MODIS. Penso che il problema potrebbe essere dovuto a due diversi tipi di NoData: in questo caso potrebbero essere "null" e NaN, ma non lo so.
Robintw,

Penso che "Use Classified" sia di gran lunga la meno onerosa di tutte le tecniche suggerite per aggirare questo bug. Puoi approssimare quasi tutto ciò che puoi fare nel menu 'Allungato' nel menu 'Classificato'.
Alexander,

2

Ho appena riscontrato lo stesso problema e ho trovato una "soluzione". Se si moltiplica il raster per 1,0 con il calcolatore raster, ArcMap riconoscerà i valori NoData.


1

Ha avuto lo stesso problema con le griglie ESRI a 32 bit. I 16 bit funzionavano bene e NoData era invisibile, ma si presentava nero per quelli a 32 bit. Risolto il problema esportando singolarmente e cambiando il valore dei nodati a -32768 rispetto a -2147483647 di quelli normalmente a 32 bit.


1

Ho avuto lo stesso problema. Ciò che ha funzionato per me è stato esportare il raster nella cartella geodatabase. Se il raster viene esportato in un geodatabase, arcmap visualizza correttamente i valori NoData.


0

Ho un problema simile con le immagini Landsat 8-OLI durante l'esecuzione di un mosaico. I valori "NoData" all'esterno (sfondo) non fanno nulla, ma eventuali blocchi di dati mancanti, come la rimozione di nuvole / ombre all'interno, cambieranno il colore del livello del mosaico di riferimento. L'ho eseguito in ERDAS e Arcmap, entrambi con lo stesso risultato. Per qualche motivo ha un effetto sulla simbologia, ma se si utilizza lo strumento "Identifica", i valori dei pixel sono corretti. Se cerchi risultati e non visualizzi, dovresti andare bene.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.