Przejdź do treści
megapromotingPorozmawiajmy

Ekspertyza · Dane geoprzestrzenne

Warstwy obserwacji Ziemi nad obszarem, każda ze źródłem, godziną odczytu i limitem zapisanymi obok.

Budujemy operacyjną mapę obszaru ze źródeł publicznych obserwacji Ziemi — Copernicus, OpenStreetMap, katalogi orbitalne, rządowa ortofotomapa — i do każdej warstwy przypisujemy pochodzenie, moment ostatniego udanego odczytu oraz to, czego nie może pokazać. Pomiary publikowane są wraz z metodą, która je wygenerowała.

Już zbudowaneTrzy własne implementacje, które można dziś otworzyć z zewnątrz. FlowMind działa na własnym VM i ma 109 tras API, z czego dziewięć rozmawia bezpośrednio z Copernicus Data Space Ecosystem (`src/app/api/copernicus/`, sprawdzone przez zliczenie na dysku). Relieva odpowiada 200 i pobiera obraz Sentinel na żywo przy każdym załadowaniu strony (680.122 bajty, sprawdzone curl 06.09.2026). Orbital Nexus jest publiczny pod `https://www.megapromoting.com/satelit/` i lokalnie propaguje katalog około 11.900 obiektów. Zastrzeżenie, które trzeba powiedzieć od pierwszego zdania: nie posiadamy żadnego satelity ani żadnego sensora. Copernicus jest programem publicznym Unii Europejskiej, a katalog orbitalny pochodzi z CelesTrak, który redystrybuuje dane utrzymywane przez US Space Force. To, co zbudowaliśmy, to warstwa nad tym.

Jeden teren — miasto, rejon, obszar infrastruktury — można odczytać z danych, które już publicznie istnieją: zdjęć satelitarnych, geometrii ulic, modeli terenu, ortofotomapy katastralnej, katalogów orbitalnych. Ta usługa zbiera je w jedną operacyjną mapę i, co ważniejsze, prowadzi ewidencję tego, co oznacza każda warstwa: jaki sensor ją wytworzył, w jakiej rozdzielczości, jak często jest odnawiana i kiedy była ostatnio odczytana pomyślnie.

Trzeba powiedzieć jasno, bo łatwo to źle zrozumieć i bo to stwierdzenie, które niektóre osoby składają bez prawa: **Copernicus nie jest nasz.** To program Unii Europejskiej do obserwacji Ziemi, wraz z satelitami, sensorami i archiwum. Logujemy się do Copernicus Data Space Ecosystem własnymi poświadczeniami typu `client_credentials` i pobieramy przetworzone produkty przez API. Rozdzielczość, częstotliwość rewizyty, pokrycie chmurami i jakość radiometryczna należą do misji, nie do nas. To samo dotyczy katalogu orbitalnego: pochodzi z CelesTrak, z wyświetlonym przypisaniem, bo wymaga tego ich polityka. To, co utrzymujemy, to uwierzytelnianie, poprawne żądanie, obliczanie, renderowanie, strażnik pochodzenia i interpretacja.

Zasada treści jest wszędzie taka sama: liczba jest publikowana razem z metodą, która ją wytworzyła. Nachylenie ulicy znaczy coś innego, jeśli zostało obliczone jądrem Horn 3×3 na rastrze 25 m, niż jeśli zostało odczytane z dwóch punktów oddalonych o 30 m. Wysokość budynku znaczy coś innego, jeśli jest zadeklarowana w OpenStreetMap, niż jeśli jest oszacowana z liczby kondygnacji. Mieszanie obu kategorii pod tym samym kolorem to najczęstszy sposób dostarczenia mapy, która wygląda dobrze i kłamie.

Gdy źródło nie odpowiada, warstwa jest oznaczana jako OFFLINE, z podanym powodem, i nie jest uzupełniana prawdopodobną wartością. W FlowMind reguła ma automatycznego strażnika, `noFakeLive`, który odmawia oznaczenia warstwy jako LIVE bez dowodu udanego odczytu. Pusty piksel oznacza „tutaj nie zaobserwowano”, a nie „tutaj nic nie ma”.

