Gérer NoData dans ArcGIS Spatial Analyst?

10

Lorsque j'utilise Spatial Analyst, j'ai régulièrement des problèmes avec les valeurs NoData qui apparaissent dans les données.

Divers outils semblent introduire régulièrement des valeurs NoData.

Ces valeurs provoquent ensuite des problèmes avec d'autres outils et doivent être éliminées lors de la reclassification, ce qui entraîne généralement d'autres problèmes.

Comment traiter les valeurs NoData? Existe-t-il un moyen simple de remplacer les valeurs NoData par zéro? NoData peut-il être complètement évité?

Matthew Snape
la source
3
Habituellement - mais pas toujours - la valeur NoData doit être là. Cela empêche toute l'opération d'échouer lorsqu'elle peut échouer séparément dans quelques cellules seulement. Les bons exemples sont divisés par zéro, les journaux de nombres non positifs et diverses opérations locales tentées le long des limites de la grille. L'un des rares bons exemples que je connaisse concernant les endroits où les valeurs NoData ne doivent pas être introduites est la majorité / minorité focale, qui résout les liens en les définissant sur NoData!
whuber
1
En outre, il existe une distinction entre NoData fini (par exemple, -9999) et 1.#QNANNoData. Dans ArcGIS, le premier est transparent, tandis que 1.#QNANNoData est noir opaque.
Mike T

Réponses:

6

J'aurais utilisé la calculatrice raster avec l'expression suivante:

Con(IsNull([raster]), 0, [raster])

Il suppose que votre raster est appelé «raster».


La syntaxe de l'outil 10.x Raster Calculator est légèrement différente. Dans cet exemple, "raster" est une couche dans la carte:

Con(IsNull("raster"), 0, "raster")
Et une
la source
4

Vous pouvez définir des valeurs NoData sur n'importe quelle valeur à l'aide de l'opérateur conditionnel Set Null ( ArcGIS 9.3 , ArcGIS 10 ). Je ne suis pas au courant d'un moyen d'empêcher le NoData d'apparaître en premier lieu, cependant.


J'ai réalisé que j'aurais dû écrire / être lié à l' opérateur Con comme mentionné @AndOne.

Dans la documentation, si vous utilisez python:

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")
djq
la source
1
+1. De nombreuses opérations ont des arguments qui limitent les résultats NoData. Par exemple , lors du calcul des statistiques de voisinage ("focales"), vous pouvez spécifier que NoData dans l'entrée (qui doit se produire autour des bords) soit simplement ignoré plutôt que propagé à la sortie. Notez que chaque grille planaire a une frontière au-delà de laquelle se trouvent NoData.
whuber
Est-ce que cela peut être utilisé pour convertir NoData en zéro?
Matthew Snape
Oui, quelle version d'ArcGIS utilisez-vous?
djq
Les versions que j'utilise sont Arcgis 10.0
Matthew Snape