6 sty 2014

Cieniowane granice

    Oglądając niektóre mapy np. te z National Geographic można zauważyć, że przedstawione na nich granice administracyjne są trochę szersze i odpowiednio zacieniowane, tj ciemniejsze przy linii granicy, a jaśniejsze im dalej od niej. Czy podobny efekt można uzyskać w QGIS?

  

    Na początek można zastosować buforowanie. Tworząc bufor o odpowiadającej nam szerokości a następnie odcinając jego część (elementem tnącym będzie granica obszaru), otrzymamy obiekt powierzchniowy, który po nadaniu mu koloru będzie najprostszą wersją uwydatnienia granicy. Jednak w obecnej wersji QGIS nie można zastosować gradientu w obiekcie powierzchniowym (kolejne wersje programu prawdopodobnie już będą miały taką opcję), dlatego też zastosowany kolor będzie jednolity dla całej powierzchni.


    Bardziej skomplikowaną wersją cieniowania granicy może być wielokrotne zastosowanie buforów o różnych szerokościach. Postępujemy podobnie jak w przypadku opisanym wyżej, jednak wstawiamy bufory o coraz większych szerokościach. Następnie ustawiamy warstwy buforów od najszerszego na dole do najwęższego na górze i nadajemy im kolorystykę, stosując paletę dla określonego koloru odpowiednio od najjaśniejszego do najciemniejszego. Trochę więcej klikania, ale efekt jest zdecydowanie bardziej zadowalający niż poprzednio.


    Trzeci sposób wykonania cieniowanej granicy wykorzystuje narzędzie do przeprowadzania analizy bliskości przy użyciu funkcji w Raster > Analiza > Rastrowa mapa sąsiedztwa (Proximity – raster distance). Opis przeprowadzenia takiej analizy oraz działania tej funkcji w programie można znaleźć w poście „Analiza bliskości w QGIS”. Po wygenerowaniu mapy odległości we właściwościach warstwy, zmieniamy jej styl wyświetlania. W poście użyłem jako sposobu wyświetlania – jednokanałowy szary, gradient koloru – czarny w biały przy wartościach min = 0.0 max = 0.2 oraz rozciągnięty kontrast do min/max. Efekt wygląda następująco.


    Nyall Dawson w poście WAITING FOR QGIS 2.2 – GRADIENT FILLS na swoim blogu nyalldawson.net sugeruje, że wersja 2.2 QGIS będzie pozwalała na zastosowanie gradientu do poligonów, co zdecydowanie uatrakcyjni możliwości wizualizacji w programie.

4 komentarze:

  1. A nie jest bardziej celowym i poprawnym od strony metodologii oddzielenie warstwy prezentacji od danych i dopracowanie tego typu efektów w postprocessingu w oprogramowaniu graficznym?

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam, jeżeli chodzi o metodologię, to faktycznie jest trochę prawdy w tym co mówisz. Jednak wydaje mi się, że eksport mapy do formatu graficznego, a następnie jej obróbka, np. w gimpie, która ostatecznie prowadzi do podobnych rezultatów nie jest konieczna. Mając możliwość zrobienia tego, czego oczekujesz w oprogramowaniu, w którym tworzona jest mapa warto z niej skorzystać. Od strony praktycznej warstwy można zawsze pogrupować np. grupa projektowa i grupa prezentacyjna, pozwoli to zapanować nad ilością i przeznaczeniem warstw, szczególnie w dużych projektach. Poza tym, tak jak pisałem w poście, niedługo w QGIS pojawi się możliwość gradientowania poligonów, więc wprowadzenie na mapę odpowiedniego cieniowania będzie jeszcze prostsze.
      Pozdrawiam

      Usuń
  2. Dzięki za odpowiedź. Ja standardowo obrabiam mapy w darmowym programie do edycji grafiki wektorowej - Inkscape, eksport do formatu svg z qgis. Dostrzegam w tym dwa duże plusy: oddzielenie prezentacji od treści i łatwość obróbki. Wiele z czynności, które w qgis zajmują sporo czasu w inkscape to kilka kliknięć (np. poprawka etykiet). Polecam spróbować.
    Pozdrawiam

    OdpowiedzUsuń
  3. Inkscapa znam z robienia symboli do QGIS, faktycznie przyjazny, intuicyjny program. Nie edytowałem w nim mapy ale po takim opisie warto spróbować :)

    OdpowiedzUsuń