Co obejmuje

Praca, komponent po komponencie

Pytanie wybiera sensor, nie odwrotnie

Pierwszy etap nie jest techniczny. „Gdzie degraduję się roślinność”, „gdzie może wjechać pojazd kołowy”, „gdzie zmieniła się powierzchnia między dwoma datami” i „co dzieje się w nocy albo pod chmurami” wymagają różnych narzędzi. Optyczny multispektralny przy 10 m dla roślinności i wody, radar C dla warunków, w których optyka nie widzi, pasmo termiczne rzędu kilometrów dla kontrastu powierzchni, model terenu dla nachylenia. Źle dobrany sensor daje wynik, który wygląda poprawnie i taki nie jest.

Pobieramy przetworzony produkt, na żądanym obszarze i w żądanym oknie czasowym

Nie pobieramy całych scen, aby ciąć je lokalnie. Żądanie do Copernicus zawiera obszar geograficzny, przedział czasowy i skrypt ewaluacyjny, który dokładnie mówi, jakie pasmo wchodzi, a jaki piksel wychodzi. W FlowMind żądania Sentinel-2 idą do kolekcji `sentinel-2-l2a` na endpoint `https://sh.dataspace.copernicus.eu/api/v1/process`; Sentinel-1 do `sentinel-1-grd`, Sentinel-5P do `sentinel-5p-l2`. NDVI jest obliczany z B08 i B04, NDWI z B03 i B08 — w evalscript, u źródła, a nie z już skompresowanego obrazu.

Publikujemy liczbę z metodą przyklejoną do niej

Każdy blok wyniku ma znacznik pochodzenia. W Relieva są trzy: mierzony, z źródeł i proponowany. Pod mapą nachylenia jest dosłownie napisane „COP-DEM GLO-30 · UTM 35N 25 m · Horn 3×3”, a pod sceną reliefu — pionowe wyolbrzymienie ×3,5, właśnie dlatego, że relief wyolbrzymiony jest piękny i mylący. Kupująca albo kupujący, kto chce zweryfikować liczbę, musi móc odtworzyć drogę do niej.

Maska chmur, nie usuwanie chmur

Żądania Sentinel-2 odrzucają od razu sceny z ponad 40% pokryciem chmur (`MAX_CLOUD_COVERAGE = 40`). W evalscript piksele, które pasmo klasyfikacji sceny SCL oznacza jako chmurę, cień chmury, cirrus lub śnieg — klasy 3, 8, 9, 10 i 11 — są zwracane całkowicie przezroczyste. Wygodna alternatywa, wypełnianie dziury starszą sceną, tworzy ciągły obraz, który miesza dwa momenty. Wolimy dziurę, bo można ją poprawnie odczytać.

Radar, gdy optyka nie może

Sentinel-1 C-SAR przechodzi przez chmury i działa w nocy, przy 10 m, z rewizytą rzędu 6–12 dni. W naszych produktach używa się stosunku między polaryzacjami VV i VH jako screening na jednej scenie: pokazuje różnice powierzchni i wilgotności. To nie jest interferometria. Milimetrowe przemieszczenia terenu wymagają par asc/desc, plików orbitalnych, modelu terenu i etapu rozwijania fazy — osobnej pracy, oznaczonej jako taka w naszym katalogu produktów, a nie czegoś, co dostarczamy z żądania tile.

Model powierzchni nie jest modelem terenu — pułapka, która nie daje żadnego błędu

Copernicus DEM GLO-30 to cyfrowy model powierzchni: w gęstej zabudowie zwraca wysokość dachu, a nie jezdni. Nic nie sygnalizuje problemu; tylko liczby wychodzą błędne. Dlatego geometria, która ma leżeć na gruncie, jest osadzana na filtrowanej powierzchni, a nachylenie mierzy się na długiej podstawie — poniżej około 60 m między punktami mierzy się szum rastra, a nie teren. Reguła uzupełniająca jest równie ważna: jeśli opublikowane statystyki zostały obliczone na modelu surowym, pozostają na modelu surowym i strona to mówi. Mieszanie tych dwóch baz w jednym zestawie liczb czyni je niespójnymi.

