Mengonversi Raster menjadi Vektor di QGIS: 5 Metode
Diterbitkan Diperbarui

Untuk mengonversi raster menjadi poligon vektor di QGIS, buka Raster > Conversion > Polygonize (Raster to Vector), pilih band Anda, beri nama field output, lalu jalankan. Anda mendapatkan satu poligon untuk setiap kelompok piksel terhubung yang memiliki nilai sama, dengan nilai tersebut di attribute table. Ini adalah jawaban yang tepat untuk raster terklasifikasi dan jawaban yang salah untuk foto. Empat metode lainnya mencakup raster yang tidak dapat dibaca oleh polygonize.
Metode 2 adalah plugin yang kami buat, jadi pertimbangkan bagian tersebut dengan sewajarnya. Bagian itu mendapat lima baris yang sama seperti empat metode lainnya.
Jawaban singkat
Buka properti raster dan baca dua hal: tipe band dan jumlah nilai berbeda. Keduanya menentukan metode untuk Anda.
| Input Anda | Metode | Biayanya |
|---|---|---|
| Raster terklasifikasi (tutupan lahan, reclass kemiringan, mask) | Metode 1, Raster > Conversion > Polygonize | Gratis, di QGIS inti |
| Citra ortofoto, drone, atau satelit | Metode 2, model segmentasi | Plugin gratis memerlukan kartu NVIDIA. Plugin cloud memiliki tingkat gratis, lalu berlangganan |
| Raster kontinu (NDVI, kemiringan, band reflektansi) | Metode 3, Reclassify by table, lalu polygonize | Gratis, di QGIS inti |
| DEM atau permukaan elevasi apa pun | Metode 4, Raster > Extraction > Contour, atau Contour Polygons | Gratis, di QGIS inti |
| Peta kertas hasil pemindaian atau denah | Metode 5, GRASS r.thin plus r.to.vect | Gratis, dan lambat. AI berbayar untuk tracing tersedia |
Setiap jalur menu, id algoritma, dan default di bawah ini diperiksa terhadap dokumentasi QGIS 3.44 dan dokumentasi GDAL stabil pada 23 Agustus 2026. Jalur menu mengasumsikan tata letak QGIS default, yang dapat diubah oleh plugin.
Metode 1: Polygonize
Gunakan CRS terproyeksi. Dua langkah di bawah mengambil jarak atau area dalam satuan layer, dan dalam derajat angka tersebut tidak berarti apa-apa.
Algoritmanya adalah Polygonize (raster to vector), id gdal:polygonize, yang membungkus utilitas GDAL gdal_polygonize.

Buka alat
Raster > Conversion > Polygonize (Raster to Vector), atau Processing Toolbox di bawah GDAL, Raster conversion.
Pilih band
Band 1 kecuali kelas Anda berada di tempat lain. Hanya satu band, jadi kurangi raster RGB menjadi satu band kelas.
Beri nama field
DN adalah default. Ganti namanya menjadi landcover_code, bukan DN.
Tentukan konektivitas 8
Secara default nonaktif, jadi piksel harus berbagi batas penuh untuk bergabung. Aktifkan dan piksel yang bersentuhan secara diagonal juga bergabung. Jika tetap nonaktif, fitur diagonal tipis terpecah menjadi rangkaian poligon. Pada uji WorldCover kami di bawah, opsi ini memangkas jumlah poligon sebesar 21% dan jumlah vertex sebesar nol: ia mengelompokkan piksel, bukan menghaluskannya.
Simpan ke file nyata
Defaultnya adalah layer sementara. Tutupan lahan 10 m seluas 100 km2 menghasilkan 9.221 poligon dan GeoPackage 4,9 MB, jadi tulis langsung ke file.
![Dialog QGIS Polygonize: Land cover 10 m [EPSG:32631], Band 1 (Palette), field landcover_code, konektivitas 8 tidak dicentang, output ke GeoPackage.](/_next/image?url=%2Fblog%2Fraster-to-vector-qgis%2F02_polygonize_dialog.jpg&w=3840&q=75&dpl=dpl_6yGt761WDW82b7PrnK3rvzUMq4Kh)
Dua hal dapat menghemat waktu Anda. Pertama, tetapkan nilai NoData pada kelas yang tidak Anda inginkan: GDAL kemudian membaca mask validitas band dan melewati piksel tersebut, bukan membungkus satu poligon latar belakang besar di sekeliling semuanya. Ini adalah keluhan paling umum tentang output polygonize, dan ini merupakan properti raster, bukan pengaturan alat.

