Rasterwerte für Nullwerte in QGIS auf 0 ändern?

13

Ich brauche Hilfe ... Ich habe Probleme mit QGIS. Ich habe einige Raster, die scheinbar Nullwerte haben, obwohl ich sie neu klassifiziert habe, um ein Boolesches Raster zu erhalten :(

Wie kann ich die NULL-Werte auf 0 ändern?

Nadia
quelle

Antworten:

13

Neben @RK answer können Sie auch r.null im Gras verwenden .

r.null - Verwaltet NULL-Werte einer gegebenen Raster-Map.

Beispiele

Setzen Sie bestimmte Werte einer klassifizierten Karte auf NULL:

r.null map=landcover.30m setnull=21,22

Setze NULL-Werte einer Map auf einen bestimmten Wert:

 r.null map=fields null=99

ich hoffe es hilft dir ...

Aragon
quelle
9

Ich denke, das RasterCalc-Plugin sollte in der Lage sein, Ihr Problem zu lösen. Sobald Sie es installiert haben, können Sie die folgende Abfrage verwenden (unter der Annahme, dass NULL-Werte -9999 entsprechen; Sie können diesen Wert auf der Registerkarte Transparenz der Ebeneneigenschaften überprüfen):

eq ([your_raster] @ 1, -9999, 0)

eq bedeutet gleich. Dies teilt RasterCalc mit, dass für alle Pixel in Ihrem Raster mit NULL-Werten der Wert 0 festgelegt werden sollte. Ich gehe davon aus, dass Sie ein Einzelband-Raster haben.

RK
quelle
1
Dies scheint nicht zu funktionieren (QGIS 1.8 / Rastercalc 0.2.5) - "Ausdruck ungültig" mit einem geladenen Raster, zBeq( EL_hm@1, NULL, 0 )
Simbamangu
1
@Simbamangu, wenn Sie den tatsächlichen Wert als NULL verwenden (z. B. -9999), funktioniert dies. zB eq (EL_hm @ 1, -9999, 0)
SS_Rebelious
1
@SS_Rebelious - Möglicherweise möchten Sie in Ihrer Bearbeitung erwähnen, dass der NULL-Wert in den Einstellungen ( General|Representation for NULL values) festgelegt werden kann, und dies sollte sich im Ausdruck widerspiegeln.
Simbamangu
2

Ich weiß nicht, ob Sie das gelöst haben? Es mag einen rationalisierten Weg geben, aber das funktioniert für mich in der neuesten Version von QGIS (v2.8.1):

  1. Erstellen Sie ein neues Polygon mit einer Attributspalte für Höhe / Ebene. Zeichnen Sie eine Polygonform mit einer größeren Ausdehnung als der Rasterausdehnung, die Sie ändern möchten.
  2. Rasterisieren Sie dieses Polygon mit dem Werkzeug Raster> Konvertierung> Rasterisieren.
  3. Verwenden Sie die GDAL-Analysewerkzeuge> Keine Daten füllen> und das gerasterte Polygon als Gültigkeitsebene.
  4. Die resultierende Rasterdatei sollte jetzt Werte enthalten, bei denen zuvor keine Daten vorhanden waren. Dies sind entweder zufällige Werte unter 0 (z. B. -9999) oder 0. Wenn es 0 ist, haben Sie genau das, was Sie wollten. Ist dies nicht der Fall, führen Sie Schritt 5 aus.
  5. Mit SAGA> Raster-Tools> Mosaik-Rasterebenen geben Sie die gefüllte Rasterebene und das gerasterte Polygon ein. Wählen Sie in überlappenden Bereichen [3] Maximum und stellen Sie den Ausgabebereich auf das ursprüngliche Raster ein. Dies sollte zu einem neuen Raster führen, das alle Ihre Werte über 0 beibehält, während Ihren vorherigen Werten ohne Daten ein neuer Wert von 0 zugewiesen wird.
Peter
quelle