Oto ładne zdjęcie rastra, którego używam - bez zastosowanych efektów - tylko rampa kolorów i histogram dostosowany, aby pokazać całą ulgę - aczkolwiek w bardzo 2D!
Mam domyślnie warstwę rastrową, którą chcę wyświetlać w Hillshade. Mogę to zrobić w kodzie, w efekcie jest to to samo, co wybranie opcji Hillshade w ArcMap (patrz poniżej):
Kiedy to zrobisz - wygląda to rozczarowująco:
Zwłaszcza, jeśli powiększysz raster, zobaczysz wszelkiego rodzaju siatkowe artefakty - co wcale nie wygląda ładnie!
Jeśli jednak utworzę odpowiednią warstwę Hillshade przy użyciu rastra z programem Spatial Analyst i nałożę ją na przezroczystość 85%, wygląda to całkiem dobrze i bardzo inaczej !:
- Jak mogę osiągnąć ten efekt w ArcMap i przesłonić domyślną funkcjonalność opcji Hillshade (przypuszczam, że jest to niemożliwe, czy też jest to ustawienie, którego nie zauważyłem, które powoduje, że raster jest źle wyświetlany). Jeśli można zastąpić lub wybrać prawidłowe ustawienia - czy można to zrobić w ArcObjects.
- Jeśli opcja 1 nie jest możliwa, czy mogę stworzyć efekt przy tworzeniu warstwy Hillshade (bez użycia Spatial Analyst) i skutecznie połączyć ją z oryginalnym rastrem - tzn. Nie chcę, aby ludzie widzieli dwie warstwy w spisie treści w ArcMap . Chcę tylko jednej warstwy, ale z domyślnym renderowaniem w cieniu mojego wyboru / konfiguracji. Muszę to zrobić również programowo, tj. ArcObjects.
Jedną rzeczą, której się nauczyłem, jest to, że musisz mieć swój DEM we właściwych odniesieniach przestrzennych i jednostkach pomiarowych, w przeciwnym razie wynikający z niego cień będzie wyglądał zbyt czarny i przesadzony - sprawdź ten film, aby dowiedzieć się więcej - to bardzo dobre wytłumaczenie.
Myślę więc, że teraz wiem, co muszę zrobić, aby uzyskać wysokiej jakości cieniowanie wzgórza, ale myślę, że zajmie to trochę poprawiania kodu ArcObjects na niskim poziomie. Myślę, że muszę wymyślić własne renderowanie grafiki i podłączyć to do ArcMap (mam bibliotekę DLL, która renderuje mapy bitowe w fajny sposób). Myślę, że dobrym miejscem do pokazania tego byłoby zastąpienie zdarzenia Draw () na czymś takim jak IRasterRenderer i wstawienie własnego renderowania obrazu. Oczywiście może to trochę skomplikować się z ponownymi projektami itp.
Czy ktoś wykonał jakiekolwiek renderowanie grafiki niskiego poziomu w ArcMap - jeśli tak, czy możesz zaoferować jakieś wskazówki lub rzeczy, o których powinienem wiedzieć?
źródło
Odpowiedzi:
Podczas ponownego wyświetlania należy użyć próbkowania interpolacji dwuliniowej
Możesz nieco poprawić wyświetlanie, zmieniając metodę ponownego próbkowania używaną z domyślnego najbliższego sąsiedztwa na interpolację dwuliniową. Właściwości warstwy -> Karta Wyświetlanie -> Ponowne próbkowanie podczas wyświetlania za pomocą: Interpolacja dwuliniowa.
Ten efekt działa najlepiej w przypadku DEM i domyślnej rampy koloru czarno-białego.
Otrzymasz znacznie lepszy wynik i znacznie większą kontrolę nad wyświetlaczem, używając 2 rastrów, tak jak już to zrobiłeś. Upewnij się, że podczas wyświetlania używasz również metody ponownego próbkowania interpolacji dwuliniowej.
Dodaj DEM:
Przełącz „Użyj efektu Hillshade” na:
Renderuje w następujący sposób na ekranie:
Zmień ponowne próbkowanie podczas wyświetlania na interpolację dwuliniową:
Renderuje w następujący sposób na ekranie:
źródło
Metoda Arcmapa w locie na wzgórzu, opisana metoda, jest szybka i brudna i nigdy nie miała na celu zastąpienia wyniku na wzgórzu od Spatial Analyst i / lub 3D Analyst. Chociaż ten sam termin jest używany do opisania obu, wcale nie są takie same.
Aby stworzyć prawdziwy cień bez Spatial Analyst, możesz wypróbować gdaldem GDAL :
Samouczek danych terenu TileMill ma ładny przegląd tego, jak użyć gdaldem do zbudowania kompozytowego cienia wzgórza z hipsometrycznym zabarwieniem.
Jeśli narzędzie nie jest wystarczająco bezpośrednie dla twojej aplikacji, jest tutaj kod źródłowy C ++ dla gdaldem .
źródło
Jeśli szukasz dobrze wyglądającego cienia wzgórza, którego utworzenie zajmuje trochę czasu, ale jest świetne w przypadku większych projektów, w których będzie dużo eksponowane, możesz wypróbować szwajcarską metodę Hillshade - wymaga 3 warstw, ale możesz je następnie wyeksportować do jednego georeferencyjnego tiffa w celu zaoszczędzenia miejsca i mobilności. Uważam, że ta metoda wymaga Spatial Analyst, więc nie jest to bezpośrednia odpowiedź na pytanie OP, ale może być użyteczna dla innych, którzy przyglądają się metodom HillGade w ArcGIS. Ta metoda działa również w innych systemach GIS, ale połączony zestaw narzędzi jest przeznaczony dla ArcGIS.
Edytuj 11/2014: Esri wydała niedawno nowe narzędzie do tworzenia Hillshades. Wygląda naprawdę gładko i powinien łączyć się z przepływami pracy Pytającego. Wprowadzają go tutaj i można go pobrać z instrukcjami instalacji i kod tutaj
źródło
Kiedy mówisz w punkcie 2 „czy mogę stworzyć swój efekt, tworząc warstwę Hillshade (bez użycia Spatial Analyst)”, czy masz na myśli alternatywne aplikacje do tworzenia Hillshade?
Jeśli chcesz korzystać z aplikacji spoza programu Spatial Analyst, niedawno dowiedziałem się (ale nigdy nie użyłem) „ SEXTANTE dla rozszerzenia ArcGIS ” ( bezpłatny ), który pozwala użytkownikom korzystać z narzędzi SEXTANTE w ArcMap. Jeśli obejrzysz ten film wideo , zobaczysz, że demonstrują sposoby na stworzenie cienia wzgórza.
źródło
Zawsze byłem instruowany, aby zwiększać przesadę podczas robienia wzgórza.
Właśnie próbowałem 100 na mojej i wydaje się to trochę ekstremalne.
Również zmiana rodzaju naciągu robi dużą różnicę w wyglądzie cienia wzgórza.
Ponieważ mówisz o tym, jak to wygląda, możesz również spojrzeć na ten element pomocy. esir help
Który mówi, że cienie wzgórza są stosowane przy rozdzielczości pikseli wyświetlacza.
I do zmiany kąta oświetlenia
Esri pomoc
Zmienia również kierunek i kontrast
źródło