Перейти до основного вмісту
megapromotingПоговорімо

Експертиза · Геопросторові дані

Шари спостереження Землі над територією, кожен із джерелом, часом зчитування та межею, написаними поруч.

Ми будуємо операційну карту території з публічних джерел спостереження за Землею — Copernicus, OpenStreetMap, орбітальних каталогів, урядового ортофото — і прив’язуємо до кожного шару походження, момент останнього успішного читання і те, що саме він не може показати. Вимірювання публікуються разом із методом, який їх породив.

Вже збудованоТри власні реалізації, які сьогодні можна відкрити ззовні. FlowMind працює на власному VM і має 109 API-маршрутів, з яких дев’ять безпосередньо спілкуються з Copernicus Data Space Ecosystem (`src/app/api/copernicus/`, перевірено підрахунком на диску). Relieva відповідає 200 і запитує live-зображення Sentinel під час кожного завантаження сторінки (680.122 байти, перевірено через curl 06.09.2026). Orbital Nexus є публічним на `https://www.megapromoting.com/satelit/` і локально поширює каталог приблизно 11.900 об’єктів. Резерв, який треба сказати з першого речення: ми не володіємо жодним супутником і жодним сенсором. Copernicus — це публічна програма Європейського Союзу, а орбітальний каталог надходить від CelesTrak, який розповсюджує дані, що підтримуються US Space Force. Те, що побудували ми, — це шар зверху.

Територію — місто, район, зону інфраструктури — можна прочитати з даних, які вже є у відкритому доступі: супутникових знімків, вуличної геометрії, моделей рельєфу, кадастрового ортофото, орбітальних каталогів. Цей сервіс збирає їх в одну операційну мапу і, що важливіше, веде облік того, що означає кожен шар: який сенсор його створив, з якою роздільною здатністю, як часто він оновлюється і коли востаннє був успішно прочитаний.

Треба сказати чітко, бо це легко неправильно зрозуміти і бо це твердження, яке дехто робить без права: **Copernicus не наш.** Це програма спостереження Землі Європейського Союзу, зі своїми супутниками, сенсорами й архівом. Ми автентифікуємося в Copernicus Data Space Ecosystem власними обліковими даними типу `client_credentials` і запитуємо оброблені продукти через API. Роздільна здатність, частота повторного огляду, хмарність і радіометрична якість належать місії, а не нам. Те саме для орбітального каталогу: він надходить від CelesTrak, з показаним посиланням на джерело, бо цього вимагає їхня політика. Те, що ми тримаємо, — це автентифікацію, правильний запит, обчислення, рендеринг, охоронець походження та інтерпретацію.

Правило змісту однакове всюди: цифра публікується разом із методом, який її породив. Ухил вулиці означає одне, якщо його обчислено ядром Horn 3×3 на растрі 25 m, і зовсім інше, якщо його зчитано з двох точок на відстані 30 m. Висота будівлі означає інше, якщо вона заявлена в OpenStreetMap, ніж якщо її оцінено за кількістю поверхів. Змішування цих двох категорій під одним кольором — найчастіший спосіб видати мапу, яка виглядає добре й бреше.

Коли джерело не відповідає, шар позначається OFFLINE, з причиною, і його не заповнюють правдоподібним значенням. У FlowMind правило має автоматичного охоронця, `noFakeLive`, який відмовляється позначати шар як LIVE без доказу успішного зчитування. Порожній піксель означає «тут ми не спостерігали», а не «тут нічого немає».

Що входить

Робота, за складовими

Питання обирає сенсор, а не навпаки

Перший етап не технічний. «Де деградує рослинність», «де може проїхати колісний транспорт», «де змінилася поверхня між двома датами» і «що відбувається вночі або під хмарами» потребують різних інструментів. Оптичний мультиспектральний знімок із роздільною здатністю 10 м для рослинності та води, радар C-діапазону для умов, у яких оптика не бачить, теплова смуга з порядком кілометрів для контрасту поверхні, модель рельєфу для ухилу. Невірно обраний сенсор дає результат, який виглядає правильним і таким не є.

Ми просимо оброблений продукт, у потрібному прямокутнику та часовому вікні

