Raster ke Vektor di QGIS: Setiap Metode, dan Kapan Masing-masing Berfungsi

Untuk mengonversi raster menjadi poligon vektor di
, buka Raster > Conversion > Polygonize (Raster to Vector), pilih band Anda, beri nama field output, lalu jalankan. Anda akan mendapatkan satu poligon untuk setiap kelompok piksel terhubung yang memiliki nilai sama, dengan nilai tersebut ditulis ke tabel atribut. Ini adalah jawaban yang tepat untuk raster terklasifikasi dan jawaban yang salah untuk foto. Sebagian besar masalah yang ditemui orang muncul karena mereka tidak mengetahui jenis raster yang dimiliki.
Kami membuat plugin QGIS di TerraLab bernama AI Segmentation. Plugin ini adalah satu baris dalam tabel terakhir di halaman ini, dan dijelaskan seperti yang lainnya.
Apa arti raster ke vektor
Raster adalah grid piksel. Vektor adalah sekumpulan titik, garis, dan poligon dengan koordinat serta atribut. Mengonversi salah satunya ke yang lain berarti menentukan letak batas, dan grid piksel tidak memiliki batas sendiri selain tepi sel-selnya.
Setiap metode di bawah ini hanya berbeda dalam hal yang dianggapnya sebagai tepi. Polygonize menggunakan setiap tempat dua piksel bertetangga memiliki nilai berbeda, contour menggunakan ketinggian yang dipilih, dan model segmentasi menggunakan tempat sebuah objek berakhir. Itulah sebabnya hanya metode terakhir yang bekerja pada foto.
Pilih metode Anda
| Yang Anda miliki | Metode yang berfungsi | Biayanya |
|---|---|---|
| Raster terklasifikasi atau tematik (tutupan lahan, reclass kemiringan, mask) | Raster > Conversion > Polygonize (Raster to Vector) | Gratis, di core QGIS |
| Raster kontinu (NDVI, kemiringan, band reflektansi) | Reclassify by table terlebih dahulu, lalu polygonize | Gratis, di core QGIS |
| DEM atau permukaan elevasi apa pun | Raster > Extraction > Contour, atau Contour Polygons | Gratis, di core QGIS |
| Peta kertas hasil pemindaian atau denah | GRASS r.thin ditambah r.to.vect, atau alat tracing di luar QGIS. Tidak ada yang tersedia di core QGIS yang melakukan ini dengan baik | Gratis, dan lambat. Tracing AI berbayar tersedia |
| Citra ortofoto, drone, atau satelit | Model segmentasi. Polygonize tidak berlaku | Plugin gratis memerlukan kartu NVIDIA. Plugin cloud memiliki tingkat gratis, lalu berlangganan |
Sebagian besar pembaca memerlukan baris pertama dan dapat berhenti setelah dua bagian berikutnya.
Polygonize, jawaban default
Algoritme QGIS adalah Polygonize (raster to vector), id gdal:polygonize, dan algoritme ini membungkus utilitas GDAL gdal_polygonize. Algoritme ini membuat satu poligon untuk setiap wilayah piksel terhubung yang memiliki nilai sama, lalu menulis nilai tersebut ke dalam atribut.

Open the tool
Raster > Conversion > Polygonize (Raster to Vector). Alat ini juga tersedia di Processing Toolbox di bagian GDAL, Raster conversion.
Pick the band
Band 1, kecuali kelas Anda berada di tempat lain. Hanya satu band yang digunakan, jadi raster RGB harus dikurangi menjadi satu band kelas sebelum langkah ini.
Name the field
DN adalah defaultnya. Ganti namanya menjadi sesuatu yang masih Anda pahami enam bulan lagi, seperti landcover_code.
Decide on 8-connectedness
Secara default nonaktif, sehingga piksel harus berbagi batas penuh agar dapat bergabung. Aktifkan dan piksel yang hanya bersentuhan secara diagonal juga akan bergabung. Pada fitur diagonal yang tipis, membiarkannya nonaktif akan memecah satu fitur menjadi rangkaian poligon.
Save to a real file
Defaultnya adalah layer sementara. Pada raster besar, ini menghasilkan puluhan ribu fitur, jadi tulis langsung ke GeoPackage.
![Dialog QGIS Polygonize (Raster to Vector). Input layer bertuliskan Land cover 10 m [EPSG:32631], Band number adalah Band 1 (Palette), field yang dibuat bernama landcover_code, Use 8-connectedness tidak dicentang, dan output ditulis ke GeoPackage.](/_next/image?url=%2Fblog%2Fraster-to-vector-qgis%2F02_polygonize_dialog.jpg&w=3840&q=75)
Dua hal berikut menghemat waktu Anda.
Tetapkan nilai NoData pada kelas yang tidak Anda inginkan. GDAL menggunakan mask validitas band, sehingga piksel NoData dilewati dan tidak menjadi satu poligon latar belakang raksasa yang mengelilingi semua yang lain. Ini adalah keluhan paling umum tentang output polygonize, dan ini merupakan properti raster, bukan pengaturan alat.

