Platforma do doboru zdjęć satelitarnych według poziomów wody na stacjach hydrologicznych
Serwis „Poziom-Satelita” rozwiązuje problem doboru zdjęć satelitarnych na podstawie poziomu wody na konkretnej stacji hydrologicznej. Hydrolodzy często napotykają na rozbieżność: zdjęcie jest dostępne, ale poziom wody w tym momencie nie pasuje do analizowanego. Platforma filtruje kolekcje Landsat i Sentinel-2 nie tylko po dacie i zachmurzeniu, ale także po danych hydrologicznych z AIS GMWO, zapewniając trafne sceny do analizy koryt, dolin zalewowych i powodzi.
Prototyp w Google Earth Engine: pierwsze ograniczenia
Początkowy prototyp został zaimplementowany w Google Earth Engine dla jednego okręgu zlewni z danymi z AIS GMWO. Filtrowanie zdjęć po geometrii stacji ujawniło problemy: opóźnienia interfejsu, wolne przetwarzanie kolekcji i wyczerpywanie limitów. Przejście na wstępne przetwarzanie przez API GEE stworzyło tabelę powiązań (stacja, ID zdjęcia, zachmurzenie), zmniejszając obciążenie interfejsu.
Podejście miało jednak wady:
- Przetwarzanie okręgu trwało 8–10 godzin, dla ponad 20 okręgów — nie do przyjęcia.
- Skalowanie wymagało przeliczania przy dodawaniu danych.
- Błędy na dowolnym etapie prowadziły do pełnego przepracowania.
Zbieranie danych w ekstremalnych warunkach
Dostęp do danych hydrologicznych z AIS GMWO był zagrożony zamknięciem. Parser do masowego pobierania został dopracowany w warunkach polowych na łodzi z pomocą AI. Udane pobranie o 17:55 przed deadlinem zapewniło bazę z milionami obserwacji. Obecnie dane są przechowywane lokalnie, eliminując zależność od zewnętrznych źródeł.
Przejście na STAC i Microsoft Planetary Computer
Kluczowy upgrade — wykorzystanie standardu STAC do katalogowania scen satelitarnych oraz Microsoft Planetary Computer (MPC) do dostępu API. STAC ujednolica metadane kolekcji, umożliwiając wyszukiwanie scen po geometrii i czasie niezależnie od dostawcy.
Architektura uprościła się:
- Baza stacji hydrologicznych i obserwacji.
- Filtr po poziomie wody, okresie, zachmurzeniu.
- Wyszukiwanie scen w MPC po metadanych.
- Ładowanie obrazów na żądanie.
To wyeliminowało ciężkie filtrowanie kolekcji, zapewniając prędkość.
Architektura bazy danych
Przejście z CSV/Excel na PostgreSQL z PostGIS obsłużyło 28 mln obserwacji. Centralna encja — powiązanie „obserwacja hydrologiczna → data → scena satelitarna”. Zapytania wykonują się teraz w milisekundach: najpierw filtr hydrologiczny, potem wyszukiwanie scen, na końcu ładowanie.
Baza zaprojektowana z tabelami:
- Stacje hydrologiczne (współrzędne, geometria).
- Obserwacje (poziom, przepływ, data).
- Metadane scen (ID, zachmurzenie, zbiór danych).
Indeksy na daty i geometrię przyspieszają JOIN-y.
Aktualna implementacja i stos technologiczny
Użytkownik wybiera stację, zakres poziomów, okres, filtry — serwis zwraca sceny na mapie z opcją eksportu. Leaflet.js wyświetla mapę, Chart.js — hydrograsy.
Stos technologiczny:
| Warstwa | Technologie |
|---------|-------------|
| Backend | Python, Flask, Gunicorn |
| Baza danych | PostgreSQL, PostGIS (28 mln rekordów) |
| Dane satelitarne | Microsoft Planetary Computer |
| Frontend | Leaflet.js, Chart.js |
| Infrastruktura | Docker, nginx, HTTPS |
Serwis dostępny na level-satellite.ru, repozytorium: github.com/ruorv/level-satellite-public.
Co najważniejsze
- Dobór zdjęć powiązany z rzeczywistym poziomem wody, eliminując nieporównywalne dane.
- STAC/MPC zapewnia elastyczny dostęp bez limitów GEE.
- PostGIS przyspiesza zapytania przestrzenne na dużych wolumenach.
- Architektura skalowalna: dodawanie stacji/dat bez pełnej przebudowy.
- Otwarty kod do dalszego rozwoju przez społeczność.
— Editorial Team
Brak komentarzy.