Geometria miasta z OpenStreetMap, z pochodzeniem wysokości trzymanym oddzielnie

Ślady budynków i sieć ulic pochodzą z OpenStreetMap, z zaznaczoną datą zrzutu. W scenie 3D centrum Kiszyniowa z 9.506 śladów tylko 1.128 ma wysokość zadeklarowaną w OSM; pozostałe 8.378 są szacowane na podstawie liczby kondygnacji pomnożonej przez 3,2 m. Te dwie kategorie są w scenie kolorowane inaczej. Każdy budynek stoi na poziomie terenu pod nim, a nie na płaskiej płycie — dlatego bloki unoszą się w stronę parku katedralnego zamiast wyglądać na wyrównane.

Lokalnie obliczone pozycje orbitalne, z wiekiem danych widocznym od razu

Punkty na globie nie są pozycjami przesyłanymi przez satelity. Są pozycjami obliczanymi: zaczyna się od elementów orbitalnych ważnych w pewnym momencie z przeszłości i propaguje je modelem SGP4 do bieżącego czasu. Błąd rośnie z każdym dniem od ostatniej aktualizacji, a aplikacja pokazuje go w kilometrach dla wybranego obiektu. W FlowMind wiek elementów jest oznaczany jawnie jako fresh / stale / expired. Obliczenie działa w osobnym wątku, aby interfejs się nie blokował.

Mapa bazowa bez płatnych kluczy

Scena 3D nakłada ortofotomapę rządową z `geodata.gov.md` (WMS, Agencja Stosunków Gruntowych i Katastru) na model terenu z publicznych kafelków z AWS Open Data, renderowany w MapLibre GL. Bez kluczy API i bez kosztu za wyświetlenie. Tło służy orientacji wizualnej; produkty Copernicus pozostają oddzielnymi warstwami, każda z satelitą, sensorem, rozdzielczością i ograniczeniami.

Jak to wygląda

Trasa, krok po kroku.

01

Wyznaczamy obszar i zapisujemy pytanie, na które mapa ma odpowiedzieć

Jeden geograficzny obszar, krótka lista pytań operacyjnych i, dla każdego, werdykt, czy istnieje publiczne źródło, które może na nie odpowiedzieć. Dostarczamy inwentarz źródeł z rozdzielczością, częstością i ograniczeniem każdego z nich — w tym wiersze, na których widnieje „nie ma publicznego źródła dla tego”. Te wiersze są najcenniejszą częścią inwentarza.

02

Łączymy źródła i stawiamy strażnika przed pierwszą ładną warstwą

Autoryzacja, trasy serwera, cache i — obowiązkowo w tej kolejności — reguła, która zabrania oznaczenia warstwy jako LIVE bez dowodu udanego odczytu. Strażnik jest pisany przed warstwami, bo później nikt go już nie dodaje. Dostarczamy działające trasy i raport zdrowia źródeł, który można odpytwać.

03

Mierzymy raz, w całości, metodą zapisaną obok wyniku

Reprojekcja, obliczenia, progi dobrane według jawnych kryteriów — nie estetycznych. Na mapie nachylenia Kiszyniowa progi wynoszą 8,33%, czyli rampę dostępności 1:12, oraz 12%, powyżej którego roboty chodnikowe oceniane na 10–15% już nie wjeżdżają. Dostarczamy liczby, skrypty, które odtwarzają je ze źródła, oraz stronę, która oznacza każdy blok jako zmierzony, ze źródeł lub proponowany.

04

Przekazujemy z ograniczeniami na wierzchu, nie w stopce

Czego mapa nie może pokazać, w jakim interwale każdy z warstw się dezaktualizuje, co się dzieje, jeśli publiczne źródło zmieni warunki albo zniknie, oraz co wymagałoby przejścia od screeningu do precyzyjnego pomiaru. Dostarczamy procedurę odświeżania i listę zależności zewnętrznych wraz z ich punktem awarii.

