1. Przygotowanie modelu zlewni i dostarczenie danych wejściowych do optymalizacji
- Utwórz bazę danych i_SWAT.
- Za pomocą programu o nazwie „rotator” zbuduj bazę danych z wielu baz wejściowych, obejmujących gleby, pogodę, gospodarkę i nawozy.
- Alternatywnie, istniejący przebieg modelu SWAT (stworzony prawdopodobnie w ArcSWAT lub AVSWAT) można zaimportować za pomocą i_SWAT.exe. W takim przypadku program „swat_rewrite” może zostać użyty do zastąpienia informacji o gospodarce lub innych danych HRU na podstawie danych na poziomie pola.
- Na tym etapie należy przeprowadzić kalibrację i walidację modelu SWAT. Model SWAT (wersja 2005) włączony w ramy modelowania EA dla zlewni Raccoon River został pierwotnie skalibrowany i zwalidowany na potrzeby badania Całkowitego Maksymalnego Dziennego Obciążenia (TMDL), zgodnie z opisem Jha et al. (2010). Dalsza kalibracja i walidacja modelu SWAT została przeprowadzona przy wsparciu opracowywania Planu Głównego dla zlewni Raccoon River, zgodnie z opisem w Agren, Inc. (2011), co stanowi model SWAT wykorzystany w niniejszym badaniu.
- Użyj zmodyfikowanej wersji programu SWAT2005.exe, o nazwie SWAT2005GA.exe.
- Przygotuj plik „watershed presets.csv” – jest to plik tekstowy przechowujący wiele ustawień specyficznych dla zlewni Raccoon. Jest on odczytywany przez programy GeneticiSWAT i MapSWAT opisane poniżej w celu ustawienia wielu sterowników i pól danych dla zlewni jednym kliknięciem.
- Przygotuj koszty elementów praktyk ochronnych. W tym przykładzie są one przechowywane w tabeli [Practice Costs - Raccoon by County] w bazie danych „Practice costs by subbasin Josh.mdb”.
Całkowity koszt rozwiązania kandydackiego jest sumą kosztów praktyk ochronnych zastosowanych w jednostkach zlewni („hydrologiczne jednostki odpowiedzi”, czyli HRUs). Program optymalizacji rozważa optymalne przypisanie jednej praktyki ochronnej z określonego zestawu praktyk ochronnych do każdej jednostki HRU gruntów ornych w zlewni. Zbiory możliwych praktyk ochronnych przypisanych do jednostki HRU nazywane są zbiorami alleli.
- Utwórz foldery SWAT. W tym przebiegu wykorzystano 16 procesorów CPU, co oznacza, że w 16 osobnych folderach uruchomiono 16 kopii pliku SWAT2005GA.exe (analogicznie postępuje się w systemach z mniejszą liczbą procesorów, np. dla procesora „quad-core” należy utworzyć 4 foldery).
2. Wybór parametrów optymalizacji
- Optymalizacja jest kontrolowana przez program o nazwie „GeneticISWAT”. Aby przeprowadzić optymalizację, uruchom plik GeneticISWAT.exe.
- Przejdź do sekcji „File”, następnie „Open” i wybierz bazę danych i_SWAT „Raccoon GA.mdb”.
- Przejdź do sekcji „File”, następnie „Configuration”, aby przypisać ścieżki do plików wykonywalnych modelu SWAT (SWAT2005GA.exe).
- Przejdź do sekcji „Execute”, a następnie „Select Allele Set”. Ten krok określa kombinacje praktyk ochronnych wykorzystywane w optymalizacji. W tym uruchomieniu zastosowano zestaw alleli nr 14, który zawiera 23 kombinacje praktyk ochronnych. Dostępne zestawy alleli są przechowywane w pliku konfiguracyjnym „Alleles.csv”.
- Przejdź do sekcji „Execute”, a następnie wybierz „SPEA2 Archive Baseline Aware Subset”, aby przeprowadzić optymalizację wielokryterialną przy użyciu algorytmu ewolucyjnego SPEA2.

