В FlightAware ПО должно изящно обрабатывать все виды странных и удивительных ситуаций, которые возникают в мире авиации. Пока мы, программисты, надеемся, что все данные, связанные с этим миром, хорошо структурированы и чисты, в нем властвует хаос.

Во время проектирования типов данных и схем для мира авиации можно сделать много предположений, которые на самом деле оказываются неверными. Точно так же, как когда‑то Патрик Маккензи написал «Заблуждения программистов об именах», ниже я перечислил некоторые заблуждения об авиации, в которые каждый может легко впасть. Хотя многие из них возникают вследствие неправильного понимания этой области, некоторые всё же смогли «покусать» наших клиентов, а другие создавали нам проблемы на протяжении многих лет.

Все перечисленные ниже заблуждения отлично иллюстрируют ситуации, которые Hyperfeed (наша система отслеживания перелетов) должна уметь обрабатывать, чтобы наш сайт, приложения и API получали единообразную и структурированную информацию.

Авиаперелеты

  • Самолеты вылетают из гейта [выхода на посадку. Здесь и далее — прим. переводчика]

  • Самолеты, которые вылетают из гейта, покидают его ровно один раз. [Cм. на taxi time].

  • Рейсы отправляются в течение нескольких часов после планируемого времени вылета.

  • Рейсы отправляются в течение дня после назначенного времени в расписании.

  • У рейсов есть расписание.

  • Перелеты начинаются и завершаются в аэропортах.

  • Воздушные судна (за исключением вертолетов) вылетают и приземляются в аэропортах.

  • Перелет длится максимум 12 часов или около того.

  • Окей, длится максимум несколько дней?

  • Перелеты идентифицируются номером, состоящим из кода авиакомпании и набора цифр, например, UAL1234.

  • Перелеты могут быть идентифицированы либо номером рейса, либо номером регистрации судна, например, N1234, B6459 или FHUVL.

  • Идентификатор рейса (например, B6459) — это однозначно лишь одно из: либо номер регистрации воздушного судна (B-6459), либо номер рейса (B6 459), либо что‑то еще.

  • У одного рейса не может быть несколько номеров.

  • У рейсов с несколькими номерами должен быть какой‑то «главный» номер.

  • Номер конкретного рейса никогда не меняется.

  • Номер на посадочном талоне — это то же самое, что используют пилоты и командно‑диспетчерский пункт для идентификации рейса.

  • Номера рейсов одной авиакомпании не могут содержать код, принадлежащий какой‑то другой, не относящейся к ней авиакомпании.

  • В один и тот же день не может быть рейсов с одним и тем же номером.

  • Так, ну уж точно не должно совершаться одновременно двух рейсов с одним номером?

  • Ладно, хорошо... Два отдельных рейса от одной и той же крупной авиакомпании, которые отправляются в пределах нескольких минут, не могут иметь один и тот же номер? Верно?..

Аэропорты

  • Местоположение аэропортов никогда не меняется. [Аэропорт Ататюрк (Стамбул) раньше имел IST в качестве кода IATA. После открытия аэропорта Стамбул (Стамбул), старый аэропорт получил код ISL, а новый IST.]

  • Названия терминалов и гейтов должны следовать какой‑то единообразной схеме.

  • Взлетно‑посадочная полоса используется только одним аэропортом.

  • У аэропортов должно быть два идентификатора: четырехбуквенный от ICAO и трёхбуквенный от IATA. [ICAO — Международная организация гражданской авиации, учреждение ООН, устанавливает нормы авиации в мире; IATA — Международная ассоциация воздушного транспорта, создана для сотрудничества авиакомпаний. Чаще всего вы видите именно коды IATA, например, DME для аэропорта Домодедово.]

  • Аэропорты всегда имеют ICAO, IATA и какой‑то внутренний код. [В России есть отдельный внутренний код, например, у Домодедово — ДМД.]

  • В США Министерство Транспорта всегда присваивает один каноничный код к каждому аэропорту, над которым у него есть юрисдикция.

  • Ни у одного аэропорта не может быть несколько кодов IATA.

  • В США коды ICAO всех аэропортов начинаются с буквы K.

  • Для тех аэропортов США, у которых ICAO коды начинаются с буквы K, оставшиеся три символа совпадают с его кодом IATA.

  • По коду ICAO можно определить географический регион аэропорта.

  • Все, что имеет код IATA — аэропорт. [IATA индексирует не только аэропорты или аэродромы, но железнодорожные станции и другие не относящиеся к авиации объекты.]

  • Все, что имеет код ICAO находится на Земле. [У кратера Езеро на Марсе есть собственный код ICAO — JZRO].

  • У аэропортов есть хоть какой‑то хорошо известный идентификатор.

