Le concept de l' ombrage composite est de combiner plusieurs ombrages avec une orientation solaire différente pour éviter les angles morts. Il nécessite de fusionner 3 images ombrées avec 315⁰ (lumière du soleil NW, couche par défaut), + 355⁰ couche, + 275⁰ rayons du soleil, respectivement. Cela augmente les détails et l'élégance, comme indiqué ci- dessous . Une description complète non SIG est ici .
En utilisant n'importe quel fichier srtm, les 3 ombrages initiaux peuvent être effectués via:
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
Réponses:
La source liée mentionne "changer son mode de fusion en <Multiplier>" , donc l'opération à faire n'est pas une simple moyenne des ombrages d'entrée (pour cela, voir aussi Comment faire la moyenne de gdal_hillshades? ). C'est autre chose. Pourtant, créons les 3 ombrages de différentes directions du soleil:
Conserver la valeur la plus basse de A, B, C
Le premier algorithme que j'ai pensé est de filtrer et de conserver les pixels les plus sombres, alias les pixels avec des valeurs plus faibles parmi les entrées A, B, CA booléennes peuvent le faire:
La zone dominée par les ombres représente désormais plus que le côté opposé d'un lignt central, elle a été augmentée de 40⁰ de chaque côté. Pas comme le lien fourni, cet algorithme actuel semble avoir trop perdu la zone d'éclairement.
Angle de
315±30⁰
(variation d'angle plus petite) plutôt que le courant315±40⁰
ferait mieux.Le diagramme ci-dessous est la base de l'équation. Il montre les sources lumineuses A, B, C et les comparaisons booléennes pour les valeurs de pixels A, B, C dans chaque partie. Les lignes d'égalité nécessitent une attention particulière pour être incluses dans le booléen. Les lignes médianes ont une valeur
221
pour la source de lumière perpendiculaire. Pensez aux zones d'influence , la source de lumière la plus proche est la principale influence et la plus éloignée la plus faible.Conserver les valeurs extrêmes pour A, B, C
Un autre algorithme booléen pourrait consister à conserver les valeurs les plus extrêmes, à la fois les pixels les plus sombres et les plus blancs. Le diagramme suivant aide à comprendre la formule booléenne. Pour chaque sixième du cercle, il identifie la valeur à conserver de A, B, C et un booléen pour sélectionner la zone triangulaire plus la ligne d'égalité dans le sens horaire, et seulement cela . Il donne (du haut et dans le sens horaire):
Si les variations d'angles ne sont pas trop importantes, cela pourrait donner de bons résultats.
Autres booléens
Vous pouvez créer des booléens plus complexes pour couvrir l'ensemble des cercles en utilisant n'importe quelle combinaison des segments de bordure. Il reste important qu'une seule valeur parmi A, B, C soit conservée pour un segment.
Multiplier
J'ai fait plusieurs tentatives infructueuses de
multiply
valeurs de pixels sans formule éprouvée ni succès final. @Radouxju a souligné que(a*b*c)^(1/3)
(moyenne GÉOMÉTRIQUE) au lieu de la moyenne ARITHMÉTIQUE(a*b*c)/(255*255)
peut fonctionner. La moyenne géométrique est inférieure ou égale à la moyenne arithmétique, ce qui accentue l'obscurité des zones ombragées. Je ne l'ai pas encore testé.la source
(A*B*C)/(255*255)
?Un outil qui peut le faire (entre autres) est la visualisation basée sur les facteurs Sky-View ( http://iaps.zrc-sazu.si/en/svf#v ). Calculez plusieurs paramètres d'un terrain. C'est sacrément bon.
la source
Le numpy de Gdal_calc semble avoir plus d'opérateurs :
Je n'ai pas trouvé d'exemples clairs et appropriés sur la façon dont les opérateurs exotiques devraient être utilisés. Si vous avez quelque chose, n'hésitez pas à partager.
la source