Polygon secara ilmu GIS dapat diartikan sebagai sebuah objek berupa vektor yang terbentuk oleh sekumpulan koordinat yang mewakili benda/objek tertentu di muka bumi, sedangkan Color (warna) dapat diartikan sebagai sebuah spektrum tertentu yang terdapat di dalam suatu cahaya sempurna. Identitas suatu warna ditentukan berdasarkan panjang gelombang cahaya tersebut.
Pada tulisan ini blog INFO-GEOSPASIAL akan menjelaskan bagaimana cara menyalin suatu kode warna di dalam objek polygon di QGIS ke dalam suatu kolom/field di atribut tabel pada layer polygon tersebut.
Caranya, di dalam aplikasi QuantumGIS panggil layer format SHP (shapefile) yang isinya berupa objek polygon.
![]() |
SHP Administrasi Provinsi Bali di QGIS |
![]() |
Tabel Layer Administrasi Provinsi Bali |
Selanjutnya buat warna objek polygon menjadi di kategorikan berdasarkan field yang di inginkan (contoh pada artikel ini menggunakan field 'nama').
![]() |
Layer Administrasi Bali dalam tampilan warna yang di kategorikan |
Dalam tahap berikutnya adalah bagaimana caranya mengambil kode warna objek polygon yang sedang di tampilkan ke dalam kolom 'color_hex' dan 'color_rgb' di dalam atribut tabel. Terdapat dua cara, yang pertama dilakukan dengan manual, yaitu dengan menyalin kode warna pada setiap objek polygon satu per satu. Hal tersebut cukup cepat di lakukan jika jumlah objek polygon yang di beri warna hanya sedikit, tapi itu akan menjadi tidak efektif jika dilakukan untuk objek polygon yang di beri warna berjumlah banyak. Untuk mengatasi hal tersebut, maka kita bisa lakukan cara yang kedua yaitu dengan menggunakan script Python.
Caranya dengan aktifkan tool QGIS Python Console. Kemudian masukan Script Python berikut :
Caranya dengan aktifkan tool QGIS Python Console. Kemudian masukan Script Python berikut :
prefix = "'"
layer = iface.activeLayer()
attr = layer.rendererV2().classAttribute()
attrColor = 'color_hex' # Nama field yang akan di isi kode warna
fieldIndex = layer.dataProvider().fieldNameIndex(attrColor)
attrFeatMap = {}
for cat in layer.rendererV2().categories():
expr = "\""+attr+"\"="+prefix+unicode(cat.value())+prefix
for f in layer.getFeatures(QgsFeatureRequest(QgsExpression(expr))):
attrMap = { fieldIndex : cat.symbol().color().name()}
attrFeatMap[ f.id() ] = attrMap
layer.dataProvider().changeAttributeValues( attrFeatMap )
Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif.
Script di atas berfungsi untuk menyalin kode warna pada objek polygon ke dalam bentuk hexadecimal.
![]() |
Proses Menjalankan Scipt dengan Python Console |
Sebelum menjalankan script di atas, pastikan warna objek polygon sudah di kategorikan, dan layer SHP sudah dalam keadaan editing.
Setelah Script di atas di jalankan di Python Console, maka hasilnya kode warna dalam bentuk hexadecimal akan otomatis terisi pada field 'color_hex' seperti pada gambar berikut :
![]() |
Tabel Layer Administrasi Provinsi Bali dengan file color_hex sudah terisi dengan kode warna |
Untuk menyalin kode warna dalam bentuk RGB (Red,Green,Blue) maka script yang digunakan adalah sebagai berikut :
prefix = "'"
layer = iface.activeLayer()
attr = layer.rendererV2().classAttribute()
attrColor = 'color_rgb' # Nama field yang akan di isi kode warna
fieldIndex = layer.dataProvider().fieldNameIndex(attrColor)
attrFeatMap = {}
for cat in layer.rendererV2().categories():
expr = "\""+attr+"\"="+prefix+unicode(cat.value())+prefix
for f in layer.getFeatures(QgsFeatureRequest(QgsExpression(expr))):
attrMap = { fieldIndex : str(cat.symbol().color().red()) +','+ str(cat.symbol().color().green()) +','+ str(cat.symbol().color().blue())}
attrFeatMap[ f.id() ] = attrMap
layer.dataProvider().changeAttributeValues( attrFeatMap )
Jika scipt di atas di jalankan, maka di dalam kolom 'color_rgb' akan di dapat hasil seperti berikut :![]() |
Tabel Layer Administrasi Provinsi Bali dengan file color_rgb sudah terisi dengan kode warna |
Wassalamualaikum Wr.Wb
0 komentar:
Post a comment