Kedua, perhatikan tipe band. gdal:polygonize selalu menulis field integer, jadi ia mengonversi band float saat masuk, dan ini gagal dalam dua cara tergantung cara raster menyimpan nilainya. Tidak ada peringatan untuk keduanya. Band Float32 harus melalui Metode 3 terlebih dahulu.
Tangga dan speckle: sieve dulu, lalu simplify sebagai coverage
Polygonize menelusuri batas piksel, sehingga tepi lahan diagonal kembali sebagai tangga bersudut siku-siku, satu per piksel. Klasifikasi Sentinel 10 m menghasilkan tangga 10 m.

Itu adalah output yang benar, dan tidak ada pengaturan di dalam polygonize yang mengubahnya. Solusinya adalah satu langkah raster sebelum polygonize dan satu langkah coverage sesudahnya. Pada persegi 10 km ESA WorldCover di sekitar Crest, Drôme, polygonize menghasilkan 9.221 poligon dan 200.656 vertex, dan 57% dari poligon itu lebih kecil dari lima piksel. Melakukan sieve pada raster dengan threshold 10 piksel lebih dulu menurunkannya menjadi 2.660 poligon dan hanya mengubah kelas 1,75% piksel.
Perbaikan vektor yang biasa dipakai justru merusak peta. Simplify di QGIS bekerja satu poligon pada satu waktu, sehingga dua poligon bertetangga menyederhanakan tepi bersama mereka secara berbeda: pada toleransi 10 m, cara ini membuka 88 ha celah dan 81 ha tumpang tindih di seluruh persegi 10.000 ha. Simplify coverage memperlakukan layer sebagai satu jaring dan tidak menyisakan satu pun.
| Langkah pada persegi 10 km | Poligon | Vertex | GeoPackage | Piksel yang kelasnya berubah | Celah dan tumpang tindih |
|---|---|---|---|---|---|
| Polygonize, default 4-connected | 9.221 | 200.656 | 4,9 MB | 0% | 0 |
| Polygonize, 8-connected | 7.284 | 200.656 | 4,7 MB | 0% | 0 |
| Sieve 5 piksel, lalu polygonize | 3.886 | 168.060 | 3,6 MB | 0,94% | 0 |
| Sieve 10 piksel (default), lalu polygonize | 2.660 | 155.920 | 3,2 MB | 1,75% | 0 |
| Sieve 50 piksel, lalu polygonize | 1.001 | 122.440 | 2,4 MB | 5,36% | 0 |
| Sieve 10 piksel, lalu Simplify pada 10 m | 2.660 | 57.896 | 1,5 MB | 4,11% | 169 ha |
| Sieve 10 piksel, lalu Simplify coverage pada 10 m | 2.660 | 84.984 | 1,9 MB | 2,63% | 0 |
Sieve lebih unggul daripada filter $area karena alasan yang sama. Menghapus setiap poligon di bawah 500 m2 membuang 5.263 speck, yaitu speck yang diserap oleh sieve 5 piksel, tetapi menyisakan lubang seluas 94 ha; sieve memberikan piksel-piksel itu kepada tetangga terbesarnya, sehingga peta tetap penuh dari tepi ke tepi. Dari 51 tutorial YouTube QGIS di korpus riset kami yang menyebut Polygonize, tidak satu pun menjalankan Sieve sebelum itu.

