Ich habe eine Reihe von Rastern (.vrt) mit täglichen Bodenfeuchtedaten. Ich möchte die Pixel aller Raster summieren, um ein Maß pro Monat zu erhalten. Es wird jedoch nicht jeden Tag die ganze Welt abgedeckt, was zu Knotenwerten an Orten führt, an denen für die anderen Tage Maßnahmen existieren.
Was ich tun möchte, ist die Summe der Werte jedes Rasters. Es scheint jedoch, dass jedes Mal, wenn ein Nodata-Pixel in der Summe enthalten ist, das resultierende Pixel direkt als Nodata kategorisiert wird. Ich hätte gerne das Gegenteil: alle Nodata-Werte ignorieren und den Rest summieren.
Ich dachte an zwei Möglichkeiten, das Problem zu lösen:
- Summieren von Rastern, die Knotenwerte ignorieren
- Konvertieren Sie Nodata-Pixel in den Wert 0 und summieren Sie dann alle Raster
Leider kann ich dafür kein Werkzeug finden.
Kann mir jemand helfen?
Antworten:
Wenn Sie Zugriff auf ArcGIS haben dann die Zellenstatistik hat Werkzeug , um die optional zu nodata ignorieren , die Sie summieren \ Mittelwert \ min \ max Ihre Rastern.
quelle
Erstens können Sie mit gdal_calc.py alle -9999 auf 0 ändern und den NoData-Wert auf 0 setzen.
Zum Beispiel:
Anschließend können Sie den NoData-Wert mit gdal_translate mit der Option -a_nodata gefolgt von none ignorieren .
Beispiel:
quelle
gdal_translate -a_nodata none ...
. Zum Beispiel:gdal_calc.py -A input.tif --outfile=input_with_NoData.tif --type=Int16 --calc="A+9999*(A==-9999)" --NoDataValue=0
cd
Befehl zu ändern, und versuchen Sie es erneut , um nur zu haben-A test.tif
.In R:
quelle
s
, wobei das Argument dazu führt,na.rm=TRUE
dassNA
Werte ignoriert werden. Das Ausgabeobjektss
ist einraster
Objekt, mit dem exportiert werden kannwriteRaster
(siehe?writeRaster
). (@RobertH ist der Schöpfer des R-raster
Pakets.)Das bedingte Tool in Spatial Analyst ist eine einfache Möglichkeit, Nullwerte in Nullen umzuwandeln. Dann sollte es ein Kinderspiel sein, die Summen zu nehmen.
quelle
Ich hatte vor einiger Zeit das gleiche Problem und konnte es lösen.
Nur als Hinweis zur Anzeige von Knotenwerten in QGIS: Knotenwerte werden immer als Knotenwerte im Kartenfenster und bei Verwendung des Werkzeugs "Objektinformationen" angezeigt, unabhängig davon, ob sie tatsächlich den Wert -9999, 0, NULL usw. Haben Wenn Sie also nach der Neuklassifizierung der Knotenwerte in 0 in die Ebeneneinstellungen gehen, finden Sie in den Metadaten, dass Knoten den Wert 0 haben.
Ich habe endlich das perfekte Werkzeug für die Suche gefunden, das GRAS
r.series
. Wenn die Option "Aggregatoperation" auf "Maximum" und die Option "NULL-Werte weitergeben" deaktiviert ist, erstellt das Tool eine Ebene, die Ihren Anforderungen entspricht.quelle
Ich erinnere mich, dass ich dieses Problem vor einiger Zeit hatte. Als Lösung denke ich, dass ich +1 für alle Zellen im Raster gemacht, die Raster addiert und dann eine letzte Subtraktion durchgeführt habe (von wie vielen +1 Sie auch immer hinzugefügt haben). Es ist ziemlich grob, aber wenn es den Job erledigt ...!
Verwenden Sie alternativ die Option "Rasterwerte neu klassifizieren" in der Toolbox "Verarbeitung" in QGIS, um Ihre Nullwerte in Null zu konvertieren.
quelle