El concepto de sombreado compuesto es combinar múltiples sombreados con diferente orientación de la luz solar para evitar el punto ciego. Requiere combinar 3 imágenes sombreadas con 315⁰ (luz solar NW, capa predeterminada), capa + 355⁰, luces solares + 275⁰, respectivamente. Esto aumenta los detalles y la elegancia, como se muestra a continuación. Una descripción completa que no es SIG está aquí .
Usando cualquier archivo srtm, los 3 sombreados iniciales se pueden hacer a través de:
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
Respuestas:
La fuente vinculada menciona "cambiar su modo de fusión a <Multiplicar>" , por lo que la operación a realizar no es un simple promedio de sombreados de entrada (para esto, vea también ¿Cómo promediar gdal_hillshades? ). Es otra cosa. Sin embargo, creemos las 3 sombras de las diferentes direcciones de la luz solar:
Mantenga el valor más bajo de A, B, C
El primer algoritmo sobre el que pensé es filtrar y mantener los píxeles más oscuros, es decir, los píxeles con valores más bajos entre las entradas A, B, CA booleanas pueden hacer eso:
El área dominada por las sombras ahora conforman más que el lado opuesto de un enlace central, se ha incrementado en 40⁰ en cada lado. No como el enlace proporcionado, este algoritmo actual parece perder demasiado el área de iluminación.
Ángulo de
315±30⁰
(variación de ángulo menor) en lugar de que la corriente315±40⁰
sería mejor.El siguiente diagrama es la base de la ecuación. Muestra las fuentes de luz A, B, C y las comparaciones booleanas para los valores de píxeles A, B, C en cada parte. Las líneas de igualdad necesitan una atención especial para ser incluidas en el booleano. Las líneas medianas tienen valor
221
para la fuente de luz perpendicular. Piense en las áreas de influencia , la fuente de luz más cercana es la influencia principal, y la más débil es la influencia más débil.Mantener valores extremos para A, B, C
Otro algoritmo booleano podría ser mantener los valores más extremos, tanto los píxeles más oscuros como los más blancos. El siguiente diagrama ayuda a pensar en la fórmula booleana. Para cada sexto del círculo, identifica el valor que se debe mantener de A, B, C y un valor booleano para seleccionar el área triangular más la línea de igualdad en el sentido de las agujas del reloj, y solo eso . Da (desde arriba y en sentido horario):
Si las variaciones de los ángulos no son demasiado importantes, podría dar buenos resultados.
Otros booleanos
Puede crear un booleano más complejo para cubrir los círculos completos usando cualquier combinación de los segmentos de borde. Sigue siendo importante que solo se mantenga un valor de A, B, C para un segmento.
Multiplicar
Hice varios intentos fallidos de
multiply
valores de píxeles sin una fórmula probada ni éxito final. @Radouxju señaló que(a*b*c)^(1/3)
(la media GEOMÉTRICA) en lugar de la media ARITMÉTICA(a*b*c)/(255*255)
puede funcionar. La media geométrica es inferior o igual a la media aritmética, lo que acentúa la oscuridad de las áreas sombreadas. Aún no lo he probado.fuente
(A*B*C)/(255*255)
?Una herramienta que puede hacer esto (entre otras) es la Visualización basada en factores de Sky-View ( http://iaps.zrc-sazu.si/en/svf#v ). Calcular varios parámetros de un terreno. Es muy bueno
fuente
El numpy de Gdal_calc parece tener más operadores :
No he encontrado ejemplos claros y adecuados de cómo deberían usarse los operadores exóticos. Si tienes algo, no dudes en compartirlo.
fuente