Di QGIS, seluruh pembersihan terdiri dari empat langkah, dalam urutan ini.
Sieve raster
Raster > Analysis > Sieve, id gdal:sieve, sebelum polygonize. Threshold dalam piksel dan defaultnya 10, yaitu 1.000 m2 pada raster 10 m. Setiap patch yang lebih kecil mengambil nilai tetangga terbesarnya. Perubahan kelas bertambah seiring threshold: 1,75% piksel pada 10, 8,19% pada 100.
Polygonize raster yang sudah di-sieve
Metode 1 seperti di atas. Dissolve tidak diperlukan: polygonize sudah menulis satu poligon per patch.
Simplify coverage
Processing Toolbox, Vector coverage, native:coveragesimplify, ada di QGIS sejak 3.36. Toleransi dalam satuan layer dan defaultnya 1. Pada raster 10 m, nilai ini tidak menghapus apa pun pada 5 m dan menghapus 45% vertex pada 10 m, jadi mulailah dari satu piksel. Pakai Simplify biasa untuk patch terisolasi yang tidak berbagi tepi, misalnya satu kelas di atas NoData.
Smooth, tetapi hanya pada kurva
native:smoothgeometry, pada objek yang benar-benar melengkung: sungai, garis pantai, petak vegetasi. Offset defaultnya 0.25, iterasi mengatur seberapa bulat hasilnya. Atur Maximum node angle to smooth menjadi 90 dan sudut yang lebih tajam tetap tajam, sehingga sudut bangunan dan petak tetap terselamatkan.
Cara kami mengukurnya. ESA WorldCover 2021 v200, tile N42E003, persegi 10 km berpusat di Crest (44,728 LU, 5,022 BT), direproyeksi ke EPSG:32631 pada 10 m dengan nearest neighbour, pada 23 September 2026. “Piksel yang kelasnya berubah” dihitung dengan membakar kembali poligon ke grid yang sama dan membandingkannya dengan raster asli. Celah dan tumpang tindih adalah area yang tidak tertutup poligon mana pun dan area yang tertutup dua poligon. Baris polygonize, sieve, Simplify, dan Simplify coverage dijalankan ulang dengan alat bawaan QGIS 3.44.7 (GDAL 3.12, GEOS 3.14) dan menghasilkan jumlah yang sama. Satu jendela, satu produk tutupan lahan, dan satu ukuran piksel: raster 30 m atau 1 m menggeser setiap angka.
Gunakan saat: raster menyimpan kelas sebagai integer.
Lewati saat: band berupa float, foto, atau elevasi.
Metode 2: Model segmentasi untuk foto
Model segmentasi telah mempelajari seperti apa objek terlihat, sehingga dapat menemukannya dalam foto ketika tidak ada nilai piksel yang memisahkannya. Kami membuat salah satunya, AI Segmentation. Bagian ini membahas alat kami sendiri.
Arahkan polygonize ke ortofoto yang sama dan Anda mendapatkan noise. Atap merah dan mobil merah memiliki nilai piksel yang serupa, begitu juga atap abu-abu dan jalan abu-abu. Kelas tersebut ada di kepala Anda, bukan di file.
Instal dari plugin manager
Tidak perlu GPU, lingkungan Python, atau model weights untuk diunduh.
Buat akun
Akun diperlukan. Kuota gratis, lalu €39 per bulan di luar PPN.
Pilih mode
Kedua mode cloud mengirim citra ke server. Model lokal kecil tetap berada di komputer Anda.
Jalankan pada extent Anda
Hasilnya adalah layer poligon dalam CRS proyek, dengan label, kelas, skor, area_m2, dan perimeter_m pada setiap feature.
Filter output
Output mentah model perlu difilter seperti output polygonize perlu dibersihkan. Pada satu proses di pusat Paris, saya mempertahankan 82 poligon dari 635, dan 82 poligon tersebut mencakup 84 persen area terbangun.