Ми не завантажуємо цілі сцени, щоб різати їх локально. Запит до Copernicus містить географічний прямокутник, часовий інтервал і скрипт оцінювання, який точно каже, яка смуга входить і що виходить як піксель. У FlowMind запити Sentinel-2 йдуть до колекції `sentinel-2-l2a` на ендпоінт `https://sh.dataspace.copernicus.eu/api/v1/process`; Sentinel-1 — до `sentinel-1-grd`, Sentinel-5P — до `sentinel-5p-l2`. NDVI обчислюється з B08 і B04, NDWI — з B03 і B08 — в evalscript, у джерелі, а не з уже стисненого зображення.

Ми публікуємо цифру разом із методом, прикріпленим до неї

Кожен блок результату має позначку походження. У Relieva їх три: виміряне, із джерел і запропоноване. Під картою ухилу буквально написано «COP-DEM GLO-30 · UTM 35N 25 m · Horn 3×3», а під сценою рельєфу написано вертикальне перебільшення ×3,5, саме тому, що перебільшений рельєф красивий і оманливий. Покупець, який хоче перевірити цифру, має мати змогу пройти шлях до неї назад.

Маска хмар, а не видалення хмар

Запити Sentinel-2 одразу відхиляють сцени з понад 40% хмарності (`MAX_CLOUD_COVERAGE = 40`). В evalscript пікселі, які смуга класифікації сцени SCL позначає як хмару, тінь хмари, cirrus або сніг — класи 3, 8, 9, 10 і 11 — повертаються повністю прозорими. Зручна альтернатива, заповнення прогалини зі старішої сцени, дає неперервне зображення, що змішує два моменти. Ми віддаємо перевагу прогалині, бо її можна правильно прочитати.

Радар, коли оптика не може

Sentinel-1 C-SAR проходить крізь хмари і працює вночі, з роздільною здатністю 10 м, і повторно відвідує територію з періодом порядку 6–12 днів. У наших продуктах використовується відношення між поляризаціями VV і VH як скринінг на одній сцені: воно показує відмінності поверхні та вологості. Це не інтерферометрія. Міліметрові зміщення ґрунту потребують висхідних/низхідних пар, файлів орбіти, моделі рельєфу та етапу розгортання фази — окрема робота, позначена такою в нашому каталозі продуктів, а не те, що ми постачаємо з одного запиту tile.

Модель поверхні не є моделлю рельєфу — пастка, яка не дає жодної помилки

Copernicus DEM GLO-30 — це цифрова модель поверхні: у щільному кварталі вона повертає позначку даху, а не проїжджої частини. Ніщо не сигналізує про проблему; лише цифри виходять неправильними. Саме тому геометрія, яка має стояти на землі, ставиться на відфільтровану поверхню, а ухил вимірюється на довгій базі — приблизно менше ніж 60 м між точками вимірюється шум растру, а не рельєф. Доповнювальне правило не менш важливе: якщо опубліковану статистику було обчислено на сирій моделі, вона залишається на сирій моделі, і сторінка це каже. Змішування двох баз в одному наборі цифр робить їх неузгодженими.

Міська геометрія з OpenStreetMap, з відокремленим походженням висот

Контури будівель і вулична мережа надходять з OpenStreetMap, із зазначеною датою знімка. У 3D-сцені центру Кишинева з 9.506 контурів лише 1.128 мають висоту, задекларовану в OSM; решта 8.378 оцінені з кількості поверхів, помноженої на 3,2 м. Дві категорії в сцені пофарбовані по-різному. Кожна будівля стоїть на позначці землі під нею, а не на плоскій плиті — тому будинки піднімаються у бік парку катедрали замість того, щоб здаватися вирівняними.

Орбітальні позиції, обчислені локально, з видимим віком даних

Точки на глобусі — не позиції, передані супутниками. Це обчислені позиції: починають з орбітальних елементів, чинних на момент у минулому, і поширюють їх моделлю SGP4 до поточного часу. Помилка зростає з кожним днем, що минув від останнього оновлення, а застосунок показує її в кілометрах для вибраного об’єкта. У FlowMind вік елементів явно позначено як fresh / stale / expired. Обчислення працює в окремому потоці, щоб інтерфейс не блокувався.

