Powrót do strony głównej

Dobór zdjęć satelitarnych według poziomu wody

Platforma „Poziom-Satelita” automatyzuje dobór zdjęć satelitarnych Landsat i Sentinel-2 według poziomów wody na stacjach hydrologicznych. Od prototypu w Google Earth Engine do architektury na PostgreSQL, PostGIS, STAC i Microsoft Planetary Computer. Usługa przetwarza 28 mln obserwacji do analizy koryt rzek i obszarów zalewowych.

Usługa doboru zdjęć kosmicznych według poziomów rzek do analizy
Advertisement 728x90

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:

Google AdInline article slot
  • 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ę:

Google AdInline article slot
  • 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:

Google AdInline article slot
  • 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

Advertisement 728x90

Czytaj dalej