Lima plugin lain juga melakukan pekerjaan ini, milik kami berada di baris terakhir. Biaya dan tingkat gratis dibaca pada 23 Agustus 2026.
| Alat | Yang diinstal | GPU | Akun | Citra meninggalkan komputer Anda | Hasil | Biaya |
|---|---|---|---|---|---|---|
| Deepness (source) | Plugin manager, lalu paket Python dan model ONNX-nya | Opsional, CPU dapat digunakan | Tidak | Tidak | Layer poligon, bounding box, atau raster | Gratis |
| Geo-SAM | Plugin manager, lalu dependensi dan model weights dari dialog pengaturannya | Opsional, klik berjalan di CPU | Tidak | Tidak | Layer poligon, pada level piksel atau disederhanakan | Gratis |
| samgeo | Paket Python di lingkungan Anda, tanpa panel QGIS | Disarankan | Tidak | Tidak | GeoJSON, Shapefile, atau GeoPackage yang Anda muat sendiri | Gratis |
| Mapflow (situs) | Plugin manager | Tidak | Ya | Ya di layanan cloud, upload GeoTIFF Anda atau layanan tile yang Anda tunjuk. Opsi on-premise enterprise ditawarkan | Layer poligon | Kredit, berbayar |
| Bunting Labs AI Vectorizer | Plugin manager | Tidak | Ya | Ya, dalam potongan raster | Vertex masuk 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 | Layer poligon dalam CRS proyek, dengan label, kelas, skor, area_m2, dan perimeter_m | Kuota gratis, lalu €39 per bulan di luar PPN |
Satu batasan untuk masing-masing.
- Deepness menjalankan model yang Anda berikan, jadi Anda harus menemukan atau melatihnya terlebih dahulu.
- Geo-SAM menerima klik dan kotak, satu objek setiap kali.
- samgeo tidak memiliki antarmuka QGIS. Anda menulis Python.
- Mapflow menawarkan model siap pakai untuk bangunan, hutan, jalan, dan lokasi konstruksi.
- Bunting Labs AI Vectorizer mengikuti garis saat Anda mendigitasi.
- AI Segmentation, milik kami, mengirim citra ke server dalam kedua mode cloud. Hanya model lokal kecil yang tetap lokal.
Gunakan saat: inputnya adalah foto dan objeknya lebih banyak daripada yang ingin Anda gambar secara manual.
Lewati saat: citra tidak boleh meninggalkan komputer Anda, yang bisa ditangani plugin lokal seperti Deepness atau Geo-SAM.
Coba gratis di QGIS, tanpa kartu diperlukan
Metode 3: Reclassify, lalu polygonize
Polygonize pada raster kontinu gagal dengan salah satu dari dua cara, tergantung cara nilai disimpan.
Disimpan sebagai bilangan bulat berskala, seperti produk NDVI, Anda mendapatkan poligon untuk hampir setiap piksel. Saya mengukur 39.801 poligon dari 40.000 piksel pada satu scene Sentinel-2.
Disimpan sebagai float mentah antara -1 dan 1, konversi ke integer meratakan setiap nilai menjadi -1, 0, atau 1 sebelum penelusuran dimulai. Scene yang sama kembali sebagai 238 poligon dalam dua kelas. Ini terlihat rapi, tetapi nilainya hilang.

Kemiringan, elevasi, suhu, dan band reflektansi mentah melakukan hal yang sama. Alat ini menelusuri batas antara nilai integer, dan raster kontinu tidak memiliki batas yang layak ditelusuri. Jadi buat sendiri kelasnya, dengan Reclassify by table, id native:reclassifybytable.
Buka Reclassify by table
Processing Toolbox, Raster analysis. Raster kontinu adalah inputnya.
Ketik tabel kelas
Tiga kolom: minimum, maksimum, nilai baru. Alat ini menerima -inf, inf, dan nan untuk NoData. Mask vegetasi terdiri dari tiga baris.
| Minimum | Maksimum | Nilai |
|---|---|---|
| -inf | 0.2 | 1 |
| 0.2 | 0.5 | 2 |
| 0.5 | inf | 3 |
Atur tipe data output
Di parameter lanjutan, Output data type defaultnya Float32. Atur menjadi Byte atau Int16 agar polygonize berjalan dengan benar.
Periksa batas rentang
Range boundaries defaultnya min < value <= max, yang menentukan ke mana piksel tepat pada 0.2 masuk. Pilih sesuai makna definisi kelas Anda.
Polygonize hasilnya
Jalankan Metode 1 pada raster yang telah direclassify, lalu empat langkah pembersihan.

