Calcula o valor de hillshade para cada célula de uma superfície raster e retorna um array de hillshades.
Sintaxe
raster ST_Hillshade(raster rast, integer pyramid_level, integer band, Box extent, BoxType type, float8 zfactor, float8 azimuth, float8 altitude, cstring storageOption);
Parâmetros
|
Parâmetro |
Tipo |
Descrição |
|
|
raster |
Objeto raster source. |
|
|
integer |
Nível de pirâmide do raster. |
|
|
integer |
Índice da banda (número sequencial) usado no cálculo. |
|
|
Box |
Área a analisar. Formato: |
|
|
BoxType |
Sistema de coordenadas para interpretar |
|
|
float8 |
Fator de conversão que ajusta as unidades de elevação para corresponder às unidades das coordenadas horizontais. Defina este valor quando os dados de elevação e as coordenadas horizontais usarem unidades diferentes (por exemplo, x,y em graus decimais e z em metros). Valor padrão: |
|
|
float8 |
Ângulo azimutal do sol, medido no sentido horário a partir do norte. Valores válidos: |
|
|
float8 |
Ângulo de altitude do sol acima do horizonte. O valor |
|
|
cstring |
Opção de armazenamento do raster de saída. Para mais detalhes, consulte ST_ClipToRast. |
Descrição
A função ST_Hillshade modela a iluminação hipotética de uma superfície raster. Ela define a posição de uma fonte de luz imaginária e calcula o valor de iluminação de cada célula em relação aos vizinhos, considerando o ângulo solar, a inclinação e a orientação locais do terreno.
O resultado é um raster em que cada célula contém um número inteiro de 0 a 255. O valor 0 representa a sombra mais escura (sem iluminação); 255 indica a área mais clara (iluminação máxima). Aplicar transparência à camada de hillshade melhora a qualidade visual na análise de terreno e na renderização de mapas com estilo 3D.
Quando as unidades de elevação diferem das unidades horizontais (por exemplo, metros versus graus decimais), defina zfactor para convertê-las a uma escala comum.
Para obter uma explicação detalhada sobre o algoritmo de hillshade, consulte How Hillshade works.
Exemplo
Este exemplo calcula o hillshade em uma extensão de 5×5 pixels de um raster no nível de pirâmide 0, banda 0, com z-factor igual a 4, azimute solar de 180° (sul) e altitude solar de 80°.
SELECT st_hillshade(rast, 0, 0, '(0,0), (5,5)', 'Raster', 4, 180, 80)
FROM t_surface
WHERE id = 1;