WARSTWA NA MAPIETo samo terytorium, czytane na oddzielnych warstwach.
Warstwy nad tym samym terytorium, jedna nad drugą: model terenu u podstawy, geometria uliczna i odciski budynków nad nią, obraz optyczny i radar jako osobne warstwy — każda z etykietą rozdzielczości, częstotliwości i momentu ostatniego udanego odczytu.

Dane

Czego dotykamy, gdzie to leży i jak długo zostaje

Pytania, które zadaje każdy, kto ma inspektora ochrony danych — postawione tutaj, zanim on je zada.

Jakich danych dotyczy praca
Zwykle danych o terenie, a nie o osobach: reflektancja wielospektralna, wsteczny rozproszenie radarowe, wysokości terenu, geometria ulic, ślady budynków, elementy orbitalne. Wszystkie pochodzą z publicznych archiwów — Copernicus Data Space Ecosystem, OpenStreetMap, AWS Open Data, CelesTrak, państwowego portalu geodanych.
Gdzie znajdują się dane uwierzytelniające i dlaczego nie trafiają do przeglądarki
Dostęp do Copernicus odbywa się za pomocą identyfikatora i sekretu klienta, przez przepływ OAuth2 `client_credentials` do `identity.dataspace.copernicus.eu`. Żądanie tokena wychodzi wyłącznie z serwera, z timeoutem 10 sekund i z odświeżeniem tokena 60 sekund przed rzeczywistym wygaśnięciem. Przeglądarka nigdy nie widzi sekretu; prosi o naszą trasę, a trasa pyta Copernicus. Bez skonfigurowanych danych uwierzytelniających trasa zwraca 503, a reszta strony działa.
Co przechowujemy u nas
Płytki obrazowe są trzymane w pamięci podręcznej procesu, z nagłówkami wskazującymi, jaki produkt i jaka rozdzielczość zostały zwrócone. Duże katalogi są ładowane dopiero po wyświetleniu mapy i są przechowywane lokalnie, z terminem ważności: karta obiektu katalogu orbitalnego, mająca prawie 7 MB, pozostaje w pamięci lokalnej przeglądarki przez jeden dzień. Pomiary pochodne — nachylenie, izolinie, profil wysokościowy — są regenerowane ze źródła przez skrypty, a nie edytowane ręcznie.
Atrybucja nie jest opcjonalna
Źródła publiczne są objęte warunkami. Polityka CelesTrak wymaga atrybucji i zabrania masowej redystrybucji katalogu; dlatego panel źródeł w interfejsie jest wymaganiem, a nie ozdobą. Copernicus i OpenStreetMap mają własne warunki użytkowania i atrybucji. W ramach dostawy weryfikacja tych warunków odbywa się na początku, a nie przy uruchomieniu.
Gdy jednak pojawiają się dane osobowe
Dzieje się tak tylko przy jednym rodzaju warstwy: publicznych strumieniach wideo i obrazach z ulicy. Tam praca nie jest już tylko geoprzestrzenna — wchodzi rozmywanie twarzy i tablic rejestracyjnych przy pozyskaniu, zachowanie wyłącznie pochodnej geometrii oraz ocena skutków przed pierwszą kamerą. Obraz satelitarny w 10 m nie ma tego problemu: jeden piksel obejmuje dziesięć metrów terenu.

Przykład

Płaski bulwar, który miał nachylenie 13,5%

Sytuacja

W autorskim opracowaniu dotyczącym pomiaru rzeźby terenu municypium Kiszyniów nachylenie ulic zostało obliczone bezpośrednio z publicznego modelu cyfrowego 30 m, biorąc kolejne punkty z geometrii ulic. Wynik wyglądał przekonująco i był gotowy do publikacji.

Co zbudowaliśmy