Авиакомпании

  • Каждая авиакомпания обладает уникальным кодом IATA.

  • Каждая авиакомпания обладает только одним кодом IATA или ICAO.

  • По внешнему виду воздушного судна можно точно определить, какая авиакомпания производит рейс.

  • Авиакомпании присваивают номера определенным маршрутам.

  • Авиакомпании присваивают номера только своим рейсам.

  • Авиакомпании присваивают номера только рейсам. [Очень интересный случай: аэропорты MLH и BSL являются фактически одним аэропортом, но находятся на территории двух разных стран. Так как на этих территориях разное ценообразование и правовые нормы, то в зависимости от того, в какой из этих «аэропортов» прилетит самолет, может меняться цена на рейс. Но при этом юридический перенос из одного аэропорта в другой нужно было объяснять интересным способом — перелетом в одну минуту.]

Навигация

  • Путевые (навигационные) точки имеют уникальные названия. [Путевые точки определяют точку в пространстве, с их помощью строятся воздушные маршруты.]

  • Понятие «высота» — единственное и общеизвестное. [Существует 6 видов высоты (если верить статье) в авиации: высота по прибору, абсолютная высота, истинная высота, высота, барометрическая высота и высота по плотности.]

  • Поставщики аэронавигационного обсуживания (ПАНО; Air Navigation Service Provider) предоставляют корректную информацию о перелете. [ПАНО предоставляют услуги по контролю воздушного трафика, погоды, навигации и т. д.]

  • Хорошо, их информация достаточно корректная, они хотя бы не сообщат, что самолет вылетел, если он на самом деле не покидал аэропорт.

  • Если полетный план отменен, то рейс точно не состоится.

  • Хотя бы информация с их радаров точно определяет каждое судно.

  • Положение судна, которое попало в зону видимости двух радаров, определяется ими согласованно и одинаково.

  • Если нам приходит информация, что самолет вылетел в определенный аэропорт назначения, значит изначально существовало намерение туда прилететь.

  • Если самолет изменил аэродром назначения, значит он больше не изменится.

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

  • ADS‑B сообщения приходят только от воздушного судна. [ADS‑B — система, передающая информацию о самолете в реальном времени — положение, скорость и др. Сообщения от этой системы общедоступны.]

  • ADS‑B сообщения приходят только от воздушного судна и наземного транспорта аэропорта.

  • ADS‑B сообщения приходят от транспорта какого‑то определенного типа.

  • GPS‑координаты в этих сообщениях точные.

  • GPS‑координаты в этих сообщениях точны с какой‑то заявленной погрешностью.

  • Идентификатор рейса в этих сообщениях — корректный.

  • Транспондеры всегда настроены передавать корректную информацию о типе воздушного судна (самолет, вертолет, беспилотник и т. д.)

  • В сообщениях ADS‑B всегда можно определить регистрационный номер судна.

  • Транспондеры запрограммированы передавать корректный Mode S адрес [ ‑уникальный код, присвоенный судну].

  • Все транспондеры на одном судне передают один и тот же Mode S адрес.

  • Никто не установит идентификатор полета на что‑то странное, например, NULL.

  • Транспондер не будут забывать перепрограммировать, когда регистрация судна меняется.

  • ADS‑B сообщения всегда приходят в том же виде, в котором они были отправлены.

  • Никто никогда не отправит неверное ADS‑B сообщение.

  • Транспондеры никогда не ломаются, и крысы никогда не грызут кабели.


Спасибо всем моим коллегам, кто помог составить этот список заблуждений: Mark Duell, Paul Durandt, Karina Elizondo, Matt Higgins, Thomas Kyanko, Nathan Reed и Amy Szczepanski.

Ben Burwell

Ben is a Senior Software Engineer on the Flight Tracking team.

Примечание от переводчика: я постарался найти переводы соответствующих статей и тредов, если же их не было, я оставлял оригинальную ссылку и небольшое пояснение.

