Jak stylizować punkty w QGIS na podstawie wielu atrybutów

13

Próbując znaleźć użyteczny sposób wyświetlania trzęsień ziemi, zauważyłem, że nie jest to takie łatwe.

Chciałbym być w stanie rozpoznać „Wielkość”, „Data” i „Głębia” ze stylu punktu. Coś jak:

  • rozmiar: na podstawie wielkości
  • głębokość: kolor podstawowy (np. <15 czerwony, 15-30 żółty,> 30 niebieski)
  • data: intensywność koloru jako cieniowanie od 100% koloru do bieli / ...

Czy można to zrobić bez definiowania dziesiątek zasad?

Chris Pallasch
źródło

Odpowiedzi:

14

Dlaczego nie skorzystać z etykietowania opartego na regułach? Możesz znacznie uprościć zadanie, jeśli używasz kategorii dla wielu gradientów na podstawie danych atrybutów. Z mojego punktu widzenia używanie kategorii w etykietowaniu opartym na regułach jest jedną z głównych zalet QGIS.

Dla twoich danych (bez znajomości struktury) polecam następujący przepływ pracy:

  • Utwórz prosty gradient oparty na regułach dla wartości daty za pomocą kategoryzowanego lub stopniowanego stylera punktowego (styl biały lub szarawy).
  • Dostosuj rozmiar punktów, klikając „zaawansowane” i „rozmiar skalowane pole”. Tutaj wybierz wielkość swoich punktów. Zapisz powstały styl jako styl SLD!
  • Idź do etykietowania opartego na regułach, załaduj jn swoją SLD i dodać do każdego punktu danych kliknij prawym przyciskiem myszy na kategorii (lub zakres) z gradientem koloru własnych upodobań do głębokości i zastosować go do każdego zestawu reguł.

W ten sposób (możesz również utworzyć kategorię na podstawie reguł w kategorii ;-)): wprowadź opis zdjęcia tutaj

  • Potem nie zapomnij dostosować kolejności renderowania i być może kontroluj rozmiary punktów.

Rozumiem, że to rozwiązanie zależy od pewnego wysiłku (kliknięć myszką) na twojej stronie, ale ostatecznie piękna mapa zawsze jest warta wysiłku.

Kulik
źródło
4

Zaktualizowano dla QGIS 2.8

Zakładając takie dane:

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

Za pomocą stylizacji zdefiniowanej przez dane ustaw rozmiar, który ma być kontrolowany przez pole wielkości.

Dla koloru zdefiniowanego przez datę i głębię możesz użyć następującego wyrażenia

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

„Starymi” punktami z 1900 roku będą białe hsl (x, x, 100), podczas gdy nowe punkty będą bardziej kolorowe do hsl (x, x, 50).

podmrok
źródło
3

Inną opcją jest użycie asystenta rozmiaru, który jest dostępny dla każdego stylu warstwy danych. Załóżmy, że skategoryzowałeś dane punktów na podstawie koloru, używając określonego atrybutu. Po prostu kliknij prawym przyciskiem myszy każdą kategorię i wybierz Zmień rozmiar. Powinien wyświetlić okno dialogowe rozmiaru. Następnie kliknij filtr wyrażeń, a następnie wybierz Asystent rozmiaru.

wprowadź opis zdjęcia tutaj

Okno dialogowe asystenta rozmiaru ma opcję wyboru kolumny według rozmiaru. Możesz także wybrać metodę skalowania, według której chcesz skalować symbole, a następnie podać zakres rozmiarów i odpowiedni zakres wartości danych. wprowadź opis zdjęcia tutaj Pamiętaj, że musisz to zrobić dla każdej kategorii swoich danych.

Sherpas
źródło
Nie wiem, dlaczego ta odpowiedź nie jest bardziej głosowana - tego właśnie chciałem i jest zdecydowanie najszybsza
Scott Staniewicz