Menghitung nilai hillshade untuk setiap sel pada permukaan raster dan mengembalikan array hillshade.
Sintaksis
raster ST_Hillshade(raster rast, integer pyramid_level, integer band, Box extent, BoxType type, float8 zfactor, float8 azimuth, float8 altitude, cstring storageOption);Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
rast | raster | Objek raster sumber. |
pyramid_level | integer | Tingkat piramida dari raster. |
band | integer | Indeks (nomor urut) band yang digunakan untuk perhitungan. |
extent | Box | Area yang akan dianalisis. Format: '((minX,minY),(maxX,maxY))'. |
type | BoxType | Sistem koordinat yang digunakan untuk menginterpretasikan extent. Nilai yang valid: Raster (koordinat piksel) atau World (koordinat dunia). |
zfactor | float8 | Faktor konversi yang menskalakan satuan elevasi agar sesuai dengan satuan koordinat horizontal. Atur parameter ini ketika data elevasi dan koordinat horizontal Anda menggunakan satuan berbeda — misalnya, ketika satuan x,y dalam derajat desimal dan satuan z dalam meter. Nilai default: 1. |
azimuth | float8 | Sudut azimuth matahari, diukur searah jarum jam dari utara. Nilai yang valid: 0–360. Nilai default: 315 (barat laut). |
altitude | float8 | Sudut ketinggian matahari di atas horizon. Nilai 90 menempatkannya tepat di atas kepala. Nilai yang valid: 0–90. |
storageOption | cstring | Opsi penyimpanan untuk raster output. Untuk detailnya, lihat ST_ClipToRast. |
Deskripsi
Fungsi ST_Hillshade memodelkan iluminasi hipotetis pada permukaan raster dengan menetapkan posisi sumber cahaya imajiner, lalu menghitung nilai iluminasi setiap sel relatif terhadap tetangganya—memperhitungkan sudut matahari serta kemiringan dan aspek lokal medan.
Outputnya berupa raster yang setiap selnya berisi bilangan bulat dari 0 hingga 255. Nilai 0 merepresentasikan bayangan paling gelap (tanpa iluminasi), sedangkan 255 merepresentasikan bayangan paling terang (iluminasi maksimum). Penerapan transparansi pada layer hillshade meningkatkan kualitas visual analisis medan dan rendering peta bergaya 3D.
Jika satuan elevasi berbeda dari satuan horizontal (misalnya, meter vs. derajat desimal), atur parameter zfactor untuk menyamakan skalanya.Untuk penjelasan mendetail mengenai algoritma hillshade, lihat How Hillshade works.
Contoh
Contoh berikut menghitung hillshade pada area berukuran 5×5 piksel dari sebuah raster pada tingkat piramida 0, band 0, dengan faktor-z 4, azimuth matahari 180° (arah selatan), dan ketinggian matahari 80°.
SELECT st_hillshade(rast, 0, 0, '(0,0), (5,5)', 'Raster', 4, 180, 80)
FROM t_surface
WHERE id = 1;