Комментарии (17)


  1. CitizenOfDreams
    23.06.2025 08:36

    В авиации можно твердо рассчитывать только на одно правило: каждый взлетевший самолет когда-нибудь возвращается на поверхность Земли.


    1. Mi3y
      23.06.2025 08:36

      каждый взлетевший самолет когда-нибудь возвращается на поверхность Земли.

      ... всегда возвращается на поверхность Земли.


    1. TerekhinSergey
      23.06.2025 08:36

      это утверждение справедливо ровно до тех пор, пока никто космические аппараты не включил в ту же классификацию...


      1. DMGarikk
        23.06.2025 08:36

        надо тогда лучше писать "на поверхность массивного объекта"


        1. InTostor
          23.06.2025 08:36

          А если аппарат - спутник, или там вояджер?


        1. K0styan
          23.06.2025 08:36

          Лучше тогда уж: "..поверхность или горизонт событий массивного объекта"


    1. K0styan
      23.06.2025 08:36

      Но не факт, что единым целым


    1. Hemml
      23.06.2025 08:36

      Кроме тех, кто садится (или падает) на воду. Или тех, кто сгорает (взрывается) в полете. А как на счет случая, когда один самолет несет другой летательный аппарат, который отделяется от него в полете? Отдельно рассмотрим случаи, когда после этого садятся оба (на землю? на воду?), садится только один, ни один не садится.


      1. marinazmieva
        23.06.2025 08:36

        вода это тоже поверхность земли же


  1. urvanov
    23.06.2025 08:36


    1. jaelynn23
      23.06.2025 08:36

      и разрабатывали они его в таком же состоянии


  1. DrGluck07
    23.06.2025 08:36

    Ещё можно добавить по поводу скоростей: IAS, TAS, GS.

    Вообще это всё интересная и неожиданная тема. Пока не начинаешь этим заниматься, подсознательно думаешь, что самолёт точно знает где он находится, на какой высоте и с какой скоростью летит. Но начинаешь разбираться, и оказывается, что и высота это очень относительная величина, причём важно относительно чего. И внезапно скорость на PFD это вообще условная величина, которая зависит от высоты. И положение самолёта тоже не всегда точное, а иногда определяется относительно VOR и DME (и это если повезёт). Если не повезёт, то крутись вокруг ненаправленного маяка с секундомером и компасом.


  1. aborigen81
    23.06.2025 08:36

    Почти OFFTOP.
    Оказывается до сих пор и жизненно и актуально:
    "Когда бог наводил порядок на земле - авиация была на вылете, а когда он принялся за небо - все приземлились".


    1. jaelynn23
      23.06.2025 08:36

      ну так на первом соборе цезарь объяснил что теперь богом мужик на палке и это есть [современная] цивилизация называяемая её представителями иудейско-христианский мир но называемый богом потом скажет что это не так за что его опять будут пытаться убить те же авиаторы


  1. almaz1c
    23.06.2025 08:36

    Самолеты вылетают из гейта [выхода на посадку. Здесь и далее — прим. переводчика]

    Для воздушного судна гейт - это стоянка, на которой ВС находится при погрузке.

    Гейт всегда идет первым участком в плане полета.

    Вторым участком в плане полета всегда следует аэродром вылета.

    Третьим участком в плане полета всегда следует ВПП вылета.

    Четвертым участком в плане полета всегда следует стандартный маршрут вылета (SID, Standard Instrument Departure).

    Перелеты начинаются и завершаются в аэропортах

    Причем начать и завершиться полет может в одном и том же аэропорту. Помимо аэропорта посадки в плане полета еще бывает запасной аэропорт посадки.

    Существует 6 видов высоты

    Скорее 3:

    • QNH - абсолютная высота (Altitude)

    • QFE - относительная высота (Height)

    • QNE - эшелон полета (Flight Level)

    Ключевая идея заключается в том, что точное значение высоты важно при взлете и посадке. Непосредственно в полете точность до метра не нужна, достаточно удерживаться в своем эшелоне. Эшелон - диапазон высот величиной от 300 метров, в котором воздушному судну дозволено находиться на основном участке полета.

    Рисунок из учебника "Аэронавигация в международных полетах" (А В Липин).


  1. Mingun
    23.06.2025 08:36

    Большинство предложенного (в отличие от времени) на заблуждения никак не тянут, а скорее на пофигистки написанное приложение с посылом "и так сойдет". Оснований так "заблуждаться" никаких нет


  1. onets
    23.06.2025 08:36

    Ну да, это вам не стартапы на коленке кодить. Пожалуй любая зрелая предметная область обладает некоторым хаосом.