Viac

Prevod NoData na 0 hodnôt v ArcGIS Desktop?

Prevod NoData na 0 hodnôt v ArcGIS Desktop?


Mám raster landcoveru, ktorý som preklasifikoval a rôzne klasifikácie krajinnej pokrývky sú teraz reprezentované číslami, ktoré zodpovedajú vstupom hnojiva.

Pomocou ArcGis 10.3 sa snažím extrahovať určitú množinu týchto hodnôt pri konverzii zvyšku na nuly.

Je to možné pomocou nástroja na extrahovanie podľa atribútov?

Keď som to už predtým vyskúšal, hodnoty iné ako tie, ktoré som vybral pre všetky, sa prevedú na NoData, čo mi neskôr spôsobí problémy pri pokuse o pridanie rastrov.


Pri použití Raster Calculator v ArcToolbox (verzia 10.3.1) je funkcia Con vyjadrená pre raster s názvom „streams“ takto:

Con (IsNull ("streamy"), 0, "streamy")

toto vráti nulu, ak je prúd nulový, vráti hodnotu prúdov.

V tomto príklade sú všetky pixely NoData v prúdoch nastavené na nulu, inak obsahujú hodnotu pixelu nájdenú v množine údajov prúdov.


Po preklasifikovaní tohto rastra budem predpokladať, že máte prístup k rozšíreniu Spatial Analyst, takže budem pokračovať pokynmi, ktoré toto rozšírenie vyžadujú.

Nástroj, ktorý chcete použiť, je Con, aj keď to môžete urobiť pomocou nástroja Extract by Attributes Con, ktorý vám dáva väčšiu kontrolu nad „falošným“ prípadom. Váš príkaz SQL môže byť dosť dlhý, pokiaľ nemáte vhodný rozsah, napríklad:

Hodnota> 350 && Hodnota <360 || Hodnota = 340

Páči sa ti to:

Všimnite si, že vstupný podmienený raster a zadajte skutočný raster alebo konštantu sú rovnaké hodnoty ... to znamená, že kde výraz je pravdivý, výstup bude to, čo je na vstupe; falošný raster alebo konštanta je 0 ... takže kde je výraz pravdivý, výstupom bude vstup, kde nepravdivý bude 0.

Pre jednotlivé hodnoty (napríklad 3,5,7,9) môžete implicitne určiť:

Hodnota == 3 || Hodnota == 5 || Hodnota == 7 || Hodnota == 9

Ktoré sa môžu dosť dlho namotávať, ale pre celočíselné rastre (nie s pohyblivou rádovou čiarkou), ako sú klasifikované rastre, môžete použiť operátor SQL v:

Hodnota v (3,5,7,9)

Čo je podstatne menej pri písaní a nemusíte robiť hľadanie na celej klávesnici po symbole fajky (|), aby ste mohli urobiť C štýl ALEBO.


Najrýchlejším spôsobom, ako previesť hodnotu NoData na 0 v ArcGIS, je použitie mapovej algebry s operátorom Con

Con (IsNull (your_raster), O, your_raster)

Ak sa teraz chcete vyhnúť vytváraniu týchto hodnôt NoData pri extrahovaní niektorých hodnôt a neexistuje jednoduché pravidlo prepočtu, môžete použiť nástroj „preklasifikovať“, ktorý zabezpečí, že pre každý vstup (dokonca aj pre každý vstup) budete mať výstupnú hodnotu (ktorá môže byť nulová). pre NoData).


Nezabudnite stlačiť kláves „Enter“, pretože v nástroji na reklasifikáciu upravujete hodnoty na „0“. Ak to neurobíte, niekedy sa to vráti na „NODATA“. To je problém, s ktorým som sa občas stretol. Ak chcete vrstvu nechať ako raster, bolo by najlepšie ju preklasifikovať, ako ju extrahovať pomocou nástroja extrakt podľa atribútov, pretože nástroj na preklasifikovanie bol vyrobený pre rastre.