Ответчик без GPS
Старые самолёты, часть военных и борта в районах, где кто-то глушит GPS, позицию не передают или передают ерунду. Но их ответчик продолжает отвечать. Наземные радары постоянно запрашивают у каждого самолёта опознавание и высоту, ответчик каждый раз отвечает, и этот ответ слышат все станции вокруг, а не только радар, который спрашивал.
Этого хватает, чтобы вычислить, где самолёт. Метод называется мультилатерацией, коротко MLAT, и управление воздушным движением пользуется им десятки лет: в крупных аэропортах он следит за самолётами, рулящими между зданиями, где радар видит плохо, а в горных долинах заменяет радары, которые не заглядывают за хребты.
Из разницы во времени — позиция
Радиосигнал идёт со скоростью света: за миллионную долю секунды он проходит около 300 метров. Если ответ пришёл на станцию A на три миллионные доли секунды раньше, чем на станцию B, значит, самолёт примерно на 900 метров ближе к A, чем к B.
Само по себе это не говорит, где самолёт. Все точки ровно с такой разницей образуют на карте кривую. Вторая пара станций даёт вторую кривую, и самолёт там, где они пересекаются. Высоту вычислять не нужно — самолёт сообщает её в своём ответе. А четвёртая станция по-прежнему лучший способ заметить, что пересечение не сходится.
Самое трудное — часы. У станции на балконе нет атомных часов, а часы двух станций в километрах друг от друга постоянно расходятся. Решение летает над головой. Каждый самолёт, который сам сообщает свою позицию, — это движущийся эталон: мы знаем, где он был и когда его услышала каждая станция, а значит, знаем, насколько в этот момент расходятся их часы. Молчаливые самолёты потом меряются по разговорчивым.
Почему сеть важнее математики
Миллионная доля секунды — это 300 метров, поэтому часы станций должны сходиться с точностью до миллионных долей секунды, иначе ошибка во времени сразу превращается в ошибку в позиции. Точным должно быть и положение антенн.
Не менее важна геометрия. Когда станции стоят в ряд, кривые пересекаются под острым углом, и крошечная ошибка сдвигает точку пересечения на километры. Станции вокруг самолёта дают чёткое пересечение. Так что если где-то MLAT не работает, причина обычно простая: рядом мало приёмников. Утром 1 октября 59 из 158 подключённых станций ещё не имели соседа, который слышал бы те же самолёты.
Поэтому страница сети станций показывает, где нынешних станций хватило бы, и советует двумя способами: либо станций не хватает, либо их достаточно, но одной недостаёт с противоположной стороны.
Мы подумали и об опечатке владельца. Станция, у которой положение антенны не совпадает с действительностью, уводила бы в сторону каждое пересечение, в котором участвует. Мы исключаем её из расчёта, владелец получает письмо, если у него есть у нас аккаунт, а станция остаётся подключённой — так мы сразу видим, что положение исправлено, и возвращаем её обратно.
Чистая линия посреди помех
Пилотный режим начался 7 сентября, штатный — 14 сентября. Вычисленные позиции мы рисуем на треке полыми бусинами, чтобы всегда было видно, что самолёт сообщил сам, а что досчитали мы.
13 сентября один Airbus над Венгрией сообщал позицию, которая за пять минут скакнула почти на четыреста километров в Румынию и обратно. За те же минуты больше девяноста позиций от наших станций сложились в непрерывную линию с обычной крейсерской скоростью. В такой момент на карте побеждает линия. Самолёт и сам помогает: он даёт понять, когда не доверяет собственной позиции, и если у наших станций в этот момент есть свежий расчёт, карта верит станциям.
Так же осторожно мы обращаемся со скоростью: какое-то время после того, как вычисленный самолёт снова появляется, поле скорости остаётся пустым. Это лучше, чем наоборот: Cessna, которая летает около 150 км/ч, после короткого пробела в данных иначе вернулась бы со скоростью реактивного лайнера.
У первой станции в округе часы не сломаны. Просто у неё ещё нет соседа.