HEC-RAS 2D
Druga zwrotka bo zawsze chciałem zacząć od środka ~Abradab
Dlaczego nie lubię modeli 1D?
Gdy zaczynałem pracę jako modelarz byłem bardzo zainteresowany jak najszybszym przejściem do modeli dwuwymiarowych. Te jednowymiarowe wydawały mi się proste, wręcz prymitywne, nieprzystające do dzisiejszych realiów i możliwości, które nam dają nowoczesne CPU, GPU, terabajty przestrzeni dyskowej oraz dziesiątki gigabajtów pamięci RAM. Przez tych kilka lat praktyki, które mam za sobą zrozumiałem, że… miałem tylko częściowo rację. W swojej naturze modele jednowymiarowe bywają wręcz absurdalnie wymagające, szczególnie jeżeli nasza sieć rzeczna jest ciut bardziej skomplikowana, rozgałęzia się, znów scala, mamy przelanie się wody przez koronę wału przeciwpowodziowego, nasyp drogowy… długo by wymieniać.
Ale czy zawsze jest gorsze niż 2D?
Nie można tym modelom jednak odmówić faktu, że w pewnych sytuacjach spisują się mimo wszystko bardzo dobrze, chociażby wtedy gdy musimy zaproponować zamawiającemu wiele wariantów pewnego rozwiązania jak na przykład przepust, albo wtedy gdy dużo bardziej zaawansowane modele muszą zostać zasilone obliczonymi przez nas w modelu 1D wartościami. Bez dobrego zrozumienia podstaw hydrauliki, nie będzie potrafić dobrze modelować ani z wykorzystaniem 1D, ani z 2D, więc niech niniejszy “kurs” będzie tylko wprowadzeniem do modelowania ogółem, ponieważ wynik, który uzyskamy, pozwoli nam lepiej zrozumieć pewne istotne elementy naszej pracy. Nie będę się nad tym rozwozić, gdyż zależy mi na tym, aby jak najszybciej przejść do praktyki i pokazać jak zbudować prosty model 2D w HEC-RAS 6.3.1.
Budowanie modelu
Nasz model zlokalizowany będzie w Białogardzie na północy Polski. Białogard leży w województwie Zachodniopomorskim, nieopodal Koszalina i Kołobrzegu, nad rzeką Parsętą, w jej 61. kilometrze, gdzie również znajduje się ujście innego cieku – Liśnicy. W modelu skupimy się na odcinku od km 59 do km 61,5, czyli zaczniemy tuż powyżej mostu kolejowego, a zakończymy tam, gdzie dolina cieku zostaje sztucznie zawężona przez wały przeciwpowodziowe. Z racji tego, że nie chcę wstawiać do modelu żadnych struktur, obwałowanie będzie stanowić również granicę modelu.
Numeryczny Model Terenu
Pierwszą rzeczą, którą należy zrobić jest zorganizowanie się. Dobra organizacja znacząco ułatwia pracę, unikamy dzięki temu marnowania czasu na szukanie plików, które przecież dopiero co pobraliśmy, wczytaliśmy, przenieśliśmy i… przestało działać? Oh, crap. W folderze GIS będziemy trzymać wszystkie rzeczy gisowe (czy to już pleonazm?), subfolder Input będzie zawierać dane, które pobierzemy z Geoportalu, czyli Numeryczny Model Terenu, zaś folder HEC-RAS będzie lokalizacją naszego modelu. Tam nawet nie będziemy zaglądać, bo będzie on żyć własnym życiem i rozrastać się w miarę tworzenia nowych rzeczy.
\—Parseta
+—GIS
| +—Input
| \—Shp
\—HEC-RAS
Modelarz to też GISowiec
Drugim krokiem jest utworzenie nowego projektu w QGIS (3.22.13 LTR “Białowieża” here, żeby była jasność na czym pracuję), zmiany układu współrzędnych na PUWG 1992 (EPSG:2180) oraz pobraniu i dodaniu NMT. Pobierania i łączenia rastrów, a także dodawania WMS nie będę tutaj omawiać, może innym razem. Oto co powinniśmy ujrzeć w tym momencie.
Mamy NMT ze zmienioną symbologią i cieniowaniem, które są ze sobą zgrupowane oraz WMSa z ortofotomapą w tle.
Wyznaczanie granic modelu
Trzeci krok to rysowanie szlaczków obszaru modelu 2D oraz osi cieków. Poligon oraz polilinie powinny cechować się w miarę możliwości prostym kształtem, tj. bez wielu załamań, ale jednocześnie oś rzeki powinna być dobrze odwzorowana. Nie warto w tym przypadku zapisywać tych danych ani do bazy danych, jeżeli korzystamy z PostgreSQL + PostGIS, ani do GeoPackage, gdyż HEC-RAS jest okrutnie ułomnym oprogramowaniem i przyjmuje tylko Shapefile. Nasze pliki nie muszą zawierać żadnych dodatkowych informacji, ale ja dodam – już na przyszłość – nazwę rzeki i nazwę odcinka, które przydadzą się gdy nadejdzie czas na model 1D.
Etap gisowy jest prosty jak budowa cepa, dwa elementy to i tak więcej niż absolutne minimum, czyli sama granica obszaru, ale osie cieków będą stanowić breaklines w HEC-RAS, wokół których zagęścimy siatkę.
Czas na HEC-RASa
Teraz przechodzimy do gwiazdy dzisiejszego programu – HEC-RASa. Zanim cokolwiek zaczniemy, musimy sprawdzić w ustawieniach regionalnych naszego systemu separatorem dziesiątym jest kropka, a nie przecinek. Jeżeli wszystko gra, program uruchomił się bez żadnych błędów, możemy zmienić układ jednostek na jedyny słuszny, czyli SI Units, co jest ukryte w menu rozwijanym “Options” -> “Unit system (US customary/SI)…” -> “System International (Metric system)“. Warto ustawić to jako domyślny parametr, zaznaczając “Set as default for new projects“. Zapisujemy projekt i przechodzimy do RAS Mappera.
Czy RAS Mapper to alternatywa dla programów GIS?
RAS Mapper to niedorobione oprogramowanie gisowe, którego nie da się brać na poważnie. My jesteśmy jednak cwani i najważniejsze rzeczy przygotowaliśmy przed chwilą, więc w tym okienku ograniczymy się tylko do wygenerowania siatki, dodania miejsc, gdzie będą zlokalizowane nasze warunki brzegowe, eliminacji ewentualnych drobnych błędów i zdefiniowaniu kilku innych elementów niezbędnych do uruchomienia symulacji. Dodajmy teraz układ odniesienia (plik prj, ale z folderu GIS, a nie HEC-RAS!) oraz NMT do RAS Mappera, żeby zasilić go danymi wysokościowymi.
Geometria
Po chwili powinien ukazać się teren. Teraz czas stworzyć nową geometrię, którą robimy klikając prawym przyciskiem myszy na “Geometries” w panelu po lewej stronie i “Add new geometry“. Nowy plik nazwę “Parseta_2D”. Klikając na zaczarowany żółty ołówek na górnej belce, przechodzimy w tryb edycji i wczytujemy nasz pierwszy plik shp, czyli obszar modelu. Żeby to zrobić, musimy rozwinąć “2D Flow Areas“, kliknąć ppm na “Perimeters” i wybrać “Import Features From Shapefile“. Powinien znajdować się tam jeden poligon, który dodajemy klikając “Import” w prawym dolny rogu okienka. Analogicznie dodajemy nasz ciek. Na razie zbyt wiele jeszcze nie widać, żeby to zmienić musimy wygenerować siatkę. Zanim jednak do tego dojdziemy, przejdziemy do “Attribute Table” klikając ppm na “Perimeters“, w której zmieniamy “Cell Size X” oraz “Cell Size Y” na np. 6 m i zaznaczamy “Generate as Hexagon“. Następnie klikamy ppm na “Breaklines“, żeby poprawić trochę jakość siatki w obszarach koryta i “Near Spacing” wpisujmy długość boku naszej komórki kwadratowej, w moim przypadku dam 3 m, a “Near Repeats” ile warstw takich komórek ma być wygenerowanych. U mnie będą to 3 warstwy dla Parsęty i 2 dla Liśnicy.
Przygotowanie siatki obliczeniowej
Zamykamy okienko, ponownie klikamy ppm na “Perimeters” i wybierany “Edit 2D Area Properties“, po czym generujemy naszą siatkę przyciskiem “Generate Computation Points“. I wyskoczył mi błąd “Mesh Status = Total area from all cells does not match the perimeter area. Possible face errors on the perimeter of the mesh“. Po zamknięciu okna wracamy do głównego okna RAS Mappera i w moim przypadku okazałą się jedna duża czerwona kropka, wskazująca problematyczne miejsce. Taki problem to nie problem, rozwiązujemy go edytując warstwę “Computation Points” i dodając nowy punkt w pobliżu.
Rozwiązywanie błędów
Wracamy do “Edit 2D Area Properties” i przeliczamy siatkę klikając na “Force Mesh Recomputation“. Nowych błędów nie stwierdzono. Ostatnia rzecz to dodanie warunków brzegowych, sztuk 3. Robimy to edytując warstwę “Boundary Condition Lines“. Bardzo ważne jest aby rysować te linie POZA obszarem siatki! Bardzo blisko jej, ale w taki sposób, aby się nie przecinały. Gdy już określiliśmy gdzie woda wpływa i gdzie wypływa, możemy zapisać zmiany, wyjść z trybu edycji i RAS Mappera oraz wrócić do głównego okienka HEC-RAS.
Warunki brzegowe modelu
Geometria jest gotowa, czas na przepływy! Jeżeli nic nam nie pojawiło się w “Geometry“, należy przejść do klasycznego edytora geometrii i wczytać nasze dzieło. W “View/Edit Unsteady Flow Data” zdefiniujemy to jak bardzo chcemy uprzykrzyć życie mieszkańcom Białogardu, dodając dane dotyczące przepływu. Dwa górne warunki brzegowe będzie stanowić “Flow Hydrograph“, a dolny – “Normal depth“, czy przym w jednym jak i drugim przypadku spadek ustalimy na 0,001. Hydrogram przepływu będzie zaczynać się od 0 i przez pierwsze godziny będzie rosnąć, aż osiągnie w przypadku Liśnicy 10 cms, a w Parsęcie 60 cms, po czym ulegnie stabilizacji na resztę czasu trwania symulacji. Wszystko zapisujemy.
Obliczenia przepływów niestacjonarnych
Czas lać wodę. Klikamy na “Perform an unsteady flow simulation“, czyli tego śmiesznego typka biegnącego pod górkę. Automatycznie powinny nam się wczytać pliki geometrii i przepływów. Z “Programs to Run” wybieramy wszystko poza “Sediment“. “Simulation Time Window” określa nam ramy czasowe symulacji. Nasz Potop rozpocznie się 22NOV2022 o godzinie 0000, a zakończy 22NOV2022 o 0800. Zmieńmy jeszcze w “Computation Settings” kroki czasowe z “1 hour” na “5 minute”, a “Computation Interval” na “5 second”. Klikamy “Compute” i idziemy rozprostować nogi.
To by było na razie na tyle. Wyniki można obejrzeć w RAS Mapperze, co bardzo fajnie wygląda jeżeli puścimy sobie “nagranie”, bo nie wiem jak to inaczej nazwać.
Więcej wiedzy w języku angielskim znajdziecie pod tym linkiem: HEC-RAS training. 2D Unsteady Flow (2021).










