Побрехенькі про авіацію у які вірять програмісти
Це переклад статті з 2025 року про неявні припущення які робили програмісти при праці в авіації.
У компанії FlightAware наше програмне забезпечення має коректно обробляти всілякі дивні й непередбачувані ситуації. Хоча нам, інженерам, хотілося б, щоб авіаційні дані були чистими та добре стандартизованими, реальний світ це бардак.
Існує безліч припущень, які можна зробити під час проєктування типів даних і схем для авіаційної інформації - і багато з них виявляються хибними. Ось перелік хибних уявлень, у дусі класичної статті Патріка Маккензі про імена, які можна мати про авіацію. Хоча деякі з них - це просто поширені міфи, деякі реально створювали проблеми нашим клієнтам, а інші - роками завдавали труднощів і в наших власних системах.
Усі вони ілюструють ті ситуації, які наша система відстеження рейсів Hyperfeed повинна правильно інтерпретувати, щоб забезпечити чисту та послідовну стрічку даних для нашого сайту, додатків і API.
Рейси
- Рейси відлітають з виходу на посадку.
- Рейси, що відлітають з виходу, залишають цей вихід лише один раз.
- Рейси вирушають протягом кількох годин після запланованого часу.
- Рейси вирушають протягом доби після запланованого часу.
- У рейсів є розклад.
- Рейси злітають і приземляються в аеропортах.
- Повітряний транспорт (крім гелікоптерів) злітають і приземляються в аеропортах.
- Тривалість рейсу - не більше дванадцяти годин або щось приблизне.
- Добре, нехай - не більше кількох діб.
- Рейси ідентифікуються номером, що складається з коду авіакомпанії та кількох цифр, наприклад, UAL1234.
- Рейси ідентифікуються або номером авіакомпанії (наприклад, UAL1234), або реєстраційним номером літака, як-от N12345, B6459 або FHUVL.
- Ідентифікатор рейсу на кшталт B6459 однозначно є або реєстраційним номером (B–6459), або номером рейсу авіакомпанії (B6 459), або чимось іншим.
- У рейсів не буває кількох номерів рейсу.
- Якщо у рейсу кілька номерів, то принаймні один з них є однозначно «основним».
- Номер(-и) рейсу конкретної подорожі ніколи не змінюються.
- Номер рейсу, вказаний у вашому квитку, той самий яким користуються пілоти та авіадиспетчери.
- Ідентифікатор рейсу не використовує код якоїсь зовсім не пов’язаної авіакомпанії.
- Жодні рейси не використовують один і той самий номер рейсу протягом дня.
- Ну вже ж точно - не буває, щоб один і той самий номер рейсу використовувався одночасно?
- Добре, гаразд - але ж принаймні два окремі рейси великої пасажирської авіакомпанії, які вилітають із різницею у кілька хвилин один від одного, не будуть одночасно мати той самий номер рейсу, правда ж?..
Аеропорти
- Аеропорти ніколи не переїжджають.
- Номери терміналів і виходів на посадку мають послідовну схему найменування.
- Кожна злітно-посадкова смуга використовується лише одним аеропортом.
- Кожен аеропорт завжди має два унікальні ідентифікатори: 4-літерний код Міжнародної організації цивільної авіації (ICAO) та 3-літерний код Міжнародної асоціації повітряного транспорту (IATA).
- Кожен аеропорт завжди має три унікальні ідентифікатори: ICAO, IATA і регіональний код розташування.
- Міністерство транспорту США призначає кожному підпорядкованому аеропорту один канонічний код.
- Жоден аеропорт не має кількох IATA-кодів.
- ICAO-коди для аеропортів у США завжди починаються з літери K.
- Для американських аеропортів, чий ICAO-код починається з K, останні три літери - це його IATA-код.
- За ICAO-кодом можна визначити, у якому географічному регіоні знаходиться аеропорт.
- Усе, що має IATA-код - це аеропорт.
- Усе, що має ICAO-код, знаходиться на Землі.
- У кожного аеропорту є принаймні один загальновідомий ідентифікатор.
Авіалінії
- Жодні дві авіакомпанії не використовують один і той самий IATA-код.
- Жодна авіакомпанія не використовує кілька IATA або ICAO кодів.
- Можна визначити, яка авіакомпанія виконує рейс, просто подивившись на фізичний літак.
- Авіакомпанії присвоюють номери рейсам для конкретних маршрутів.
- Авіакомпанії присвоюють номери рейсам тільки для тих рейсів, які вони оперують.
- Авіакомпанії присвоюють номери тільки рейсам.
Навігація
- Імена точок маршруту (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.
- Транспондери ніколи не ламаються, і гризуни ніколи не перегризають кабелі.
Дякую моїм колегам, які зробили внесок у цю добірку хибних уявлень або переглянули її: Марк Дуелл, Пол Дюрандт, Каріна Елізондо, Метт Гіггінс, Томас Кянко, Нейтан Рід і Емі Щепанські.