Analizy hydrograficzne w ArcGIS, czyli z GIS-em na głęboką wodę

Pierwsze koncepcje modelowania przepływu wody na podstawie Numerycznego Modelu Terenu pojawiły się już na początku lat 80. XX wieku. Od tamtego czasu liczba wyspecjalizowanych algorytmów, a tym samym narzędzi GIS przeznaczonych do analiz hydrograficznych, znacznie wzrosła. Obecnie użytkownik GIS-u jest w stanie za ich pomocą określać m.in. potencjalne kierunki i akumulację przepływu wody, generować obraz sieci rzecznej, hierarchizować cieki, a także generować działy wodne zlewni. Niniejszy tutorial ma za zadanie przedstawić funkcjonalność rozszerzenia ArcHydro Tools dla oprogramowania ArcGIS for Desktop 10.x oraz narzędzi do analiz hydrologicznych dostępnych z poziomu rozszerzenia Spatial Analyst, przy równoczesnym wskazaniu poprawnej metodyki ich wykorzystywania.

Pierwsze kroki

Narzędzia umożliwiające analizy hydrograficzne w ArcGIS for Desktop są dostępne na dwóch poziomach: podstawowym (w skrzynce narzędziowej Hydrologia rozszerzenia Spatial Analyst) oraz rozszerzonym (w nakładce ArcHydro Tools). Rozszerzenie ArcHydro Tools dla najnowszych wersji ArcGIS for Desktop (10.x) można pobrać z serwera FTP Esri w postaci pliku instalacyjnego Windows (.msi) pod adresem https://mft.esri.com. Przed instalacją ArcHydro Tools konieczne są zainstalowanie komponentu APFramework dostępnego do pobrania również na powyższym FTP, a także aktywacja rozszerzenia Spatial Analyst z poziomu ArcGIS for Desktop. Z pakietu ArcHydro Tools można korzystać w dwojaki sposób. Wszystkie narzędzia znajdziemy w pasku narzędzi, który należy dodać z górnego menu ArcMap (Dostosuj -> Paski narzędziowe), lub też w skrzynce narzędziowej ArcHydro Tools.tbx – można ją dodać z katalogu Toolboxes -> System Toolboxes, po kliknięciu prawym przyciskiem myszy na ArcToolbox, wybraniu AddToolbox, a następnie rozwinięciu menu kontekstowego w wyświetlonym oknie. Drugi sposób otwiera nam również możliwość dodawania wszelkich narzędzi pakietu ArcHydro Tools bezpośrednio do aplikacji ArcGIS ModelBuilder, co w wielu sytuacjach poprawia efektywność wykonywanych analiz, szczególnie wtedy, kiedy różne dane są przetwarzane wielokrotnie przez ten sam zestaw narzędzi.

Skąd dane NMT?

Danymi wejściowymi do wszelkich analiz hydrograficznych w GIS-ie jest Numeryczny Model Terenu w formacie rastrowym. Jakość tych analiz zależy w dużym stopniu od rozdzielczości i dokładności posiadanego NMT. W Internecie istnieją dwa sprawdzone modele, które można bezpłatnie wykorzystać do dowolnych celów. Pierwszym z nich jest model SRTM (Shuttle Radar Topography Mission) o  rozdzielczości ok. 90 m (3’’x 3’’). Jego ostatnia wersja jest sygnowana numerem 4.1. Poszczególne zestawy danych można pobrać ze strony srtm.csi.cgiar.org przy wykorzystaniu jednej z przeglądarek plików .kmz, np. ArcGIS Explorer Desktop (do pobrania pod adresem esri.com/software/arcgis/explorer/download). O wiele lepszą rozdzielczość oferuje model ASTER GDEM (ok. 30 m). Dostęp do danych można uzyskać na stronie gdem.ersdac.jspacesystems.or.jp/search.jsp po wcześniejszym założeniu bezpłatnego konta. W przypadku pracy z małymi zlewniami (poniżej 100 km2) rozdzielczość powyższych modeli może się okazać niewystarczająca. Zalecane jest wówczas pozyskanie modeli o wyższej rozdzielczości (najczęściej płatnych) lub przygotowanie własnego NMT, np. na podstawie zwektoryzowanych poziomic z map topograficznych 1:10 000 lub coraz popularniejszych danych LiDAR.

Na czym polega pre-processing NMT?