Pastikan band bertipe integer. gdal:polygonize selalu menulis field integer, sehingga band float dikonversinya saat masuk. Hal ini gagal dengan dua cara berbeda, bergantung pada cara raster Anda menyimpan nilainya, dan tidak satu pun memberikan peringatan. Float32 diproses melalui Reclassify by table terlebih dahulu, yang dibahas di bagian berikutnya.
Masalah tangga, dan cara memperbaikinya
Polygonize menelusuri batas piksel. Tidak ada yang lain. Jadi tepi lahan diagonal kembali sebagai deretan anak tangga bersudut siku-siku, satu per piksel, dan klasifikasi Sentinel 10 m menghasilkan tangga berukuran 10 m.

Itu adalah output yang benar. Alat ini menggambar tepat seperti yang dikatakan raster. Hanya saja hasilnya tidak terlihat seperti peta, dan tidak ada pengaturan di dalam polygonize yang dapat mengubahnya. Solusinya adalah empat algoritme geometri vektor yang dijalankan setelahnya, dalam urutan berikut.
1. Dissolve (native:dissolve). Atur field dissolve ke field kelas yang baru saja Anda buat. Poligon bertetangga dengan kelas yang sama akan bergabung menjadi satu fitur per kelas. Jalankan ini terlebih dahulu, saat geometri masih tepat, karena penggabungan tepi yang sudah disederhanakan meninggalkan sliver di sepanjang setiap batas bersama. Jika Anda ingin setiap patch tetap terpisah, bukan satu fitur multipart per kelas, centang Keep disjoint features separate di parameter lanjutan.
2. Filter berdasarkan area (native:extractbyexpression, di Vector selection). Ekspresi:
$area > 500
Satuannya adalah satuan CRS layer, jadi gunakan CRS terproyeksi atau angka tersebut tidak bermakna. Tetapkan ambang pada ukuran patch nyata di data Anda. Pada klasifikasi 10 m, 500 m2 berarti lima piksel, kira-kira titik ketika speckle berhenti dan fitur mulai terbentuk. Gambar di bawah ini menggunakan 2.000 m2 pada raster yang sama, karena pada 500 m2 sliver yang bertahan saling berpotongan setelah disederhanakan. Lihat histogram area Anda sendiri, bukan menyalin salah satu angka tersebut. Jika raster meninggalkan piksel tunggal dari kelas lain di dalam patch, native:deleteholes setelah langkah ini akan menghapusnya.
3. Simplify (native:simplifygeometries). Toleransi default adalah 1,0 dalam satuan layer. Atur kira-kira sebesar ukuran satu piksel dan tangga akan runtuh menjadi garis lurus, dengan batas berpindah kurang dari yang dapat dilihat pembaca. Dropdown metode menawarkan Douglas-Peucker (berdasarkan jarak), Visvalingam (berdasarkan area), dan snap to grid. Visvalingam lebih baik mempertahankan bentuk fitur kecil ketika Anda menaikkan toleransi.
4. Smooth (native:smoothgeometry). Gunakan hanya pada objek yang memang melengkung, seperti aliran sungai, garis pantai, dan patch vegetasi. Offset default adalah 0,25, sedangkan iterasi mengatur seberapa bulat hasilnya. Atur Maximum node angle to smooth ke 90 agar setiap sudut yang lebih tajam tetap tajam. Ini mencegah alat membulatkan sudut bangunan dan bidang tanah.
Jika Anda juga menginginkan patch solid tanpa celah interior, native:deleteholes menghapus lubang di bawah area minimum, dan 0,0 menghapus semuanya.

