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?


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")

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")

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.