Rycina 1. Wyznaczanie celów i parametrów optymalizacji.
Parametry optymalizacji do wyboru:
Ustawienie wstępne: Wybierz zlewnię do optymalizacji. Kliknięcie przycisku „Apply” wybiera wpisy z pliku ustawień wstępnych „watershed presets.csv”, aby uzupełnić wartości sterujące na tym ekranie.
Zmienna wyjściowa: Wybierz cele środowiskowe do optymalizacji. W przypadku wyboru (N Outlet, P Outlet) zdefiniowana zostanie trójwymiarowa funkcja celu: azot (N organiczny + NO3 + NH4 + NO2) uśredniony dla 5 lat na odpływie, fosfor (P organiczny + P mineralny) uśredniony dla 5 lat na odpływie oraz całkowity koszt praktyk ochronnych. Należy pamiętać, że stworzy to trójwymiarową granicę kompromisu (tradeoff frontier). Można wybrać alternatywne zmienne wyjściowe, w których program wielokryterialny ma na celu zminimalizowanie ({Zmienna wyjściowa}, Koszt całkowity).
Wielkość populacji: Ustaw początkową wielkość populacji. Określa ona początkową liczbę rozwiązań kandydackich. Gdy wybrana zostanie opcja „Seed with each allele”, w pierwszej kolejności tworzone są rozwiązania kandydackie reprezentujące jednolite zastosowanie każdej praktyki konserwatorskiej określonej w zestawie alleli do wszystkich HRU gruntów ornych w zlewni. Pozostałe rozwiązania kandydackie są tworzone poprzez losowe przypisanie praktyk konserwatorskich z zestawu alleli do HRU gruntów ornych. Przy wyborze opcji „Seed with each allele” należy upewnić się, że początkowa wielkość populacji jest co najmniej tak duża, jak liczba alleli w zestawie alleli (23 w tej demonstracji).
Liczba generacji: Ustaw pożądaną liczbę generacji (iteracji) dla przebiegu optymalizacji (należy pamiętać, że przebieg można zrestartować).
Prawdopodobieństwo krzyżowania: Gdy dwa rozwiązania kandydujące zostaną wybrane w celu stworzenia nowych rozwiązań kandydujących, prawdopodobieństwo krzyżowania określa szansę na utworzenie odrębnych nowych rozwiązań (w tym pokazie ustawione na 1).
Wielkość populacji tymczasowej: Parametr ten określa liczbę tworzonych nowych rozwiązań kandydackich. Zasoby procesora są wykorzystywane najefektywniej, gdy wartość ta jest wielokrotnością liczby wątków procesora (16 w tym pokazie).
Prawdopodobieństwo mutacji: Określ prawdopodobieństwo przypadkowej zmiany przypisania HRU do innej praktyki ochronnej z zestawu alleli. (W tym pokazie wartość ta została ustawiona na 0,03).
Liczba wątków: Wybierz liczbę używanych procesorów lub wątków. W tej demonstracji zastosowano 16.
Nr krzywej współczynnika kalibracji: Wartość ta pochodzi z kalibracji modelu SWAT.
Zapisz populację w pliku tekstowym: Należy zaznaczyć tę opcję, jeśli chcemy zrestartować proces optymalizacji po ukończeniu określonej liczby iteracji. Zaznaczenie tej opcji generuje plik tekstowy z wartościami alleli dla każdej HRU w każdym przeżyвшим rozwiązaniu kandydującym (osobniku). Plik ten może zostać wczytany ponownie, aby zrestartować i kontynuować przebieg obliczeń.
Wtórne parametry optymalizacji
Pierwszy rok: Musi być ustawiony na rok po rozpoczęciu historycznych danych pogodowych i nie później niż 7 lat przed końcem tych danych.
Cena kukurydzy: Wykorzystywana w równaniu utraty plonu do oszacowania kosztów wynikających z ograniczenia ilości nawozów.
Metoda punktacji: Archiwum SPEA2. Punktacja określa prawdopodobieństwo wyboru ocalałego osobnika do krzyżowania.
Metoda usuwania: Dominacja. Osobniki, które wypadają gorzej we wszystkich 3 wymiarach, są uznawane za zdominowane i usuwane.
Źródło HUC: Ustawione na „Specified Location”, co oznacza, że wartość „7100006” z następującego pola „Watershed HUC” jest wykorzystywana do znalezienia wiersza w tabeli HUC Zone. Wartość „07100006” jest ośmiocyfrowym kodem HUC dla dorzecza Raccoon.
Źródło kosztów: Ustaw na „County (HRU Location Code)”, aby wskazać, że koszty inne niż CRP będą określone przez kody FIPS hrabstw w powyższej tabeli kosztów praktyki.
Źródło kosztów CRP: Ustaw na „1 Lokalizacja”, aby wskazać, że koszt CRP zostanie określony na podstawie kodów FIPS hrabstw w powyższej tabeli kosztów praktyki.
Wersja SWAT: SWAT2005
3. Reprezentatywne wyniki
Program GeneticiSWAT.exe generuje plik dziennika zawierający ustawienia i wyniki dla wszystkich potencjalnych rozwiązań (osobników), a także plik zapisu („save”), który koduje wyniki z ostatniej iteracji algorytmu i może zostać wykorzystany do wznowienia procesu optymalizacji.
Na tym etapie można zwizualizować cały zbiór rozwiązań efektywnych w sensie Pareto (granicę kompromisu), wykonując następujące kroki:
- Uruchom program GeneticiSWAT;
- Przejdź do zakładki „File”, a następnie „Open”, aby otworzyć bazę danych i_SWAT „Raccoon GA.mdb”.
- Przejdź do zakładki „Execute”, a następnie „Export HRU List”. Zapisz plik jako „Raccoon Allele HRU.txt”.
- Utwórz animację, uruchamiając plik Mapswat.exe, wybierając „Execute”, a następnie „3d Animation”.

