R w QGIS

Język R możemy wykorzystać do rozszerzenie funkcjonalności wielu programów. Jednym z nich jest QGIS pozwalający wykorzystywać skrypty napisane w tym języku. Dzisiaj pokażemy Wam jak w prosty sposób zrobić własne narzędzie rozszerzające podstawową funkcjonalność QGIS. Najpierw otwórzmy QGIS w wersji 2.18. Nowsza wersja niestety nie daje możliwości pisania skryptów w R. Po otwarciu QGIS musimy najpierw go skonfigurować do obsługi R. Wybieramy z menu górnego  Geoprocessing -> Opcje. Otwiera nam się okno Opcje geoprocessingu:

Rozwijamy w nim zakładkę Dostawcy algorytmów -> R scripts. Aktywujemy obsługę skryptów R poprzez zaznaczenie Activate i poprawne ustawienie ścieżki do lokalizacji instalacji R. Następnie klikamy OK.

Teraz otwieramy okno Narzędzia wybierając Geoprocessing -> Narzędzia.

r_in_qgis_02

W oknie mamy już aktywną obsługę skryptów w R. Wchodzimy w R scripts -> Tools -> Create new R script, aby utworzyć swój mini program. Dla przykładu wybraliśmy dla Was skrypt do wycinania rastra na podstawie warstwy wektorowej. Zaczynamy od zdefiniowania danych wejściowych: warstwy wektorowej i rastra:

Następnie danej wyjściowej:

Dodajemy również grupę w której wyświetlany będzie skrypt w Narzędziach geoprocessingu (działanie tej linijki będzie dla Was bardziej zrozumiałe później):

No i piszemy nasz kod z R:

Ostatnia linijka powinna zawierać zapis przetworzonej warstwy do wyjściowej zmiennej:

Ostatecznie skrypt wygląda tak w oknie Edytora skryptów:

r_in_qgis_03

Zapisujemy go. I wychodzimy z edytora. W Narzędziach geoprocessingu w skryptach R pojawiła się nowa pozycja My scripts. To jest grupa, którą zdefiniowaliśmy w naszym pliku. Wszystkie skrypty z taką grupą pojawią się właśnie tutaj:

r_in_qgis_04

Teraz sprawdźmy jak działa skrypt. Do tego celu potrzebujemy dane. My użyjemy NMT dla Mazowsza oraz warstwy wektorowej gmin w tym województwie. W przypadku warstw wektorowych dodatkową ciekawą funkcją jest to, że skrypty działają na wyselekcjonowanych elementach. Ograniczmy sobie zatem działanie naszego skryptu do jednej wybranej gminy. Tak wygląda to u nas:

r_in_qgis_05

Klikamy na nasz skrypt. Pojawia nam się okno, gdzie wybieramy warstwy wejściowe i miejsce zapisu danych wyjściowych:

r_in_qgis_06

Zostawiamy domyślne ustawienia i uruchamiamy nasz skrypt klikając Run. Po zakończeniu do okna mapy zostaje wczytany wynik działania skryptu:

r_in_qgis_07

Skrypty w R umożliwiają również wyświetlanie wykresów na podstawie uzyskanych z warstw danych. Zmodyfikujemy nasz skrypt tak, aby wyświetlał histogram wysokości dla wybranego regionu. W Edytorze skryptów napiszmy:

Napisany skrypt nie zwraca nic, tylko wyświetla wykres. Takie działanie definiujemy poprzez dodanie #showplots do kodu. Zapiszmy skrypt i zobaczmy jak działa:

r_in_qgis_08

Wyświetlony został histogram wartości wysokości dla wybranej przez nas gminy.

Przedstawiony w poście przykład pokazuje, że znając język R możemy w łatwy sposób rozbudować funkcjonalność QGIS-a o nowe narzędzia do przetwarzania danych GIS, jak również ich analizy. Miłej zabawy:)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Translate using Google Translate»
Social media & sharing icons powered by UltimatelySocial

Podoba Ci się nasza strona? Odwiedź nasz profil