Arsip Tag: QGIS

QGIS SVG Maki, REGEX

Mapbox memiliki koleksi icons, namanya Maki ( https://github.com/mapbox/maki ), dan isinya SVG 11×11 pixels dan SVG 15×15 pixels. Icons tersebut bisa kita masukkan ke QGIS, namun sayangnya opsi mengubah kolor eh colour nya ngga keluar. Usut punya usut, terpaksa saya buka SVG nya dengan Notepad++ dan ternyata memang SVG bawaan QGIS agak sedikit berbeda.

SVG Paramters untuk maki15 tidak ada yang bisa diubah, sehingga kita tidak bisa mengganti kolornya …

Ternyata, SVG bawaan QGIS memiliki param(fill), param(outline) dan juga param(outline-width)

Untuk pembanding, terlihat SVG Maki tidak memiliki param, dan perhatikan width=”15px” dan juga height=”15px” sangat mengganggu

Kenapa Width dan Height yang hanya 15pixel mengganggu…? Ngga juga sih sebenarnya di QGIS, karena otomatis di resize, namun kalau kita preview, gambar 15×15 pixel itu ngga terlalu nampak … karena memang Maki ini hanya digunakan untuk icon marker.

SVG QGIS ukurannya 580×580 …

Nah, agar sedikit mengikuti QGIS, tinggal diubah ukuran height dan width menjadi 580 … (jangan diubah viewBox karena itu relatif terhadap path)

Dan, tinggal dicopy-paste param nya …

diubah width dan ditambahkan param
perhatikan sekarang ikon menjadi 580×580 … awalnya hanya 15×15 pixels, sangat kecil dibuka di IE

dan sekarang SVG memiliki parameter …

Dengan begini, kita bisa membuat SVG yang bagus untuk Composer peta kita di QGIS

Regex Replace

Find in Files pad Notepad++ dengan menggunakan Regular Expression pada Search Mode. Perhatikan bahwa tools ini sangat destruktif, dan dapat merusak data Anda jika Anda tidak hati-hati!

Setelah kita tahu permasalahannya, mengganti setiap path satu-satu untuk file SVG sebanyak itu juga bukan pekerjaan mudah …

Namun, Notepad++ punya solusi untuk Anda, yaitu dengan menggunakan Replace eh Find in Files

Kita tinggal cari dengan Regular Expression pola yang harus diganti, lalu biarkan Notepad++ menggantinya otomatis untuk Anda.

Ada yang perlu dicatat di sini, yaitu beberapa karakter perlu di-escape, yaitu tanda kurung.

Find:

<path (.[^/>]*)/>

Replace

<path $1  fill="param\(fill\)" fill-opacity="param\(fill-opacity\)" stroke="param\(outline\)" stroke-opacity="param\(outline-opacity\)" stroke-width="param\(outline-width\)" />

Perhatikan bahwa kita perlu meng-escape tanda kurung!

Apaan tuh Regex?

Regex, atau regular expression, atau ekspresi regular, memang bukan mainan rakyat jelata. Ini lebih sering digunakan oleh anak Ilmu Komputer, yang mengambil mata kuliah Teori Bahasa dan Automata.

Dengan Regex, kita bisa lebih cepat membuat pola. Pola ini nanti bisa komputer mencarinya. Kita juga bisa membuat pola untuk ekspresi pengganti.

Sederhananya, jika Anda menguasai regex, Anda tidak akan repot lagi mencari dan mengganti ekspresi kata maupun kalimat.

Sayangnya, bukan untuk rakyat jelata …

Penutup

Tampilan akhir, SVG kita sedikit lebih aneh bentuknya, tidak hitam lagi!

Kalau Anda tidak ada melakukan kesalahan, sekarang otomatis SELURUH SVG kita akan berubah bentuknya di QGIS, menjadi tidak hitam lagi, namun sedikit abu-abu dan ada strok nya.

Sekarang, kita bisa bebas memilih warna untuk SVG kita!

gdalwarp via cmd berbeda dengan via QGIS

Masih bingung kenapa hasil gdalwarp QGIS dan via gdalwarp.exe bisa berbeda hasilnya, ya?

Kok bisa berbeda ya?

Kedua gambar tersebut merupakan hasil gdalwarp dari WGS84 (EPSG:4326) ke World Sinusoidal (EPSG:54008)

World Sinusoidal (EPSG:54008) kalau menggunakan vektor

MapServer Raster Color Ramp

Sudah lama saya tidak otak-atik MapServer, ternyata Raster nya mendukung Color Ramp.

Apa itu Color Ramp?

Color Ramp memungkinkan kita membuat dua warna yang berbeda: warna mula dan warna akhir. Nah, nantinya warna ini akan menjadi warna yang digunakan oleh MapServer menampilkan raster kita.

Berguna dalam DEM

Jika kita punya data DEM (Digital Elevation Model), default gambar yang ditampilkan adalah hitam-putih (greyscale) yang tentu membosankan. Agar citra raster DEM tadi lebih menarik, salah satu cara adalah dengan diwarnai. Silahkan lihat perbandingannya:

Berikut contoh petikan kode yang saya gunakan untuk mewarnai DEM tadi:

ColorRange formatnya adalah kode RGB warna awal lalu RGB warna akhir dari batas kita

Darimana dapat Angka -7 dan 91?

… itu dari statistik DEM kota Pekanbaru tadi, yaitu titik terendah adalah -7 dan ter-tinggi adalah 91m dari permukaan laut. Saya taunya setelah dibuka di QGIS.

MapServer vs QGIS

DEM yang sama di QGIS

Ya, ngga bisa dibandingkan lah, karena QGIS lebih banyak fitur untuk menampilkan peta yang bagus. Contohnya untuk data DEM yang sama, tapi di QGIS hasilnya kek gambar di atas. Di QGIS, ada fitur perwanaan Hillshading dan ada blending options, hampir semewah sotosop, sehingga lebih bagus hasil peta kita.

Buat yang ingin mendownload hasil QGIS, yang 300dpi, walaupun agak jelek (jelek karena saya hanya menggunakan DEM dari SRTM, bukan dari DEMNAS), sila ke Google Drive saya. Tenang, ngga dipassword dan ngga perlu follow IG saya …

https://drive.google.com/open?id=1fejidVvZI0lh1OgYX5BqhL8VM9D8tIlQ

Blending Options

Blending Options adalah fitur yang keren banget dalam pembuatan peta. Walaupun MapServer dukung dengan membuat COMPOSITE , setidaknya itu kata dokumentasinya, dan SIYALNYA SAYA TIDAK BISA, mungkin karena beda versi. Padahal, kalau bisa, saya ingin melakukan efek lighten, seperti yang saya buat dengan QGIS pada gambar di atas.

Di MapServer, saya hanya bisa menggunakan OPACITY , yaitu tingkat transparansi layer. Dengan Opacity 15, saya menghasilkan efek seperti pada gambar MapServer di Galeri perbandingan.

The COMPOSITE block is used to achieve blending effects with MapServer.
Some cartographic renderings benefit from the addition of advanced blending modes, as explained in detail in Blend
Modes. This functionality is essential for more pleasant renderings of raster hillshadings over vector surfaces. It is also useful for simulating different kinds of overprinting effects.

MapServer Documentation, Release 7.0.7, 4.1.4 COMPOSITE

Referensi

Mau tau lebih lanjut tentang Color Ramps, sila lihat wiki MapServer di Github, pada tautan berikut:

https://github.com/mapserver/mapserver/wiki/Color-Ramps/

[unsolved] qgis error IN gEOrEFERENCING

Sebenarnya ngga error sepenuhnya. Error hanya terjadi jika dilakukan liner transformation dan hanya untuk menghasilkan file WLD (WorldFile) saja. File WorldFile yang dihasilkan seharusnya benar, namun entah kenapa saat ditampilkan ke QGIS, malah posisinya tidak pas.

Namun, jika diubah ke proyektif, aman-aman jaya saja.

Kenapa Mesti Linear?

Linear Transformation hanya untuk menghasilkan file WLD, dan tidak harus menghasilkan citra/gambar baru. Ini bisa menjadi masalah jika gambar kita besar, maka akan terdapat dua buah gambar, gambar awal yang belum ter-geo-referencing dan gambar kedua hasil georefencingnya. Lihat gambar contoh di bawah ini.

Gambar awal hanya 4MB membengkak menjadi 82MB saat di-georeferencing, padahal sudah dikompres menggunakan algoritma LZW

Seharusnya file WLD dan AUX.XML sudah dapat digunakan untuk menampilkan gambar tersebut di QGIS. Selama ini Oke Oke Saja, namun entah kenapa kali ini error.

Hasil georeferencing pemnggunakan proyektif, benar dan tepat

Gambar di atas adalah gambar seharusnya. Sengaja ditransparanan sebentar untuk memperlihatkan akurasi peta klasik zaman Hindia Belanda.

Gambar kedua, di bawah ini, error, padahal file WLD nya benar

Barangkali ada yang pernah mengalama seperti saya ini?

Ada yang tahu?

Kuwahara Filter

Kuwahara Filter adalah filter untuk mengurangi noise pada citra tanpa mengubah batas (edge). Mungkin semacam smart-blur pada pengolah citra. Kerennya, filter tersebut ada di QGIS.

Contoh Kuwahara, gambar diambil dari imageJ

Nah, pada QGIS, dapat dilihat contohnya di sini:

setelah dilakukan Kuwahara pada foto dron

Sedangkan foto aslinya seperti ini:

foto asli dari dron DJI, terlihat sebearnya bukan noise, tetapi memang fitur

Dengan dilakukan Kuwahara, kita jadi lebih gampang saat mendijitasi gambar secara manual, karena terlihat lebih smart-blur, lebih kurang noise.

Namun, kuwahara di QGIS hanya kecil, rencana nya mau diubah biar lebih kuat … tapi saya agak pusing liat kode nya … pake numpy …

buat yang mau ber pusing-pusing ria, silahkan lihat kode nya di %appdata%\QGIS\QGIS3\profiles\default\buat yang mau ber pusing-pusing ria, silahkan lihat kode nya di

[Carto][QGIS] xmin xmax ymin ymax

Untuk mengetahui koordinat paling kiri (xmin) dari geometri kita, di QGIS, dapat menggunakan rumus-rumus berikut

y_max( transform( $geometry, 'EPSG:4326', 'EPSG:32647') )
y_min( transform( $geometry, 'EPSG:4326', 'EPSG:32647') )
x_max( transform( $geometry, 'EPSG:4326', 'EPSG:32647') )
x_min( transform( $geometry, 'EPSG:4326', 'EPSG:32647') )

Ini berguna untuk transformasi dulu geom kita ke UTM, pada contoh ini adalah UTM Zona 47 Utara (untuk kota Pekanbaru s.d Medan), lalu baru kita cari tahu nilai extents nya … Dengan tahu angka min dan max nya, kita akan lebih presisi dalam membuat petanya.

QGIS Composer @grid_number / 1000

Buat yang bikin peta pake QGIS, dan menampilkan koordinat UTM, rasanya koordinatnya buat penuh peta kita saja, karena satuannya dalam METER. Nah, agar angkanya kecil, kita dapat menggunakan @grid_number / 1000 sebagai format penyesuaian koordinatnya. Akibatnya, sekarang yang ditampilkan adalah koordinat dalam KILOMETER, sehingga lebih rapih kesannya.

Sebagai perbandingan, sila lihat gambar di atas, terlihat koordinat UTM kita adalah 757 600 timur, lalu di sebelahnya adalah 757700 meter timur. Terlalu banyak nol nya …

Sekarang coba bandingkan dengan yang di bawah ini …

terlihat sekarang koordinatnya adalah 757.6

Nah, kita tahu itu adalah koodinat UTM tetapi dalam KILOMETER.

Cara membuatnya adalah dengan menggunakan

@grid_number  / 1000

sebagai format nya … pilih penyesuaian dekat Formatnya, lalu ketik kode di atas … cukup lama juga saya mencari cara ini … hehehehe

RBI 10k TIDAK MUAT DI a2

Buat yang ingin mencetak RBI 10 ribu, ternyata tidak muat di kertas A2, karena RBI 10k jika dicetak ke UTM Zona 47N karena di sekitar Pekanbaru, ternyata rata-rata panjangnya adalah 4641.6774904749m, jika dicetak dengan skala 10 ribu, maka angka tersebut dibagi 10 ribu menjadi 0.4meter atau sekitar 464.1 milimeter.

Adapun lebar rata-rata 4610.8227494262m, sehingga lebar peta skala 10 ribu adalah sekitar 461mm.

Ukuran kertas A2 adalah 420 x 594 mm, sehingga lebih kecil dari 461 mm (latitude) apalagi 464mm (longitude).

Solusi mungkin dicetak di kertas A1 yang berukuran 594mm x 841 mm. Terlalu besar kertasnya.

Sepertinya harus dicetak di digital printing dengan kertas custom saja.

Demo pemecahan RBI 10ribu ke A3 skala 5ribu

Ceritanya, di kantor hanya ada printer A3. Anda butuh mencetak peta skala 5000, misalnya untuk Rencana Tata Ruang di QGIS.

Nah, berdasarkan pengalaman saya, RBI 10ribu terpaksa dipecah menjadi 4×3, yaitu 4 baris dan 3 kolom yang bisa masuk ke sebuah peta ukuran kertas A3 untuk dicetak.

Nah, dari QGIS, tinggal kita bagi saja batas (extents) dari RBI tadi menjadi 4baris3kolom, lalu masing-masing wilayah tinggal dibuatkan Atlasnya. Demo hasilnya dapat dilihat pada link Github Page saya…

https://kampar.github.io/0816-2317/

Github Page dengan Leaflet.JS

Anda mau lihat jeroannya, source code nya, bisa saja dari Github saya,

https://github.com/kampar/0816-2317