Rysunek 2. Zrzut ekranu z procesu tworzenia „migawek” dla trójwymiarowej wizualizacji granic.
Wynikiem jest seria plików, które można wyrenderować jednocześnie do plików obrazów, korzystając z programu POV-RAY i wybierając opcję „Render”, a następnie „File Queue”. Obrazy mogą być używane samodzielnie lub połączone w film pokazujący przebieg algorytmu.

Rysunek 3. Statyczna wizualizacja granicy kompromisu.
W razie potrzeby można stworzyć film przedstawiający przebieg algorytmu, uruchamiając program „Framescanner.exe” i wykonując poniższe kroki:
- Przejdź do „File”, następnie „New”, potem „File”, następnie „Import”, a wreszcie „PNG Files”. Wybierz statyczne obrazy.
- Aby utworzyć film, przejdź do „File”, następnie „Export”, a potem „AVI”.
- Wybierz kodek „DIB”, aby utworzyć pliki AVI z serii plików obrazów.
Każdy punkt na granicy reprezentuje konfigurację zlewni (konkretny układ praktyk konserwacyjnych w krajobrazie). Mapy tych konfiguracji dla całej granicy można wyświetlić, wykonując następujące kroki:
- Uruchom program Mapswat.exe, wybierz „Execute”, a następnie „Map Animation”.
- Wybierz „Raccoon” z listy presetów i kliknij „Apply”.
- Wybierz „Layout 7 (Raccoon)” z listy Map Layout, a następnie kliknij „OK”.

Rysunek 4. Zrzut ekranu z procesu tworzenia mapy dla każdego osobnika w końcowej granicy.
Eksportowanie wybranych konfiguracji zlewni (osobników), które są przedmiotem zainteresowania.
Często zagadnieniem badawczym jest wybór konkretnych konfiguracji zlewni (osobników), które pozwalają osiągnąć określone cele dotyczące jakości wody. Na przykład celem może być znalezienie osobnika na froncie Pareto, który redukuje ładunek azotu o 30% i fosforu o 20% w stosunku do wartości bazowych. MapSWAT umożliwia wyszukiwanie na froncie osobnika o najmniejszej odległości euklidesowej od określonego celu. Można to przeprowadzić w następujący sposób:
- Uruchom program MapSWAT.exe. Wybierz „Execute” | „Search”.

Rysunek 5. Zrzut ekranu z wyszukiwania konkretnej jednostki na froncie w oparciu o cele jakości wody.
- Wprowadź minimalny i maksymalny cel redukcji Tmin i Tmax oraz interwał Tint. Wprowadź również konkretny procent redukcji azotu (Nspec) względem wartości bazowej w polu „% reduction” obok N Baseline oraz procent redukcji fosforu (Pspec) w polu „% reduction” obok Phosphorus baseline. Program wygeneruje wynik w oknie wyskakującym:

Rycina 6. Zrzut ekranu z wyników wyszukiwania
- Kliknij „Kopiuj tekst” i wklej go do arkusza kalkulacyjnego. Powstaną trzy tabele. W pierwszej znajdują się osobniki najbliższe celom N i P dla tego samego procentu redukcji, który waha się od Tmin do Tmax w interwałach Tint. Bezpośrednio pod nią pojawia się pojedynczy osobnik najbliższy celowi (Nspec, Pspec). Druga tabela przedstawia najbliższe osobniki w przypadku, gdy cel P waha się od Tmin do Tmax, podczas gdy N pozostaje stałe w wartości bliskiej Nspec. Trzecia tabela zawiera osobniki najbliższe celom N w zakresie od Tmin do Tmax, podczas gdy P pozostaje stałe w wartości bliskiej Pspec. W tym przypadku osobnikiem najbliższym 30% redukcji N był osobnik o ID 8423 z wartością N wynoszącą 14 637 279,60. Poniżej znajduje się mapa przedstawiająca przestrzenny rozkład praktyk konserwacyjnych oraz położenie tej konfiguracji zlewni na granicy tradeoff:

