Koncepcja kompozytowego cienia wzgórza polega na połączeniu wielu cieni z różną orientacją światła słonecznego, aby uniknąć martwego pola. Wymaga połączenia 3 obrazów w cieniu wzgórza odpowiednio z 315⁰ (światło słoneczne NW, warstwa domyślna), +355 35 warstwa, + 275⁰ światło słoneczne. Zwiększa to detale i elegancję, jak pokazano poniżej. Pełny opis spoza GIS znajduje się tutaj .
Korzystając z dowolnego pliku srtm, 3 początkowe odcienie wzgórza można wykonać za pomocą:
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
Odpowiedzi:
Połączone źródło wspomina „zmień tryb syntezy na <Mnożenie>” , więc operacja, którą należy wykonać, nie jest zwykłą średnią wejściowych odcieni wzgórza (w tym celu zobacz także Jak uśrednić gdal_hillshades? ). To coś innego. Jednak stwórzmy 3 odcienie wzgórz o różnych kierunkach nasłonecznienia:
Zachowaj najniższą wartość A, B, C.
Pierwszy algorytm, o którym myślałem, to filtrowanie i zatrzymywanie najciemniejszych pikseli, czyli piksele o niższych wartościach spośród wartości wejściowych A, B, CA, boolean, mogą to zrobić:
Obszar zdominowany przez cienie tworzy teraz więcej niż przeciwną stronę jednego centralnego lignta, został zwiększony o 40⁰ z każdej strony. Wydaje się, że nie w podanym linku obecny algorytm zbyt mocno utracił obszar oświecenia.
Kąt
315±30⁰
(mniejsza zmiana kąta) zamiast tego prądu315±40⁰
byłby ładniejszy.Poniższy schemat stanowi podstawę równania. Pokazuje źródła światła A, B, C i porównania boolowskie dla wartości pikseli A, B, C w każdej części. Linie równości wymagają szczególnej uwagi, aby zostały uwzględnione w logice. Linie środkowe mają wartość
221
dla prostopadłego źródła światła. Pomyśl o obszarach wpływów , najbliższe źródło światła jest głównym wpływem, a najbliższe najsłabszym.Zachowaj wartości ekstremalne dla A, B, C
Innym algorytmem logicznym może być zachowanie najbardziej ekstremalnych wartości, zarówno najciemniejszych, jak i najbardziej białych pikseli. Poniższy diagram pomaga zrozumieć formułę boolowską. Dla każdej szóstej okręgu określa wartość, którą należy zachować z A, B, C i logiczną, aby wybrać obszar trójkątny plus linię równości zgodnie z ruchem wskazówek zegara i tylko to . Daje (od góry i zgodnie z ruchem wskazówek zegara):
Jeśli zmiany kątów nie są zbyt ważne, może dać dobre wyniki.
Inne booleany
Możesz utworzyć bardziej złożoną wartość logiczną, aby objąć całe koła za pomocą dowolnej kombinacji segmentów obramowania. Ważne jest, aby tylko jedna wartość zachować z A, B, C dla jednego segmentu.
Zwielokrotniać
Zrobiłem kilka prób failled do
multiply
pikseli wartości bez sprawdzonej formuły ani ostatecznego sukcesu. @Radouxju wskazał, że(a*b*c)^(1/3)
(średnia GEOMETRYCZNA) zamiast średniej ARITMETYCZNEJ(a*b*c)/(255*255)
może działać. Średnia geometryczna jest mniejsza lub równa średniej arytmetycznej, która podkreśla ciemność zacienionych obszarów. Jeszcze tego nie testowałem.źródło
(A*B*C)/(255*255)
?Wydaje się , że numpy Gdal_calc ma więcej operatorów :
Nie znalazłem jasnych i odpowiednich przykładów użycia egzotycznych operatorów. Jeśli masz coś, podziel się.
źródło
Narzędziem, które może to zrobić (między innymi) jest wizualizacja oparta na współczynniku Sky-View Factor Based ( http://iaps.zrc-sazu.si/en/svf#v ). Oblicz kilka parametrów terenu. Cholernie dobrze.
źródło