Reclassify terlebih dahulu ketika raster bersifat kontinu
Polygonize pada raster kontinu menjadi salah satu dari dua masalah, dan hasil yang Anda dapatkan bergantung pada cara nilai disimpan.
Disimpan sebagai bilangan bulat berskala, seperti cara produk NDVI sebenarnya dikirim, Anda mendapatkan poligon untuk hampir setiap piksel karena hampir tidak ada dua piksel yang memiliki nilai sama. Kami mengukur 39.801 poligon dari 40.000 piksel pada satu adegan Sentinel-2.
Disimpan sebagai float mentah antara -1 dan 1, konversi ke integer meratakan setiap nilai menjadi -1, 0, atau 1 sebelum penelusuran dimulai. Adegan yang sama kembali sebagai 238 poligon dalam dua kelas. Hasil ini terlihat bersih, tetapi sebenarnya tidak. Data Anda telah hilang.
Hal yang sama berlaku untuk kemiringan, elevasi, temperatur, atau band reflektansi mentah. Alat tersebut tidak gagal pada kedua kasus. Alat ini menelusuri batas antara nilai integer, sementara raster kontinu tidak memiliki nilai integer yang berguna untuk ditelusuri.

Ubah permukaan kontinu menjadi kelas terlebih dahulu dengan Reclassify by table, id native:reclassifybytable. Tabel reklasifikasi memiliki tiga kolom, minimum, maksimum, dan nilai baru, serta menerima -inf, inf, dan nan untuk NoData. Mask vegetasi terdiri dari tiga baris:
| Minimum | Maximum | Value |
|---|---|---|
| -inf | 0.2 | 1 |
| 0.2 | 0.5 | 2 |
| 0.5 | inf | 3 |

Ada dua default yang perlu diubah di parameter lanjutan. Output data type defaultnya Float32, jadi atur ke Byte atau Int16 agar polygonize berfungsi dengan baik. Range boundaries defaultnya adalah min < value <= max, yang menentukan sisi mana dari 0,2 tempat piksel dengan nilai tepat 0,2 berada.
Lalu polygonize raster yang telah direklasifikasi dan jalankan pembersihan di atas.
Contour untuk DEM
Untuk elevasi, jangan gunakan polygonize. Gunakan Contour di Raster > Extraction > Contour, id gdal:contour. Interval defaultnya adalah 10,0 dalam satuan raster, dan elevasi secara default ditulis ke field bernama ELEV.

Centang Produce 3D vector jika Anda ingin ketinggian pada setiap vertex. Biarkan nonaktif untuk peta cetak karena banyak software menghapus Z secara diam-diam.
Saudaranya, gdal:contour_polygon, menghasilkan pita terisi di antara dua elevasi, bukan garis, dengan ELEV_MIN dan ELEV_MAX pada setiap poligon. Inilah yang Anda perlukan untuk peta hipsometrik atau luas genangan, dan ini menghemat pekerjaan polygonize DEM yang telah direklasifikasi secara manual.