Rysunek 7. Zrzut ekranu z przykładowej mapy opisującej wybraną jednostkę na granicy Pareto. Kliknij tutaj, aby wyświetlić powiększony rysunek.
Eksport danych z mapy do dalszej analizy jest możliwy poprzez wykonanie następujących kroków:
- Uruchom program Mapswat.exe, wybierz „Execute”, a następnie „Export Map Data”.
- Wybierz „Raccoon” z listy ustawień wstępnych i kliknij „Apply”.
- Wprowadź identyfikator konfiguracji zlewni (poszczególnej) (przykładowo 8423), zaznacz „Show Allele Properties” oraz „Show Costs”, a następnie kliknij „OK”. Te dane mogą zostać wykorzystane do tworzenia niestandardowych map wybranej konfiguracji zlewni przy użyciu programu GIS.
| Nazwa programu | Proszę podać tekst źródłowy do przetłumaczenia. | Opis |
| Rotator | KARTA | Tworzy i uzupełnia bazę danych i_SWAT o dane dotyczące gleby, pogody i gospodarki dla zlewni. |
| Swat2005GA.exe | USDA Grassland, Soil & Laboratorium Badań nad Wodą | Model symulacyjny zlewni |
| i_SWAT.exe | KARTA | Interfejs bazy danych SWAT |
| GeneticISWAT.exe | KARTA | Kontroler SWAT oparty na algorytmie ewolucyjnym. Wykorzystuje bibliotekę GALib z http://lancet.mit.edu/ga/. |
| MapSWAT.exe | KARTA | Odczytuje bazy danych i pliki shapefile i_SWAT oraz generuje obrazy pokoleń i osobników. |
| POV-Ray | Povray.org | Raytracer Persistence of Vision. |
| Framescanner.exe | Todd Campbell | Konwerter obrazów PNG do formatu AVI |
| Windows Live Movie Maker | Microsoft | Służy do kompresji plików AVI do formatu WMV |
Tabela 1. Tabela wymaganych programów.
| Nazwa pliku | Typ | Opis |
| Raccoon GA.mdb | Baza danych Access | Opisy struktury i zarządzania zlewnią Raccoon. Odczytywane przez GeneticiSWAT i MapSWAT. |
| ustawienia_domyślne_watershed.csv | Proszę o dostarczenie tekstu źródłowego do tłumaczenia. | Konfiguracja ustawień wstępnych dla GeneticiSWAT.exe i MapSWAT |
| Allele.csv | Tekst | Lista zestawów alleli dla algorytmu ewolucyjnego. |
| Allele HRU szopa prążkowanego | Proszę podać tekst źródłowy do tłumaczenia. | Plik utworzony przez GeneticISWAT, zawierający listę alleli określonych jako grunty orne. Odczytywany przez MapSWAT. |
| Koszty praktyczne według podzlewni Josh.mdb | Baza danych Access | Koszty w zależności od praktyki zarządzania i powiatu. |
| Terrace Zones.mdb | Baza danych Access | Tabela [HUC Data] zawiera numery tarasów i stref plonowania dla zlewni. |
| Budżety NRI.mdb | Baza danych Access | Odczytane przez GeneticISWAT.exe dla upraw & tablice maszyn, które nie są używane w tym przebiegu. |
| phucrp 2008-12-15.dat | Proszę o dostarczenie tekstu źródłowego do tłumaczenia. | Tabela wyszukiwania jednostek cieplnych roślin, niewykorzystana w tym uruchomieniu. |
| Zarządzanie.mdb | Baza danych Access | Tabela wyszukiwania rotacji, nieużywana w tym przebiegu. |
| Raccoon GA 2011-09-28 1313.log, Raccoon GA 2011-09-29 0732.log, Raccoon GA 2011-10-07 0644.log | Proszę podać tekst źródłowy do tłumaczenia. | Pliki dziennika uruchomienia GeneticISWAT. |
| Szpurek GA.wmv | Animacja | trójwymiarowa prezentacja osobników z podziałem na pokolenia |
| Subbasin.shp | ESRI Shapefile | Kształty subzlewni w zlewni. |
| Mapa szopów.wmv | Animacja | Prezentacja alleli dominujących dla każdego podbasenu dla każdej osoby na froncie. |
Tabela 2. Tabela wymaganych plików przykładowych.