Картографічний фон без платних ключів

3D-сцена накладає урядове ортофото з `geodata.gov.md` (WMS, Агентство земельних відносин та кадастру) на модель рельєфу з публічних плиток AWS Open Data, відрендерену з MapLibre GL. Без API-ключів і без плати за відображення. Фон — це візуальна орієнтація; продукти Copernicus залишаються окремими шарами, кожен зі своїм супутником, сенсором, роздільною здатністю та обмеженнями.

Як це виглядає

Шлях, крок за кроком.

01

Ми окреслюємо територію і записуємо питання, на яке має відповісти карта

Географічний прямокутник, короткий список операційних питань і, для кожного, вердикт, чи існує публічне джерело, яке може відповісти. Ми постачаємо інвентар джерел із роздільною здатністю, частотою та межею кожного — включно з рядками, де написано «для цього немає публічного джерела». Ці рядки — найкорисніша частина інвентарю.

02

Ми з’єднуємо джерела і ставимо вартового перед першим красивим шаром

Автентифікація, серверні маршрути, кеш і — обов’язково в такому порядку — правило, яке забороняє позначати шар як LIVE без доказу успішного читання. Охоронець пишеться перед шарами, бо потім його вже ніхто не додасть. Ми здаємо робочі маршрути та звіт про стан джерел, який можна запитувати.

03

Ми вимірюємо один раз, повністю, з методом, записаним поруч із результатом

Репроєкція, розрахунок, пороги, обрані за явними критеріями — не естетичними. На карті ухилів Кишинева пороги становлять 8,33%, тобто доступний пандус 1:12, і 12%, вище яких тротуарні роботи, оцінені в 10–15%, уже не піднімаються. Ми здаємо цифри, скрипти, що відтворюють їх із джерела, і сторінку, яка позначає кожен блок як виміряний, з джерел або запропонований.

04

Ми здаємо з обмеженнями наперед, а не в підвалі

Що карта не може показати, з яким інтервалом старіє кожен шар, що відбувається, якщо публічне джерело змінює умови або зникає, і що вимагав би перехід від скринінгу до точного вимірювання. Ми здаємо процедуру оновлення та список зовнішніх залежностей із точкою їхнього розриву.

ШАР НА КАРТІОдна й та сама територія, прочитана окремими шарами.
Шари над однією й тією ж територією, один над одним: модель рельєфу в основі, вулична геометрія та відбитки будівель зверху, оптичне й радарне зображення як окремі шари — кожен зі своєю міткою роздільної здатності, каденції та моментом останнього успішного читання.

Дані

Чого торкаємося, де воно лежить і скільки лишається

Запитання, які ставить кожен, у кого є відповідальний за захист даних, — поставлені тут раніше, ніж їх поставить він.

Які саме дані охоплює робота
Зазвичай дані про територію, а не про людей: мультиспектральна відбивна здатність, радарне зворотне розсіювання, відмітки висот, вулична геометрія, контури будівель, орбітальні елементи. Усе це походить із публічних архівів — Copernicus Data Space Ecosystem, OpenStreetMap, AWS Open Data, CelesTrak, державного порталу геоданих.
Де зберігаються облікові дані і чому вони не потрапляють у браузер
Доступ до Copernicus здійснюється за допомогою ідентифікатора та секрету клієнта, через OAuth2-потік `client_credentials` на `identity.dataspace.copernicus.eu`. Запит токена йде лише із сервера, з тайм-аутом 10 секунд і з оновленням токена за 60 секунд до фактичного завершення дії. Браузер ніколи не бачить секрет; він звертається до нашого маршруту, а маршрут звертається до Copernicus. Без налаштованих облікових даних маршрут повертає 503, а решта сторінки працює.
Що зберігається у нас
Плитки зображень зберігаються в процесному кеші, з заголовками, які вказують, який продукт і яка роздільна здатність були повернуті. Великі каталоги завантажуються після того, як карта вже на екрані, і зберігаються локально з терміном: картка орбітального каталогу об’єкта, майже 7 MB, лежить у локальній пам’яті браузера одну добу. Похідні вимірювання — ухил, горизонталі, висотний профіль — відтворюються зі джерела за допомогою скриптів, а не редагуються вручну.
Атрибуція не є необов’язковою
Публічні джерела постачаються з умовами. Політика CelesTrak вимагає атрибуції та забороняє масове поширення каталогу; тому панель джерел в інтерфейсі є вимогою, а не прикрасою. Copernicus і OpenStreetMap мають власні умови використання та атрибуції. У поставці перевірка цих умов робиться на початку, а не під час запуску.
Коли все ж з’являються персональні дані
Це трапляється лише з одним типом шару: публічними відеопотоками та зображеннями, знятим на вулиці. Там робота вже не є лише геопросторовою — на етапі обробки входять розмивання облич і номерних знаків, збереження лише похідної геометрії та оцінка впливу перед першою камерою. Супутникове зображення з роздільною здатністю 10 m не має цієї проблеми: один піксель покриває десять метрів землі.

