Více

Rastrová kalkulačka: Jak vydělat 0 + NoData = 0?

Rastrová kalkulačka: Jak vydělat 0 + NoData = 0?


Mám bodovou datovou vrstvu (vektor), kterou jsem převedl na rastrovou vrstvu. Chci nahradit hodnotu NoData (mezi každým rastrovým bodem) v bodové rastrové vrstvě o 0. Takže jsem vytvořil podkladovou rastrovou vrstvu (hodnota = 0).

Mým plánem bylo přidat vrstvu pozadí 0 do bodové rastrové vrstvy, ale jak vidíme na stránce nástroje + (Dodatek), číslo (0) + NoData = NoData.

Nějaké tipy, jak toho dosáhnout?

Používám ArcGIS 10.3, ale mám také přístup k QGIS 2.10.

EDIT: Viděl jsem QGIS Raster Calculator: Je třeba nastavit hodnoty na 0 namísto datové otázky, ale nemohu najít nástroj „Reclassify grid cells“. Jen mám „Reclassify grid values“.


Nejjednodušší a nejrychlejší způsob, jak nahradit NODATA něčím jiným, je mapová algebra / rastrová kalkulačka:

Funguje na float a integer rastrech. Je vhodné explicitně určit typ výstupního rastru pomocí vestavěných funkcí Int nebo Float


Nástroj Reclassify v ArcMap 10.3 (Spatial Analyst> Reclass> Reclassify) umožňuje překlasifikovat Žádná data na jinou hodnotu. Nyní to nemusí fungovat, pokud máte ve svém výstupním součtu hodnoty No Data, které máte ne chcete překlasifikovat na 0. Existují způsoby, jak tento problém vyřešit, ale pokud jste v pořádku, když změníte všechny své hodnoty bez dat na 0, pak Reclassify je přímý způsob, jak to vyřešit.


Jednou z možností je změnit hodnotu nodata ve vašem rastru a poté odstranit příznak nodata. To je pravděpodobně nejrychlejší s gdal. Například pokud je vaše hodnota nodata -9999:

gdalwarp -dstnodata 0 input.tif output.tif gdal_edit.py -a_nodata -9999 output.tif

gdalwarppřepsal všechny vaše buňky nodata na hodnotu 0 a změnil příznak nodata na 0.gdal_edit.pyzměnil příznak nodata zpět na -9999, přičemž pixely zůstaly nedotčené. 0 pixelů je nyní platných.


Podívejte se na video: Vektorová a rastrová grafika - rozdíly a k čemu se mě hodí.