Gunakan saat: Anda dapat menyatakan dalam angka di mana satu kelas berhenti dan kelas berikutnya dimulai.
Lewati saat: yang Anda inginkan adalah objek, bukan rentang nilai.
Metode 4: Contour dari DEM
Untuk elevasi, jangan gunakan polygonize. Gunakan Contour di Raster > Extraction > Contour, id gdal:contour.
Buka Contour
Raster > Extraction > Contour, dengan DEM sebagai input.
Atur interval
Defaultnya 10.0 dalam satuan raster, sehingga DEM metrik menghasilkan garis setiap 10 m.
Beri nama atribut
Elevasi masuk ke ELEV secara default. Pertahankan dan beri label dari atribut tersebut.
Tentukan Produce 3D vector
Centang untuk menyertakan ketinggian pada setiap vertex. Biarkan tidak dicentang untuk peta cetak, karena banyak perangkat lunak menghapus Z.
Beralih ke contour polygons untuk band terisi
Algoritma saudaranya gdal:contour_polygon menghasilkan band terisi di antara dua elevasi, dengan ELEV_MIN dan ELEV_MAX pada setiap poligon. Itulah yang digunakan untuk peta hipsometrik atau extent genangan, dan menghemat pekerjaan polygonize DEM yang telah direclassify secara manual.