Випадок

Плоский бульвар, що показував ухил 13,5%

Ситуація

В одному власному дослідженні з вимірювання рельєфу муніципалітету Кишинева ухил вулиць було обчислено безпосередньо з публічної цифрової моделі з кроком 30 m, беручи послідовні точки з вуличної геометрії. Результат виглядав переконливо і був готовий до публікації.

Що ми збудували

Під час перевірки один із центральних бульварів — практично рівний для будь-кого, хто ним іде — мав ухил 13,5%. Причина була прихованою: публічна модель є поверхневою моделлю, тож у щільному кварталі вона повертає висоту даху. Дві точки на відстані 30 м, одна з яких припала на карниз, дають різницю висот, якої немає на проїжджій частині. Такий самий дефект проявлявся і в іншому місці: сусідні будівлі опинялися на різному «ґрунті» приблизно на 20 м, а дороги в 3D-сцені виявлялися в середньому на 13 м нижче за будівлі та зникали між блоками, бо дороги йдуть долинами, а будівлі стоять на плато.

Що вийшло

Геометрію було перенесено на приблизну поверхню рельєфу, отриману фільтрацією вікном, ширшим за квартал, і відтоді ухил вимірюється на довгій основі, а не між послідовними точками, які можуть бути за кілька метрів одна від одної — нижче роздільної здатності растра. Уже опублікована статистика залишилася заявленою на сирій моделі, і сторінка це говорить, тому що перенесення частини цифр на іншу основу зробило б їх взаємно несумісними.

Чого цей випадок не каже

Нічого не дало помилки. Інтерфейс програмування відповів 200, файли читалися, карта малювалася. Це саме той шаблон, який нас найбільше цікавить у геопросторових даних: джерело працює, а результат тонко помилковий. Єдиний захист, який справді працює, — перевірка відомого значення: бульвару, про який ви знаєте, що він рівний.

Питання

Про що нас питають, перш ніж зателефонувати

У вас є власні супутники?

Ні, жодного, і жодних сенсорів теж. Copernicus — це програма Європейського Союзу з спостереження за Землею — супутники, сенсори й архів належать їй. Орбітальний каталог надходить від CelesTrak, яка поширює дані, що підтримуються US Space Force. Ми автентифікуємося власними обліковими даними, запитуємо оброблені продукти через API й будуємо те, що далі: розрахунок, карту, охоронця походження, інтерпретацію. Якщо хтось каже вам, що має власні супутники в Молдові, попросіть номер NORAD.

Як часто оновлюється зображення?

Це залежить від місії та хмар, а не від нас. Оптичне мультиспектральне зображення з роздільною здатністю 10 м: від 2–5 днів, коли є сцена без хмар. Радар із роздільною здатністю 10 м: приблизно 6–12 днів, але працює вночі й крізь хмари. Теплова смуга на рівні кілометра та атмосферні продукти: щоденно або раз на кілька днів. У листопаді із закритим небом протягом тижня оптичний шар просто не має що показати — і тоді так і пише, а не позичає старіше зображення.

Що практично означає роздільна здатність 10 м?

Один піксель покриває десять метрів на місцевості. Видно квартал, сільськогосподарську ділянку, відвал, будівельний майданчик, зміну поверхні. Не видно автомобіля, людини чи номерного знака — і саме тому супутникове зображення цієї категорії не порушує питання персональних даних. Для атмосферних продуктів піксель має кілометровий порядок: читається тенденція над містом, а не вулиця.

