Radzenie sobie z NoData w ArcGIS Spatial Analyst?

10

Podczas korzystania ze Spatial Analyst regularnie mam problemy z wyświetlaniem wartości NoData w danych.

Wydaje się, że różne narzędzia regularnie wprowadzają wartości NoData.

Wartości te następnie powodują problemy z innymi narzędziami i należy je wyeliminować poprzez przeklasyfikowanie, zwykle powodując inne problemy.

Jak należy traktować wartości NoData? Czy istnieje prosty sposób zastąpienia wartości NoData wartością zero? Czy można całkowicie uniknąć NoData?

Matthew Snape
źródło
3
Zwykle - ale nie zawsze - wartość NoData musi tam być. Zapobiega to awarii całej operacji, która może zakończyć się niepowodzeniem osobno przy kilku komórkach. Dobre przykłady dzielone są przez zero, logi liczb dodatnich i różne lokalne operacje podejmowane wzdłuż granic siatki. Jednym z niewielu dobrych przykładów, w których wiem, gdzie nie należy wprowadzać wartości NoData, jest ogniskowa większość / mniejszość, która rozwiązuje powiązania, ustawiając je na NoData!
whuber
1
Ponadto istnieje rozróżnienie między skończonymi NoData (np. -9999) I 1.#QNANNoData. W ArcGIS ten pierwszy jest przezroczysty, a 1.#QNANNoData jest nieprzezroczysty czarny.
Mike T

Odpowiedzi:

6

Użyłbym kalkulatora rastrowego z następującym wyrażeniem:

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

Zakłada się, że twój raster nazywa się „rastrem”.


Składnia narzędzia 10.x Raster Calculator jest nieco inna. W tym przykładzie „raster” to warstwa na mapie:

Con(IsNull("raster"), 0, "raster")
I jeden
źródło
4

Możesz ustawić wartości NoData na dowolną wartość, używając operatora warunkowego Set Null ( ArcGIS 9.3 , ArcGIS 10 ). Jednak nie jestem świadomy sposobu, aby zapobiec pojawianiu się NoData.


Zdałem sobie sprawę, że powinienem napisać / połączyć z operatorem Con , jak wspomniano w @AndOne.

Z dokumentacji, jeśli używasz Pythona:

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
źródło
1
+1. Wiele operacji ma argumenty ograniczające wyniki NoData. Np. Podczas obliczania statystyk sąsiedztwa („ogniskowej”) można określić, że dane wejściowe NoData (które muszą wystąpić wokół krawędzi) są po prostu ignorowane, a nie propagowane do wyniku. Zauważ, że każda planarna siatka ma granicę, poza którą nie ma danych.
whuber
Czy można tego faktycznie użyć do konwersji NoData na zero?
Matthew Snape
Tak, jakiej wersji ArcGIS używasz?
djq
Wersje, których używam, to Arcgis 10.0
Matthew Snape,