Contour dari DEM lidar menghasilkan noise karena permukaannya juga memiliki noise. Haluskan raster sebelum langkah contour, jangan garisnya setelah itu: garis yang dihaluskan akan saling berpotongan.
Gunakan saat: yang Anda inginkan adalah level: elevasi, kedalaman, curah hujan, konsentrasi.
Lewati saat: raster sudah menyimpan kelas.
Metode 5: Peta kertas hasil pemindaian
Jika Anda datang dari ArcGIS untuk mencari padanan QGIS dari ArcScan, tidak ada padanannya. Tracing raster interaktif, ketika Anda mengeklik garis pada hasil pemindaian dan alat mengikutinya, adalah celah nyata di QGIS, dan saya lebih suka mengatakannya daripada membuat Anda mencari-cari menu. Untuk hal lain yang berubah saat Anda berpindah, lihat QGIS vs ArcGIS Pro.
Jalur gratisnya menggunakan GRASS, yang tersedia di sebagian besar installer QGIS.
Threshold hasil pemindaian
Ubah lembar hasil pemindaian menjadi raster biner: garis pada satu nilai, kertas pada nilai lainnya.
Tipiskan garis
r.thin mengurangi setiap goresan menjadi selebar satu piksel.
Vectorize
r.to.vect dengan tipe feature line. Dokumentasi GRASS memperingatkan bahwa ini membuat node berlebih di persimpangan dan cabang menggantung, jadi siapkan waktu untuk pembersihan.
Ada dua jalur lainnya. Potrace dan AutoTrace berjalan di luar QGIS: bitmap masuk, vektor keluar, lalu Anda melakukan georeferensi pada hasilnya. Keduanya bagus untuk hasil pemindaian berkontras tinggi dan buta terhadap geografi.
Di dalam QGIS, Bunting Labs AI Vectorizer (daftar repositori QGIS) melengkapi garis saat Anda mendigitasi, ditujukan untuk peta geologi, as-built, dan denah. Alat ini mengirim potongan raster ke server mereka, tidak ada tingkat gratis selain uji coba, dan harga yang dipublikasikan mulai dari 29 dolar per bulan, dibaca pada 23 Agustus 2026.
Untuk beberapa feature saja, digitasi manual dengan snapping tetap unggul. Saya tidak akan membuat alur kerja tracing untuk kurang dari sekitar lima puluh feature.
Gunakan saat: hasil pemindaian memiliki garis yang bersih dan ratusan feature.
Lewati saat: lembarannya samar, berpola arsiran, atau memiliki anotasi di atas garis.
Yang perlu diingat
| Yang dikatakan properti | Metode |
|---|---|
| Band integer, kurang dari seratus nilai berbeda | Metode 1, sieve, polygonize, lalu Simplify coverage |
| Tiga band dari sebuah foto | Metode 2, model segmentasi |
| Band float, ribuan nilai berbeda | Metode 3, reclassify by table, lalu Metode 1 |
| Elevasi dalam meter, atau permukaan halus apa pun | Metode 4, contour atau contour polygons |
| Lembar hasil pemindaian tanpa nilai kelas sama sekali | Metode 5, GRASS, atau digitasi manual |
Jumlah nilai berbeda menentukan jawabannya. Di bawah seratus, seseorang sudah mengklasifikasikan raster, dan polygonize menelusuri kelas-kelas tersebut dengan bersih.
Jika jumlahnya ribuan, belum ada yang mengklasifikasikan apa pun, jadi Anda menggambar threshold sendiri dalam Metode 3 atau menyerahkan pekerjaan kepada model dalam Metode 2.
Tangga adalah output yang benar, dan tidak ada pengaturan di dalam polygonize yang menghapusnya. Lakukan sieve pada raster lebih dulu, lalu gunakan Simplify coverage, bukan Simplify, agar poligon bertetangga tetap berbagi satu tepi.
Setiap langkah pembersihan memindahkan vertex, jadi hitung area yang digunakan dalam laporan dari raster, bukan dari poligon.
Polygonize tidak dapat membaca foto dengan pengaturan apa pun, karena kelasnya ada di kepala Anda, bukan di file.
Pertanyaan yang sering diajukan
Apakah raster menjadi poligon sama dengan raster menjadi vektor?
Tidak persis. Raster menjadi vektor mencakup poligon, garis, dan titik. Raster menjadi poligon secara khusus adalah jalur polygonize, Raster > Conversion > Polygonize, yaitu Metode 1. Contour dalam Metode 4 juga merupakan raster menjadi vektor, dan hasilnya berupa garis.
Mengapa polygonize menghasilkan satu poligon raksasa yang mengelilingi semuanya?
Kelas latar belakang tidak memiliki nilai NoData, sehingga GDAL menelusurinya sebagai data nyata. Tetapkan NoData pada kelas tersebut di properti raster, lalu jalankan kembali Metode 1.
Mengapa polygonize membuat poligon untuk hampir setiap piksel?
Raster tersebut kontinu, bukan terklasifikasi, sehingga hampir tidak ada dua piksel bertetangga yang memiliki nilai sama. Lakukan reclassify terlebih dahulu: Metode 3.
Bagaimana cara menghilangkan tepi bertangga?
Lakukan sieve pada raster sebelum polygonize, lalu jalankan Simplify coverage pada sekitar satu piksel, kemudian Smooth hanya pada feature yang melengkung. Simplify biasa bekerja poligon demi poligon dan membuka celah di antara poligon bertetangga. Hitung area dari raster jika area tersebut digunakan dalam laporan.
Apakah QGIS memiliki padanan ArcScan?
Tidak. QGIS inti tidak memiliki tracing raster interaktif. Metode 5 memiliki jalur gratis, GRASS r.thin lalu r.to.vect, dan jalur berbayar, plugin Bunting Labs mulai dari 29 dolar per bulan.
Bisakah saya melakukan polygonize pada foto udara atau citra satelit?
Tidak, dan hasilnya akan terlihat seperti noise, karena atap merah dan mobil merah memiliki nilai piksel yang sama. Gunakan model segmentasi: Metode 2.
Bagaimana cara menghapus poligon kecil yang dibuat polygonize?
Jalankan Raster > Analysis > Sieve pada raster sebelum polygonize. Alat ini menggabungkan setiap patch di bawah threshold ke tetangga terbesarnya. Menghapus poligon kecil sesudahnya justru meninggalkan lubang.
Apakah raster menjadi vektor gratis di QGIS?
Ya untuk Metode 1, 3, dan 4: polygonize, reclassify, contour, dan algoritma pembersihan semuanya merupakan bagian dari QGIS inti. Hanya kasus foto dan tracing hasil pemindaian berbayar yang memerlukan biaya.
Panduan footprint bangunan membahas langkah filtering dari awal hingga akhir, dan postingan SAM di QGIS membahas objek mana yang dapat ditemukan model-model ini dengan baik. Hub AI QGIS membandingkan plugin-plugin tersebut berdampingan. Jika yang Anda perlukan hanyalah bangunan, alat footprint bangunan gratis kami mengambilnya dari data terbuka di browser, tanpa plugin.
, buka 