Contour dari DEM lidar menjadi berisik karena permukaannya berisik. Smooth raster sebelum langkah contour, bukan garis setelahnya. Smoothing pada garis membuat garis-garis tersebut saling berpotongan.
Peta kertas hasil pemindaian: QGIS tidak memiliki ArcScan
Jika Anda berasal dari ArcGIS dan mencari padanan QGIS untuk ArcScan, padanan tersebut tidak ada. Tracing raster interaktif, ketika Anda mengeklik sebuah garis pada hasil pemindaian dan alat mengikuti garis tersebut, memang merupakan kekosongan nyata. Saya lebih baik mengatakannya terus terang daripada membiarkan Anda mencari-cari menunya.
Hal yang sebenarnya digunakan orang, kira-kira berdasarkan seberapa baik hasilnya:
- GRASS, tersedia bersama sebagian besar installer QGIS. Ubah hasil pemindaian menjadi raster biner menggunakan threshold, tipiskan dengan r.thin, lalu jalankan r.to.vect dengan feature type
line. Dokumentasi GRASS memperingatkan bahwa proses ini membuat terlalu banyak node pada persimpangan dan spur yang menggantung, jadi siapkan waktu untuk pembersihan. Gratis, dan berfungsi pada pekerjaan garis yang bersih. - Potrace atau AutoTrace, di luar QGIS. Bitmap ke vektor, lalu masukkan kembali hasilnya dan lakukan georeferensi. Bagus untuk hasil pemindaian dengan kontras tinggi, tetapi tidak mengetahui apa pun tentang geografi.
- Bunting Labs AI Vectorizer (daftar repository QGIS). Plugin QGIS yang melengkapi garis secara otomatis saat Anda melakukan digitasi, ditujukan khusus untuk peta geologi, as-built, dan denah. Batasannya: plugin ini mengirim potongan raster ke server mereka, tidak ada tingkat gratis selain masa uji coba, dan harga yang dipublikasikan mulai dari 29 dolar per bulan, per 23 Agustus 2026.
Untuk beberapa fitur pada satu lembar, digitasi manual dengan snapping tetap menjadi pilihan terbaik. Saya tidak akan membangun alur kerja tracing untuk kurang dari sekitar lima puluh fitur.
Kapan polygonize merupakan alat yang salah
Arahkan polygonize ke ortofoto dan Anda mendapatkan noise karena tidak ada yang bisa di-threshold. Atap merah dan mobil merah memiliki nilai piksel yang mirip. Atap abu-abu dan jalan abu-abu memiliki nilai piksel yang mirip. Kelas ada di kepala Anda, bukan di file.
Mengekstrak objek dari citra fotografi membutuhkan model yang telah belajar seperti apa objek terlihat. Alat-alat tersebut menulis vektor secara langsung, sehingga polygonize tidak pernah masuk ke dalam proses. Berikut yang perlu Anda instal dan yang diminta oleh masing-masing alat.
| Tool | Yang Anda instal | GPU | Account | Imagery leaves your machine | Yang dihasilkan | Biaya |
|---|---|---|---|---|---|---|
| Deepness (source) | Plugin manager, lalu paket Python dan model ONNX-nya | Opsional, CPU berfungsi | Tidak | Tidak | Polygon layer, bounding boxes, atau raster | Gratis |
| Geo-SAM | Plugin manager, lalu dependensi dan bobot model dari dialog pengaturannya sendiri | Opsional, klik dijalankan pada CPU | Tidak | Tidak | Polygon layer, pada tingkat piksel atau disederhanakan | Gratis |
| samgeo | Paket Python di environment Anda sendiri, tanpa panel QGIS | Direkomendasikan | Tidak | Tidak | GeoJSON, Shapefile, atau GeoPackage yang Anda muat sendiri | Gratis |
| Mapflow (site) | Plugin manager | Tidak | Ya | Ya, upload GeoTIFF Anda atau tile service yang Anda tunjuk | Polygon layer | Kredit, berbayar |
| Bunting Labs AI Vectorizer | Plugin manager | Tidak | Ya | Ya, dalam potongan raster | Vertex ke layer yang sedang Anda digitasi | Uji coba, lalu 29 dolar per bulan |
| AI Segmentation, milik kami | Plugin manager | Tidak | Ya | Ya dalam kedua mode cloud, tidak untuk model lokal kecil | Polygon layer dalam CRS project, dengan label, kelas, skor, area_m2, dan perimeter_m | Kuota gratis, lalu 39 euro per bulan belum termasuk PPN |
Satu batasan untuk masing-masing alat.
- Deepness menjalankan model yang Anda berikan, jadi Anda harus menemukan atau melatih model terlebih dahulu.
- Geo-SAM menerima klik dan kotak, satu objek setiap kali.
- samgeo tidak memiliki antarmuka QGIS. Anda menulis Python.
- Mapflow menyediakan katalog model tetap, yaitu bangunan, hutan, jalan, dan lokasi konstruksi, sehingga tidak dapat menemukan objek yang belum pernah dilatih untuk dikenali.
- Bunting Labs AI Vectorizer mengikuti pekerjaan garis saat Anda melakukan digitasi. Alat ini tidak menemukan setiap objek di dalam suatu zona.
- AI Segmentation, milik kami, mengirim citra ke server dalam kedua mode cloud. Hanya model lokal kecil yang tetap berada di mesin Anda.
Biaya dan tingkat gratis berlaku per 23 Agustus 2026.

Output model mentah dari alat mana pun memerlukan filter, seperti output polygonize memerlukan pembersihan. Pada satu proses di pusat Paris, kami mempertahankan 82 poligon dari 635 poligon, dan 82 poligon tersebut masih mencakup 84 persen area terbangun. Panduan footprint bangunan menjelaskan langkah filtering tersebut dari awal hingga akhir, dan artikel SAM di QGIS membahas objek apa saja yang dapat ditemukan model-model ini dengan baik.
Try it free in QGIS, no card needed
Baca selanjutnyaAI Segmentation untuk QGIS: panduan lengkap
Versi dua menit
Buka properti raster Anda dan lihat tipe band serta rentang nilainya. Integer dengan kurang dari seratus nilai berbeda berarti langsung buka Raster > Conversion > Polygonize (Raster to Vector), lalu Dissolve, filter berdasarkan area, dan Simplify. Float dengan ribuan nilai berbeda berarti gunakan Reclassify by table terlebih dahulu. Foto berarti semua ini tidak berlaku, dan perbandingan plugin AI QGIS adalah halaman yang perlu Anda buka berikutnya.
Jika yang Anda perlukan hanya bangunan, alat footprint bangunan gratis kami mengambilnya dari open data di browser tanpa plugin sama sekali.


