Memotong raster dengan batas vektor menggunakan QGIS?

58

Saya menggunakan QGIS. Saya ingin klip lapisan presipitasi raster menggunakan lapisan batas admin yang merupakan data vektor. Namun alat geoproses tampaknya hanya dapat digunakan untuk data vektor.

Bagaimana saya bisa memotong lapisan presipitasi ini?

Gereja
sumber
Apakah Anda benar-benar bermaksud "vektor" muncul dua kali dalam pertanyaan ini?
whuber
@whuber - tidak khusus ... apakah itu penting di forum ini?
Kirk
Saya tidak bisa memahami pertanyaan tanpa mengubah salah satu dari "vektor" menjadi "raster." Saya rasa saya mengerti sekarang: Anda mengatakan Anda berpikir alat geoproses hanya berlaku ketika semua elemen adalah data vektor. Kebingungannya adalah bahwa Anda secara eksplisit mengatakan layer batas dalam format vektor, dan karena itu adalah preseden langsung, itu membuat pertanyaan menjadi ambigu.
whuber
4
Saya memiliki masalah yang sama dengan pertanyaan awal - alat kliping menggunakan gdal plugin berfungsi, tetapi hanya klip dalam persegi panjang ..... bagaimana jika Anda perlu klip itu ke sesuatu seperti perbatasan negara?
Matt

Jawaban:

36

Instal plugin GDAL dan kemudian gunakan Alat Clipper.
masukkan deskripsi gambar di sini

Pablo
sumber
11
Plugin "gdal tools" alias "raster tools" diinstal secara default sejak qgis 1.5, jika saya tidak salah. Tidak perlu menginstalnya secara manual.
Giovanni Manghi
Saya menemukan bahwa alat ini menambahkan band ke raster. Ini menggunakan perintah dstalpha.
BWill
2
Seperti yang ditulis Pablo, Alat Clipper adalah jawabannya. Di qgis 1.7.0, nama plugin adalah "GdalTools". Alat-alat (bersama dengan "Clipper" yang kami cari) ditambahkan ke menu Raster setelah mengaktifkannya dengan manajer plugin qgis.
amp
1
Harap jangan bahwa data raster dan vektor harus disimpan pada disk di CRS yang sama. File png sederhana dan layer teks terbatas dengan CRS yang diatur dalam QGIS tidak akan berfungsi.
AndreJ
12

Jika Anda tertarik menggunakan Python, dokumentasi yang bagus tersedia di GeospatialPython.com, di sini .

dan sumber clipraster.py ada di sini .

guntingan

Proses:

Memotong raster adalah serangkaian klik tombol sederhana dalam paket perangkat lunak geospasial kelas atas. Dalam hal komputasi, gambar geospasial sebenarnya sangat besar, array multi-dimensi. Penginderaan Jauh yang paling sederhana adalah melakukan operasi matematika pada array ini untuk mengekstrak informasi dari data. Di balik layar inilah yang dilakukan perangkat lunak (memberi atau mengambil beberapa langkah):

  1. Konversikan vektor shapefile ke matriks yang dapat digunakan sebagai mask
  2. Memuat gambar geospasial ke dalam matriks
  3. Buang semua sel gambar di luar batas shapefile
  4. Tetapkan semua nilai di luar batas shapefile ke nilai NODATA (null)
  5. OPSIONAL: Lakukan peregangan histogram pada gambar untuk visualisasi yang lebih baik
  6. Simpan gambar yang dihasilkan sebagai raster baru.
Aragon
sumber
The clipraster.pylink rusak. Pertimbangkan untuk memperbaruinya. Tks.
Andre Silva
8

Saya akan merekomendasikan penggunaan gdalwarpkarena Anda dapat meningkatkan efisiensi proses.

Misalnya, jika Anda ingin memotong raster inraster.tifdengan shapefile 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

Dua parameter terakhir memungkinkan Anda meningkatkan proses menggunakan:

  1. Implementasi multicore.
  2. Mengatur cache yang tersedia untuk fungsi tersebut.
WAF
sumber
1

Saya tidak yakin bagaimana melakukannya di QGIS, namun Anda dapat menggunakan perangkat lunak GIS open source lain seperti GRASS atau GDALWarp untuk klip raster Anda. Lihat jawaban keymirror dan geografis di bawah ini.

Untuk solusi berbasis ArcGIS Desktop, Anda mungkin ingin melihat kliping raster menggunakan polyline atau poligon

artwork21
sumber