Przy weryfikacji jeden z centralnych bulwarów — praktycznie płaski dla każdej osoby, która po nim chodzi — wychodził z nachyleniem 13,5%. Przyczyna była cicha: publiczny model jest modelem powierzchni, więc w gęstej kwartałowej zabudowie zwraca wysokość dachu. Dwa punkty oddalone o 30 m, z których jeden trafił w gzyms, dają różnicę wysokości, która nie istnieje na jezdni. Ten sam defekt pojawiał się też gdzie indziej: sąsiednie budynki trafiały na różny „grunt” z różnicą około 20 m, a drogi wychodziły średnio 13 m poniżej budynków i znikały między blokami w scenie trójwymiarowej, ponieważ drogi biegną dolinami, a budynki stoją na płaskowyżu.

Co z tego wyszło

Geometria została przeniesiona na przybliżoną powierzchnię terenu, uzyskaną przez filtrację oknem szerszym niż jeden kwartał, a nachylenie odtąd mierzy się na długiej podstawie, a nie między kolejnymi punktami, które mogą być oddalone od siebie o kilka metrów — poniżej rozdzielczości rastra. Już opublikowane statystyki pozostały zadeklarowane na modelu surowym, a strona to mówi, ponieważ przeniesienie części liczb na inną podstawę uczyniłoby je wzajemnie niespójnymi.

Czego nie mówi ten przypadek

Nic nie zwróciło błędu. Interfejs programowania odpowiedział 200, pliki były czytane, mapa była rysowana. To jest wzorzec, który interesuje nas najbardziej w danych geoprzestrzennych: źródło działa, a wynik jest subtelnie błędny. Jedyną obroną, która działa, jest sprawdzenie znanej wartości — bulwaru, o którym wiadomo, że jest płaski.

Pytania

O co pytają ludzie, zanim zadzwonią

Czy macie własne satelity?

Nie, żadnego, i żadnych czujników. Copernicus jest programem Unii Europejskiej do obserwacji Ziemi — satelity, czujniki i archiwum należą do niego. Katalog orbitalny pochodzi z CelesTrak, który redystrybuuje dane utrzymywane przez US Space Force. Logujemy się własnymi poświadczeniami, prosimy o przetworzone produkty przez API i budujemy to, co dalej: obliczenie, mapa, strażnik pochodzenia, interpretacja. Jeśli ktoś mówi, że ma własne satelity w Mołdawii, poproście o numer NORAD.

Jak często aktualizowany jest obraz?

To zależy od misji i od chmur, nie od nas. Optyka wielospektralna 10 m: rzędu 2–5 dni, gdy istnieje scena bez zachmurzenia. Radar 10 m: około 6–12 dni, ale działa nocą i przez chmury. Pasmo termiczne w skali kilometrowej i produkty atmosferyczne: codziennie lub wielodniowo. W listopadzie z zamkniętym niebem przez tydzień warstwa optyczna po prostu nie ma co pokazać — i wtedy to piszemy, a nie pożyczamy starszy obraz.

Co praktycznie oznacza rozdzielczość 10 m?

Jeden piksel obejmuje dziesięć metrów terenu. Widać kwartał, działkę rolną, hałdę, plac budowy, zmianę powierzchni. Nie widać samochodu, osoby ani numeru rejestracyjnego — i dlatego obraz satelitarny z tej kategorii nie rodzi problemu danych osobowych. W przypadku produktów atmosferycznych piksel jest rzędu kilometrów: odczytuje się trend nad miastem, a nie ulicę.

Czy możecie podać mi dokładną wysokość moich budynków?

Nie z tych źródeł. Publiczny model w rozdzielczości 30 m jest modelem powierzchni — zwraca wysokość najwyższego punktu tego, co tam się znajduje, w tym dachów i koron drzew — i jest zbyt zgrubny dla pojedynczego budynku. Co możemy: podać, na jakiej rzędnej gruntu stoi każdy obrys, a tam, gdzie OpenStreetMap deklaruje wysokość, użyć podanej wartości, oznaczonej osobno od estymacji. Do precyzyjnych wysokości potrzebne jest inne pozyskanie: LiDAR albo fotogrametria z drona. To jest praca terenowa, nie archiwalna.

