Це переклад статті з 2025 року про неявні припущення які робили програмісти при праці в авіації.

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

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

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

Рейси

  • Рейси відлітають з виходу на посадку.
  • Рейси, що відлітають з виходу, залишають цей вихід лише один раз.
  • Рейси вирушають протягом кількох годин після запланованого часу.
  • Рейси вирушають протягом доби після запланованого часу.
  • У рейсів є розклад.
  • Рейси злітають і приземляються в аеропортах.
  • Повітряний транспорт (крім гелікоптерів) злітають і приземляються в аеропортах.
  • Тривалість рейсу - не більше дванадцяти годин або щось приблизне.
  • Добре, нехай - не більше кількох діб.
  • Рейси ідентифікуються номером, що складається з коду авіакомпанії та кількох цифр, наприклад, UAL1234.
  • Рейси ідентифікуються або номером авіакомпанії (наприклад, UAL1234), або реєстраційним номером літака, як-от N12345, B6459 або FHUVL.
  • Ідентифікатор рейсу на кшталт B6459 однозначно є або реєстраційним номером (B–6459), або номером рейсу авіакомпанії (B6 459), або чимось іншим.
  • У рейсів не буває кількох номерів рейсу.
  • Якщо у рейсу кілька номерів, то принаймні один з них є однозначно «основним».
  • Номер(-и) рейсу конкретної подорожі ніколи не змінюються.
  • Номер рейсу, вказаний у вашому квитку, той самий яким користуються пілоти та авіадиспетчери.
  • Ідентифікатор рейсу не використовує код якоїсь зовсім не пов’язаної авіакомпанії.
  • Жодні рейси не використовують один і той самий номер рейсу протягом дня.
  • Ну вже ж точно - не буває, щоб один і той самий номер рейсу використовувався одночасно?
  • Добре, гаразд - але ж принаймні два окремі рейси великої пасажирської авіакомпанії, які вилітають із різницею у кілька хвилин один від одного, не будуть одночасно мати той самий номер рейсу, правда ж?..

Аеропорти

Авіалінії

Навігація

  • Імена точок маршруту (waypoints) є унікальними.
  • Існує єдине загальноприйняте визначення висоти.
  • Інформація про рейси від постачальників аеронавігаційних послуг є точною.
  • Ну гаразд, доволі точною; вони б не вказували, що рейс вирушив, якби це справді не так.
  • Якщо зазначено, що план польоту скасовано, то цей рейс точно не відбудеться - це не може бути просто результатом редагування кимось плану польоту.
  • Принаймні їхні радарні дані точно ідентифікують кожне повітряне судно.
  • Радари з перетинаючима зонами покриття показують однакове місцезнаходження об’єкта, який бачать одночасно.
  • Якщо вони надсилають нам план польоту з ICAO-кодом відомого аеропорту як пунктом призначення, це означає, що існує намір туди прибути.
  • Якщо літак відхиляється до іншого пункту призначення, він більше не буде змінювати напрямок повторно.

Транспондери та ADS-B

  • Повідомлення ADS-B надходять лише від літаків.
  • Повідомлення ADS-B надходять лише від літаків та службових транспортних засобів аеропорту.
  • Повідомлення ADS-B надходять лише від якогось виду транспортних засобів.
  • GPS-координати в ADS-B повідомленнях є точними.
  • GPS-координати в ADS-B повідомленнях точні в межах відомого радіуса похибки.
  • Повідомлення ADS-B завжди містять правильну ідентифікацію рейсу.
  • Транспондери запрограмовані правильно, щоб вказувати тип повітряного судна (гелікоптер, літак, повітряна куля тощо).
  • Завжди можна визначити реєстраційний номер літака за його ADS-B повідомленнями.
  • Транспондери запрограмовані з правильним адресом режиму S (Mode S).
  • Усі транспондери на одному повітряному судні запрограмовані з однаковим адресом режиму S (Mode S).
  • Ніхто ніколи не встановить ідентифікатор рейсу на щось дивне накшталт NULL.
  • Люди пам’ятають оновити транспондер, коли змінюється реєстрація літака.
  • Повідомлення ADS-B завжди приймаються точно в тому вигляді, як були передані.
  • Ніхто ніколи не передає фальшиві повідомлення ADS-B.
  • Транспондери ніколи не ламаються, і гризуни ніколи не перегризають кабелі.

Дякую моїм колегам, які зробили внесок у цю добірку хибних уявлень або переглянули її: Марк Дуелл, Пол Дюрандт, Каріна Елізондо, Метт Гіггінс, Томас Кянко, Нейтан Рід і Емі Щепанські.