Przycinanie rastra z granicami wektorowymi przy użyciu QGIS?

58

Używam QGIS. Chciałbym przyciąć warstwę opadów rastrowych przy użyciu warstwy granicznej administratora, czyli danych wektorowych. Wydaje się jednak, że narzędzia geoprzetwarzania są użyteczne tylko w przypadku danych wektorowych.

Jak mogę przyciąć tę warstwę opadów?

Kościół
źródło
Czy naprawdę chciałeś, aby „wektor” pojawiał się dwukrotnie w tym pytaniu?
whuber
@ whuber - nie w szczególności ... czy to ma znaczenie na tym forum?
Kirk
Nie mogłem zrozumieć pytania bez zmiany jednego z „wektorów” na „raster”. Myślę, że rozumiem teraz: mówisz, że uważasz, że narzędzia geoprzetwarzania mają zastosowanie tylko wtedy, gdy wszystkie elementy są danymi wektorowymi. Zamieszanie polegało na tym, że wyraźnie mówisz, że warstwa graniczna jest w formacie wektorowym, a ponieważ jest to bezpośredni precedens, pytanie staje się niejednoznaczne.
whuber
4
Mam taki sam problem jak w pierwotnym pytaniu - narzędzie do przycinania za pomocą wtyczki gdal działa, ale przecina tylko prostokąty ... co jeśli chcesz przyciąć go do granicy kraju?
Matt

Odpowiedzi:

36

Zainstaluj wtyczkę GDAL, a następnie użyj narzędzia Clipper.
wprowadź opis zdjęcia tutaj

Pablo
źródło
10
Wtyczka „gdal tools” czyli „narzędzia rastrowe” jest instalowana domyślnie od qgis 1.5, jeśli się nie mylę. Nie trzeba instalować go ręcznie.
Giovanni Manghi
Odkryłem, że to narzędzie dodaje raster do zespołu. Używa polecenia dstalpha.
BWill
2
Jak napisał Pablo, Clipper Tool jest odpowiedzią. W qgis 1.7.0 nazwa wtyczki to „GdalTools”. Narzędzia (wraz z poszukiwanym „Clipperem”) są dodawane do menu Raster po włączeniu go za pomocą menedżera wtyczek qgis.
amp
1
Proszę nie zapisywać danych rastrowych i wektorowych na dysku w tym samym CRS. Proste pliki png i rozdzielane warstwy tekstowe z CRS ustawionym w QGIS nie będą działać.
AndreJ
12

Jeśli jesteś zainteresowany korzystaniem z Pythona, dobra dokumentacja jest dostępna na GeospatialPython.com tutaj .

i źródło clipraster.py jest tutaj .

obrzynek

Proces:

Przycinanie rastra to seria prostych kliknięć przycisków w wysokiej klasy pakietach oprogramowania geoprzestrzennego. Pod względem obliczeniowym obrazy geoprzestrzenne są w rzeczywistości bardzo dużymi, wielowymiarowymi tablicami. Teledetekcja w najprostszym przypadku polega na wykonywaniu operacji matematycznych na tych tablicach w celu wydobycia informacji z danych. Za kulisami jest to, co robi oprogramowanie (daj lub zrób kilka kroków):

  1. Przekształć plik kształtu wektorowego w macierz, która może służyć jako maska
  2. Załaduj obraz geoprzestrzenny do matrycy
  3. Wyrzuć dowolne komórki obrazu poza zasięg pliku kształtu
  4. Ustaw wszystkie wartości poza granicą pliku kształtu na wartości NODATA (null)
  5. OPCJONALNIE: Wykonaj rozciągnięcie histogramu na obrazie, aby uzyskać lepszą wizualizację
  6. Zapisz powstały obraz jako nowy raster.
Aragonia
źródło
clipraster.pyLink jest uszkodzony. Rozważ zaktualizowanie go. Tks.
Andre Silva,
8

Polecam użycie, gdalwarpponieważ możesz zwiększyć wydajność procesu.

Na przykład, jeśli chcesz wyciąć raster za inraster.tifpomocą pliku kształtu extent.shp:

gdalwarp -cutline extent.shp -crop_to_cutline -of GTiff  -dstnodata 255 inraster.tif inraster_cropped.tif -co COMPRESS=LZW -co TILED=YES --config GDAL_CACHEMAX 2048 -multi

Ostatnie dwa parametry pozwalają przyspieszyć proces, używając:

  1. Implementacja wielordzeniowa.
  2. Ustawienie pamięci podręcznej dostępnej dla funkcji.
WAF
źródło
1

Nie jestem pewien, jak to zrobić w QGIS, jednak możesz użyć innego oprogramowania GIS typu open source, takiego jak GRASS lub GDALWarp, aby przyciąć swój raster. Zobacz keymirror i odpowiedzi geograficzne poniżej.

W przypadku rozwiązania opartego na ArcGIS Desktop możesz rzucić okiem na Wycinanie rastra za pomocą polilinii lub wielokąta

grafika 21
źródło