Czy możecie wykrywać osuwiska?

Możemy zbudować warstwę priorytetyzacji, nie werdykt. Ekran ryzyka łączy nachylenie z modelu terenu, utratę koherencji radarowej, zmianę powierzchni w optyce i akumulację opadów — i zwraca listę obszarów do sprawdzenia. Potwierdzenie rzeczywistego przemieszczenia wymaga interferometrii: par scen w kierunku wznoszącym i opadającym, plików orbitalnych, rozwinięcia fazy. To osobna praca. W naszych produktach to rozróżnienie jest zapisane wyraźnie obok warstwy, aby nikt nie odczytał priorytetyzacji jako detekcji.

Dlaczego w mapie pojawiają się luki?

Bo tam nie zaobserwowano nic użytecznego — zwykle chmury, cień chmury, cirrus albo śnieg, odfiltrowane z pasma klasyfikacji sceny. Luka jest informacją, a nie wadą. Alternatywa, wypełnienie z innego dnia, daje ciągły obraz, który miesza dwa momenty i którego nie można użyć do porównania. Ta sama logika dotyczy niedostępnych źródeł: warstwa pokazuje OFFLINE i powód.

Czy pozycja satelity na mapie jest rzeczywista, w czasie rzeczywistym?

To pozycja obliczona, nie przesyłana. Startuje się od opublikowanych elementów orbitalnych z wcześniejszego momentu i propaguje je do teraz standardowym modelem. Błąd rośnie wraz z wiekiem elementów, a my pokazujemy go w kilometrach dla wybranego obiektu i oznaczamy wiek danych. Obiekt z elementami sprzed kilku dni może być o dziesiątki kilometrów od miejsca, które pokazuje punkt — dlatego to jest napisane, a nie ukryte.

Co się dzieje, jeśli publiczne źródło się zmieni albo zniknie?

To rzeczywiste ryzyko tego typu pracy i jest ono obsługiwane na etapie umowy, nie incydentu. Publiczne źródła zmieniają formaty, limity użycia i warunki. Dlatego dostarczamy listę zewnętrznych zależności z ich punktem awarii, trzymamy warstwę dostępu odizolowaną w jednym miejscu kodu i oznaczamy niedostępne źródło w interfejsie zamiast pozwalać, by mapa wyglądała na działającą. Platforma, która ukrywa martwe źródło, jest groźniejsza niż taka, która zatrzymuje się widocznie.

Czy dane zostają u was czy u klienta?

Wyniki pochodne — mapy, liczby, obliczone warstwy — należą do klienta i są przekazywane razem ze skryptami, które regenerują je ze źródła. Dane źródłowe pozostają tam, gdzie są, w publicznych archiwach, na ich licencjach i warunkach atrybucji; nie redystrybuujemy ich masowo, bo niektóre licencje zabraniają dokładnie tego. Poświadczenia dostępu do Copernicus mogą należeć do klienta, na jego koncie, jeśli chce pełnej niezależności od nas.

Na czym opierają się powyższe stwierdzenia (21 źródeł)
  1. https://www.megapromoting.com/satelit/ odpowiada kodem 200https://www.megapromoting.com/satelit/ · 2026-09-06
  2. https://relieva.vercel.app odpowiada kodem 200 i serwuje 680 122 bajtyhttps://relieva.vercel.app · 2026-09-06

19 z nich to kod i pliki z naszych repozytoriów. Nie publikujemy ich nazw ani numerów linii: razem, na jednej stronie, opisałoby to zbyt dokładnie, jak zbudowane są systemy, które nie należą tylko do nas. Przechodzimy je razem z Tobą, w repozytorium, na życzenie — weryfikacja pozostaje możliwa, tylko odbywa się w rozmowie.

Co chcesz, żeby działało lepiej?

Opowiedz nam o swoim procesie. Wspólnie ustalimy, co warto zbudować, co da się połączyć i jak sprawdzimy wynik.

Porozmawiajmy