Ви можете дати мені точну висоту моїх будівель?

Не з цих джерел. Публічна модель із кроком 30 м є поверхневою моделлю — вона повертає висоту вершини того, що там є, включно з дахами та кронами дерев, — і вона занадто груба для окремої будівлі. Що ми можемо: сказати, на якій висоті рельєфу стоїть кожен контур, а там, де OpenStreetMap декларує висоту, використати задеклароване значення, позначене окремо від оцінки. Для точних висот потрібне інше отримання даних: LiDAR або фотограмметрія з дрона. Це польова робота, а не робота з архіву.

Ви можете виявляти зсуви ґрунту?

Ми можемо побудувати шар пріоритизації, а не вердикт. Екран ризику поєднує ухил із моделі рельєфу, втрату радарної когерентності, зміну поверхні в оптиці та накопичення опадів — і видає список зон для перевірки. Підтвердження реального переміщення потребує інтерферометрії: пар висхідних і низхідних сцен, орбітальних файлів, розгортання фази. Це окрема робота. У наших продуктах це розрізнення прямо написане поруч із шаром, щоб ніхто не читав пріоритизацію як виявлення.

Чому на карті з’являються прогалини?

Тому що там не спостерігалося нічого придатного — зазвичай хмара, тінь від хмари, cirrus або сніг, відфільтровані з каналу класифікації сцени. Прогалина — це інформація, а не дефект. Альтернатива, заповнення з іншої дати, дає безперервне зображення, яке змішує два моменти, і його не можна використовувати для порівняння. Та сама логіка застосовується до джерел, що впали: шар пише OFFLINE і причину.

Положення супутника на карті — це реальне, у реальному часі?

Це розраховане положення, а не передане. Воно стартує з орбітальних елементів, опублікованих у минулому, і поширюється до теперішнього часу стандартною моделлю. Похибка зростає зі старінням елементів, і ми показуємо її в кілометрах для вибраного об’єкта та позначаємо вік даних. Об’єкт із елементами, старими на кілька днів, може бути на десятки кілометрів від того місця, де його показує точка — саме тому це пишуть, а не ховають.

Що відбувається, якщо публічне джерело змінюється або зникає?

Це реальний ризик такого типу роботи, і його вирішують у договорі, а не під час інциденту. Публічні джерела змінюють формати, квоти використання та умови. Тому ми надаємо список зовнішніх залежностей із точкою їхнього розриву, тримаємо шар доступу ізольованим в одному місці коду та позначаємо недоступне джерело в інтерфейсі замість того, щоб лишати мапу такою, ніби вона працює. Платформа, яка приховує мертве джерело, небезпечніша за ту, що зупиняється видимо.

Дані залишаються у вас чи в клієнта?

Похідні результати — карти, числа, обчислені шари — належать клієнту і передаються разом зі скриптами, які відтворюють їх із джерела. Дані-джерела залишаються там, де вони є, в публічних архівах, під їхніми ліцензіями та умовами атрибуції; ми не розповсюджуємо їх масово, бо деякі ліцензії прямо це забороняють. Облікові дані для доступу до Copernicus можуть бути у клієнта, в його обліковому записі, якщо він хоче повну незалежність від нас.

На чому ґрунтуються твердження вище (21 джерел)
  1. https://www.megapromoting.com/satelit/ відповідає 200https://www.megapromoting.com/satelit/ · 2026-09-06
  2. https://relieva.vercel.app відповідає 200 і віддає 680.122 байтівhttps://relieva.vercel.app · 2026-09-06

19 з них — це код і файли з наших репозиторіїв. Ми не публікуємо їхні назви чи номери рядків: разом, на одній сторінці, це надто точно описало б, як побудовані системи, які належать не лише нам. Ми проходимо їх разом із вами, у репозиторії, за запитом — перевірка залишається можливою, просто вона відбувається в розмові.

Що вам хотілося б налагодити?

Розкажіть про свій процес. Разом визначимо, що варто збудувати, що можна підключити і як перевіримо результат.

Поговорімо