Konsep komposit hillshade adalah menggabungkan beberapa hillshades dengan orientasi sinar matahari yang berbeda untuk menghindari blind spot. Dibutuhkan untuk menggabungkan 3 gambar hillshades dengan 315⁰ (sinar matahari NW, layer default), masing-masing layer + 355⁰, + 275⁰. Rincian peningkatan dan keanggunan ini, seperti yang ditunjukkan di bawah ini . Deskripsi lengkap non-GIS ada di sini .
Menggunakan file srtm apa pun, 3 hillshades awal dapat dilakukan melalui:
gdaldem hillshade input.tif hillshades_A.tmp.tif -s 111120 -z 5 -az 315 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_B.tmp.tif -s 111120 -z 5 -az 355 -alt 60 -compute_edges
gdaldem hillshade input.tif hillshades_C.tmp.tif -s 111120 -z 5 -az 275 -alt 60 -compute_edges
Jawaban:
Sumber yang ditautkan menyebutkan "ubah fusi mode menjadi <Multiply>" , sehingga operasi yang harus dilakukan bukan rata-rata sederhana dari hillshades input (untuk ini, lihat juga Bagaimana cara rata-rata gdal_hillshades? ). Itu sesuatu yang lain. Namun, mari kita buat 3 hillshades arah-matahari yang berbeda:
Pertahankan nilai A, B, C terendah
Algoritma pertama yang saya pikirkan adalah untuk memfilter dan menjaga piksel paling gelap, alias piksel dengan nilai lebih rendah di antara input A, B, CA boolean dapat melakukan itu:
Daerah yang didominasi oleh bayangan sekarang lebih dari sisi berlawanan dari satu pusat lignt, telah meningkat sebesar 40⁰ di setiap sisi. Tidak seperti tautan yang disediakan, algoritma saat ini tampaknya kehilangan terlalu banyak area pencerahan.
Sudut
315±30⁰
(variasi sudut yang lebih kecil) daripada arus yang315±40⁰
akan lebih bagus.Diagram di bawah ini adalah dasar dari persamaan. Ini menunjukkan sumber cahaya A, B, C, dan Boolean perbandingan untuk nilai piksel A, B, C di setiap bagian. Garis kesetaraan membutuhkan perhatian khusus untuk dimasukkan ke dalam Boolean. Garis tengah memiliki nilai
221
untuk sumber cahaya tegak lurus. Pikirkan tentang bidang pengaruh , sumber cahaya terdekat adalah pengaruh utama, dan pengaruh paling jauh yang terlemah.Pertahankan nilai ekstrem untuk A, B, C
Algoritma Boolean lainnya mungkin untuk menjaga nilai yang paling ekstrem, baik piksel paling gelap maupun paling putih. Diagram berikut membantu untuk menjelaskan tentang rumus Boolean. Untuk setiap keenam lingkaran, ini mengidentifikasi nilai untuk disimpan dari A, B, C, dan Boolean untuk memilih area segitiga ditambah garis persamaan arah jarum jam, dan hanya itu . Ini memberi (dari atas dan searah jarum jam):
Jika variasi sudut tidak terlalu penting, bisa memberikan hasil yang baik.
Boolean lainnya
Anda dapat membuat Boolean yang lebih kompleks untuk menutupi seluruh lingkaran menggunakan kombinasi segmen perbatasan apa saja. Tetap penting bahwa hanya satu nilai dari A, B, C yang disimpan untuk satu segmen.
Berkembang biak
Saya melakukan beberapa upaya terarah ke
multiply
nilai piksel tanpa formula yang terbukti atau keberhasilan akhir. @ Radouxju menunjukkan bahwa(a*b*c)^(1/3)
(rata-rata GEOMETRIK) dan bukannya rata(a*b*c)/(255*255)
- rata ARITHMETIC dapat bekerja. Rata-rata geometris lebih rendah atau sama dengan rata-rata aritmatika, yang menonjolkan kegelapan area yang diarsir. Saya belum mengujinya.sumber
(A*B*C)/(255*255)
,?Alat yang dapat melakukan ini (antara lain) adalah Visualisasi Berbasis Faktor Tampilan Sky ( http://iaps.zrc-sazu.si/en/svf#v ). Hitung beberapa parameter suatu medan. Sangat bagus.
sumber
Numpy Gdal_calc tampaknya memiliki lebih banyak operator :
Saya belum menemukan contoh yang jelas dan tepat tentang bagaimana operator eksotis harus digunakan. Jika Anda memiliki sesuatu, silakan bagikan.
sumber