Zmienić wartości zerowe wartości rastrowe na 0 w QGIS?

13

Potrzebuję pomocy ... Mam problemy z QGIS. Mam kilka rastrów, które wydają się mieć wartości zerowe, mimo że je przeklasyfikowałem, aby uzyskać logiczny raster :(

Jak mogę zmienić wartości NULL na 0?

Nadia
źródło

Odpowiedzi:

14

oprócz odpowiedzi @RK możesz również użyć r.null w trawie .

r.null - Zarządza wartościami NULL danej mapy rastrowej.

PRZYKŁADY

Ustaw określone wartości sklasyfikowanej mapy na NULL:

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

Ustaw NULL-wartości mapy na określoną wartość:

 r.null map=fields null=99

Mam nadzieję, że Ci to pomoże...

Aragonia
źródło
9

Myślę, że wtyczka RasterCalc powinna być w stanie rozwiązać twój problem. Po zainstalowaniu możesz użyć następującego zapytania (zakładając, że wartości NULL odpowiadają -9999; możesz sprawdzić tę wartość w zakładce Przezroczystość we właściwościach warstwy):

eq ([twój_klas] @ 1, -9999, 0)

eq oznacza równe. To mówi RasterCalc, że wszystkie piksele w twoim rastrze z wartościami NULL powinny mieć ustawione wartości 0. Zakładam, że masz raster jednopasmowy.

RK
źródło
1
Wydaje się, że to nie działa (QGIS 1.8 / Rastercalc 0.2.5) - nadanie „wyrażenia nieważnego” z załadowanym rastrem, np.eq( EL_hm@1, NULL, 0 )
Simbamangu
1
@Simbamangu, jeśli użyjesz rzeczywistej wartości użytej jako NULL (na przykład -9999) - to zadziała. np. eq (EL_hm @ 1, -9999, 0)
SS_Rebelious
1
@SS_Rebelious - możesz wspomnieć w swojej edycji, że wartość NULL można ustawić w preferencjach ( General|Representation for NULL values) i powinno to znaleźć odzwierciedlenie w wyrażeniu.
Simbamangu,
2

Nie wiem czy to rozwiązałeś? Może być bardziej uproszczony sposób, ale działa to dla mnie dobrze w najnowszym QGIS (v2.8.1):

  1. Utwórz nowy wielokąt z kolumną atrybutów dla wysokości / poziomu. narysuj kształt wielokąta o większym zakresie niż zakres rastrowy, który chcesz zmienić.
  2. zrasteryzuj ten wielokąt za pomocą narzędzia raster> konwersja> rasterise.
  3. za pomocą narzędzi analizy GDAL> nie wypełniaj danych> i zrasteryzowanego wielokąta jako warstwy poprawności.
  4. Wynikowy plik rastrowy powinien teraz mieć wartości, w których wcześniej nie było danych. Będą to albo losowe wartości poniżej 0 (na przykład -9999) lub 0. Jeśli jest to 0, to świetnie, że masz to, czego chciałeś. Jeśli nie, wykonaj krok 5.
  5. za pomocą SAGA> Narzędzia siatki> Narzędzia rastrowe Mosaick wprowadź wypełnioną warstwę rastrową i zrasteryzowany wielokąt. w nakładających się obszarach wybierz [3] Maksimum i ustaw zakres wyjściowy na oryginalny raster. Powinno to spowodować powstanie nowego rastra, który zachowa wszystkie wartości powyżej 0, a dotychczasowym wartościom danych brak nowej wartości 0.
Piotr
źródło