Я разрабатываю код C #, который читает 1090ES Automatic Dependent Surveillance - Broadcast (ADS-B).
Сообщения о местоположении ADS-B, передаваемые бортовым передатчиком ADS-B, имеют различное кодирование в зависимости от того, находится ли воздушное судно в воздухе или на земле.
Когда я декодирую кадры данных о местоположении в воздухе как положения, закодированные в компактных отчетах о местоположении (CPR), я получаю реалистичные результаты. Однако, когда я декодирую CPR для кадров положения на поверхности, позиции, которые я получаю, далеки (географически) от того, что я должен получить.
Чем CPR в сообщениях о местоположении на земле отличается от сообщений о местоположении в воздухе и как они правильно декодируются?
Кодирование компактного отчета о местоположении (CPR) в наземных сквиттерах отличается от кодирования бортового CPR. Разрешение в 4 раза лучше (~1,25 м вместо ~5 м) ценой потери 2 старших битов.
Из-за этого глобальное декодирование положения на поверхности дает неоднозначное решение. IIRC решение может быть в 4-х точках земного шара, вы должны выбрать ближайшую к вам. И вы должны подтвердить, что он находится в пределах реалистичного диапазона, как вы должны сделать с декодированием бортовой СЛР. После того, как вы подтвердили положение с помощью глобального декодирования на паре пар четных и нечетных сквитеров, вы можете использовать более эффективное локальное декодирование. Конечно, как и в случае с декодированием СЛР в воздухе, вам необходимо защититься от скачков положения и временных промежутков в вашем алгоритме декодирования.
ГдД
ТТТ
ТТТ
ТТТ
ТТТ
ДельтаЛима
ТТТ