Na początku warto wspomnieć, że rastrowe dane wejściowe do geoprzetwarzania w ArcHydro Tools powinny mieć format GRID, a komórki rastra – przypisane wartości liczb całkowitych. Konwersji rastrów o wartościach zmiennoprzecinkowych (floating point) do całkowitych (integer) można dokonać za pomocą narzędzia Int dostępnego w skrzynce Math, w Spatial Analyst. Wszelkie analizy hydrograficzne należy poprzedzić wstępnym przetwarzaniem Numerycznego Modelu Terenu (pre-processing), określanym często jako jego korekcja. Polega ono przede wszystkim na wypełnieniu błędnych zagłębień bezodpływowych, które mogą przerwać modelowany spływ wody, osuszając tym samym w sztuczny sposób wybrane obszary. Wykonanie tej procedury umożliwia narzędzie fill sinks w ArcHydro Tools lub też równoważne fill w Spatial Analyst. Nierzadko zdarza się jednak, że na analizowanym obszarze występują w rzeczywistości zagłębienia bezodpływowe, których wówczas nie powinno się usuwać. Pomocne staje się wtedy wykorzystanie kombinacji narzędzi sink prescreening oraz sink selection dostępnych w pakiecie ArcHydro Tools. Pierwsze z nich tworzy raster zawierający wyekstrahowane zagłębienia bezodpływowe wraz z informacjami o powierzchni drenowanego przez nie obszaru oraz wysokości dna, wysokości krawędzi, powierzchni, głębokości i objętości każdego zagłębienia. Drugie narzędzie pozwala, na podstawie zgromadzonych informacji, na określenie minimalnego progu głębokości, powierzchni, objętości zagłębień oraz minimalnej powierzchni drenowanej przez zagłębienia, powyżej których nie zostaną one wypełnione. Jedną z coraz częściej wykorzystywanych metod preprocessingu jest integracja wektorowej sieci rzecznej z NMT, nazywana często „wypalaniem cieków” (Stream burning). Polega ona na modyfikacji NMT w ten sposób, aby zasięg i kształt dolin rzecznych były zgodne z położeniem cieków, które płyną ich dnami. Procedurę „wypalania cieków” w ArcHydro Tools możemy uruchomić za pomocą narzędzia DEM Reconditioning. Musimy wówczas zdefiniować trzy parametry przetwarzania NMT: Stream buffer (liczbę komórek wygładzanych wokół cieku), Smooth drop/raise (wartość określającą interpolację modelu wewnątrz bufora) oraz Sharp drop/raise (wielkość dodatkowego przegłębienia). Domyślne ustawienia tych parametrów mogą dać zafałszowane wyniki przetwarzania, dlatego też zgodnie z doświadczeniami autora powinno się je modyfikować z zachowaniem ostrożności. W literaturze przedmiotu, w odniesieniu do warunków hydrograficznych Polski, pojawiają się następujące wartości parametrów: Stream buffer = 5; Smooth drop/raise = 5; Sharp drop/raise = 10. Zapewniają one relatywnie naturalny kształt doliny. Pamiętać jednak należy, że ich wartość powinna się zmieniać w zależności od tego, jak duży ciek lub dolinę analizujemy. Należy również wspomnieć, że procedura „wypalania cieków” może powodować pojawienie się nowych, sztucznych zagłębień bezodpływowych. Dlatego zalecane jest, aby po jej wykonaniu zastosować ponownie narzędzie fill sinks/sink.

Dokąd płynie woda?

Na podstawie NMT przetworzonego za pomocą narzędzia flow direction możemy stworzyć raster kierunków przepływu wody analizowanego obszaru. Każdej komórce wygenerowanego rastra przypisana jest wówczas wartość zakodowana w systemie binarnym ze zbioru [1, 2, 4, 8, 16, 32, 64, 128], określająca jeden z ośmiu możliwych kierunków spływu wody do sąsiednich komórek (rys. 1.).

Rys. 1. Raster kierunków przepływu.

Rys. 1. Raster kierunków przepływu.

Należy tutaj zachować ostrożność i za każdym razem sprawdzać, czy tworzona mapa kierunków przepływu jest zakodowana w poprawny sposób (np. czy nie pojawiają się tam inne niż wymienione wyżej wartości), ponieważ na jej podstawie podczas kolejnych etapów przetwarzania danych generowana jest większość innych warstw. Dzięki mapie kierunków możemy wygenerować rastrową mapę akumulacji przepływu, informującą o wielkości przepływu w poszczególnych komórkach rastra (rys. 2.).

Rys. 2. Mapa rastrowa akumulacji przepływu.

Rys. 2. Mapa rastrowa akumulacji przepływu.

Każda komórka mapy akumulacji przepływu przechowuje wówczas wartość, która odpowiada liczbie komórek, z których woda spływa do danej komórki. Istotną kwestią staje się w tym momencie określenie minimalnego progu akumulacji przepływu, od którego ma powstać rastrowa warstwa cieków. Możemy go zdefiniować i jednocześnie wygenerować cieki za pomocą narzędzia Stream definition w ArcHydro Tools. Przyjmuje się, że wartość ta powinna oscylować w zakresie od 0,5 do 1 proc. maksymalnej wartości akumulacji przepływu, aby gęstość wygenerowanej sieci rzecznej oraz długość cieków były jak najbliższe rzeczywistości. Wartości tych jednak nie powinno się przyjmować bezkrytycznie, ponieważ na strukturę sieci rzecznej, poza samym ukształtowaniem terenu, wpływa również wiele innych czynników, takich jak budowa geologiczna czy warunki klimatyczne danego regionu.

Po utworzeniu warstwy rastrowej cieków można je podzielić na segmenty, tzn. stworzyć nową warstwę rastrową. W tabeli atrybutów tej warstwy każdy segment między dwoma węzłami sieci będzie osobnym rekordem. Czynność tę wykonujemy za pomocą narzędzia Stream segmentation w ArcHydro Tools lub Stream link w Spatial Analyst. Za pomocą narzędzia Stream order w Spatial

Analyst można określić rzędowość sieci rzecznej według wybranego systemu: Strahlera lub Shreve’a. Więcej informacji o rzędowości sieci rzecznej  znajduje się w pliku pomocy ArcGIS.

Gdy mamy już prawie wszystko…

Najprostszym sposobem wyznaczenia zlewni topograficznych analizowanego obszaru jest wykorzystanie narzędzia Basin dostępnego z poziomu Spatial Analyst – dane wejściowe stanowi wówczas wyłącznie raster kierunków przepływu. Niestety, narzędzie to pozwala wyłącznie na wyznaczenie zlewni, które de facto są dorzeczami, tak więc są powiązane tylko z ciekami o najwyższej rzędowości. W praktyce jednak najczęściej zdarza się, że obiekt zainteresowania stanowią zlewnie mniejsze. Dlatego też, na podstawie warstwy z posegmentowaną siecią rzeczną, za pomocą narzędzia catchment grid delineation w ArcHydro Tools możemy wygenerować raster przedstawiający granice zlewni topograficznych wszystkich cieków znajdujących się na analizowanym obszarze (rys. 3.).

Rys. 3. Wyznaczone granice topograficzne wybranych zlewni.

Rys. 3. Wyznaczone granice topograficzne wybranych zlewni.

Raster ten możemy łatwo przekonwertować do postaci wektorowej za pomocą narzędzia catchment polygon processing w ArcHydro Tools. Tego samego typu konwersję da się wykonać dla cieków, wykorzystując narzędzie drainage line processing. Tak jak wspomniano wcześniej, program generuje zlewnie automatycznie dla wszystkich cieków. Często zdarza się jednak, że zadanie polega na wygenerowaniu wyłącznie jednej zlewni dla wybranego cieku. W takiej sytuacji należy posłużyć się narzędziem watershed w Spatial Analyst, które pozwala na wyznaczenie działu wodnego do miejsca, w którym znajduje się profil zamykający zlewnię. Położenie profilu można zdefiniować np. na podstawie wektorowego zapisu sieci hydrograficznej (np. Mapy Podziału Hydrograficznego Polski). Wówczas należy stworzyć nową warstwę wektorową przedstawiającą profil zamykający zlewnię, która wraz z mapą kierunków przepływu stanowi dane wejściowe, niezbędne do uruchomienia narzędzia watershed. Po wygenerowaniu mapy rastrowej akumulacji przepływu na podstawie rastra kierunków przepływu można zauważyć, że profil zamykający zlewnię niekoniecznie pokrywa się w każdym przypadku z zasięgiem komórek o największym lokalnym przepływie. Problem ten da się rozwiązać, wykorzystując narzędzie snap pourpoint w Spatial Analyst, które pozwala na „dociągnięcie”, czyli zmianę położenia profilu zamykającego względem komórki rastra akumulacji przepływu o największej lokalnej wartości przy zadanym promieniu poszukiwania (snap distance).

Czy to już koniec?

Informacje przekazane w niniejszym tutorialu uzupełnia podręcznik Comprehensive Terrain Preprocessing using ArcHydro Tools (dostępny w formacie PDF na serwerze https://mft.esri.com),

zawierający wiele cennych informacji dotyczących metodyki analiz hydrograficznych z wykorzystaniem pakietu ArcHydro Tools. Dotyczą one m.in. obszarów o niedendrytycznym charakterze sieci rzecznej czy też zlewni, w których znajdują się jeziora przepływowe. Godnymi polecenia publikacjami są także książki wydane przez Esri Press ArcHydro: GIS for Water Resources oraz Hydrologic and Hydraulic Modeling Support with Geographic Information Systems.