Расчёт скорости
MyPigeons рассчитывает скорость каждого прилёта из одних и тех же составляющих: расстояние, время полёта, отклонения часов, мёртвое время и переключатель критически низкой скорости, который при замедлении голубей переводит сортировку на время прилёта. На этой странице описан каждый входной параметр, порядок их применения и пограничные случаи, усложняющие многодневные соревнования.
Полезно знать, прежде чем вы начнете
- Скорость по умолчанию выводится в м/мин, а в имперских странах - в y/min. Точность регулируется глобальной настройкой число знаков после запятой скорости.
- Мёртвое время можно настроить в масштабах всей страны или переопределить на отдельном соревновании. Переопределение по соревнованию всегда имеет приоритет.
- Голубь, летящий медленнее критически низкой скорости (по умолчанию 750 м/мин), при включённой опции на соревновании ранжируется по времени прилёта, а не по скорости.
Базовая формула скорости
Все скорости в системе используют одну формулу:
скорость = расстояние × 60 / время полёта, где расстояние выражено в метрах (или ярдах для имперских стран), а время полёта - в секундах.
Конвертация единиц расстояния
Единицей управляет настройка система единиц скорости. Метрические страны хранят расстояние в километрах и переводят его в метры (× 1000). Имперские страны хранят расстояние в милях и переводят в ярды (× 1760). Бангладеш - намеренный гибрид: расстояние хранится в километрах, но скорости отчитываются в y/min, поэтому расстояние умножается на 1093,6133.
Точность и проверки разумности
Итоговая скорость округляется до настроенного числа знаков. В конце срабатывают две защиты: время полёта ноль или меньше обнуляет скорость до 0, и любая скорость выше 10 000 также обнуляется (обычно из-за отклонения часов в неверном направлении или прилёта, введённого до выпуска).
Время полёта подробно
Время полёта - это не просто прилёт - выпуск. Это результат четырёх шагов, применяемых в таком порядке:
Вычисление абсолютной метки времени прилёта
Метка времени прилёта вычисляется как количество секунд, прошедших с момента выпуска:
выпуск + (день прилёта - 1) × 86400 + ч × 3600 + м × 60 + с. Это позволяет избежать проблем с переходами на летнее время между странами - подсчётом секунд от выпуска вместо восстановления календарной даты результат остаётся корректным даже когда выпуск и прилёт оказываются по разные стороны перевода часов.Вычитание отклонения часов или относительного отклонения
Если включено относительное отклонение, используется относительное отклонение; иначе используется сырое отклонение часов. Обработка знака зависит от двух переключателей. Использовать положительное отклонение всегда инвертирует знак - полезно в странах, где положительное отклонение является неблагоприятным направлением. Использовать отрицательное отклонение применяет отклонение, только если оно отрицательное; положительные отклонения обнуляются, что является поведением по умолчанию у большинства федераций. Полная механика относительного отклонения описана в собственном разделе ниже.
Вычитание велосипедного времени
Если голубевод регистрирует велосипедное время - время на перевозку часов из голубятни в клуб для считывания - оно вычитается из времени полёта, чтобы учитывалось именно время констатации, а не время транспортировки.
Вычитание мёртвого времени
Вычет мёртвого времени - наиболее сложный шаг и описан в собственном разделе ниже.
Относительное отклонение подробно
Некоторые федерации распределяют отклонение часов пропорционально по окну работы часов вместо применения полного отклонения к каждому прилёту. Именно это делает относительное отклонение. При включении калькулятор использует относительное отклонение вместо сырого отклонения часов при вычислении времени полёта.
Окно работы часов: время открытия и закрытия
При обработке импортного файла система сохраняет на соревнование две метки времени, ограничивающие окно работы часов:
- Время открытия - когда часы были установлены и запущены в клубе, перед погрузкой в корзину.
- Время закрытия - когда часы были остановлены и считаны после соревнования.
Обе метки находятся в одной таблице и хранятся на двух уровнях.
Запись на уровне клуба
Одна запись на клуб и соревнование, содержащая открытие и закрытие, применяемые по умолчанию к каждому члену клуба. Это самый частый случай - весь клуб закладывал и считывал часы вместе, поэтому одна пара открытие/закрытие охватывает всех членов.
Переопределение для отдельного голубевода
Некоторые федерации также импортируют метки открытия (и опционально закрытия) на уровне голубевода. Эти записи переопределяют клубные значения для конкретного голубевода. Переопределение частичное: запись только с открытием заменяет лишь открытие и наследует клубное закрытие, тогда как запись, заполняющая и закрытие, заменяет оба.
Когда существует запись голубевода, окно начинается с его открытия. Конец окна берётся из его записи, если она содержит время закрытия; иначе используется закрытие из записи клуба.
Как вычисляется относительное отклонение
Формула состоит из трёх частей:
время_работы = открытие - закрытие- общее число секунд, в течение которых работали часы.время_работы_к_прилёту = прилёт - закрытие- где прилёт находится внутри этого окна.относительное_отклонение = (время_работы_к_прилёту / время_работы) × отклонение_часов- доля отклонения часов, применяемая к этому прилёту, пропорциональная тому, сколько окна работы прошло к моменту прилёта.
Конкретно: прилёт в самом начале окна работы вносит 0 отклонения; прилёт в самом конце получает полное отклонение часов; прилёт в середине - половину. Результат округляется до четырёх знаков после запятой и возвращается в формулу времени полёта.
Когда относительное отклонение пропускается
Два случая полностью пропускают расчёт и возвращают 0. Во-первых: когда в конфигурации страны выключена настройка использовать относительное отклонение. Во-вторых: когда для соревнования отсутствует и клубная, и голубеводная запись - обычно потому, что импортный файл не содержал времён открытия/закрытия. В обоих случаях калькулятор скорости откатывается к сырому отклонению часов.
Обработка знака и переключатели положительный/отрицательный
Отклонение часов - это число со знаком, но федерации не сходятся в том, какой знак что означает. То, как MyPigeons это интерпретирует, регулируется двумя общенациональными переключателями.
Использовать отрицательное отклонение управляет знаком при вводе. Включён (по умолчанию) - отклонение сохраняется ровно так, как было введено. Выключен - положительные числа, введённые пользователем, при сохранении переворачиваются в отрицательные. Полезно для федераций, которые сообщают отклонения положительными числами, но трактуют их как штраф.
Использовать положительное отклонение инвертирует знак в момент, когда отклонение попадает в формулу скорости. Выключен (по умолчанию) - сохранённое значение идёт в формулу как есть; включён - оно сначала умножается на -1. Полезно, когда трактовка знака в вашей федерации противоположна стандартному поведению MyPigeons.
Оба переключателя - общенациональные настройки; как только они согласованы с правилами вашей федерации, их не нужно менять для каждого соревнования. Они действуют на тот тип отклонения, который используется в данный момент - если включено относительное отклонение, те же правила знака применяются к относительному отклонению, а не к сырому значению часов.
Откуда берутся времена открытия и закрытия
Времена открытия и закрытия заполняются из импортного файла в момент загрузки данных соревнования. Большинство ETS-экспортов несут оба времени для клуба; федерации, работающие с переопределением на уровне голубевода, прилагают и записи голубевода. Записи также можно редактировать с экрана времён часов, если перед пересчётом нужно вручную исправить опечатку или дополнить недостающее значение.
Зоны мёртвого времени
Зона мёртвого времени - это повторяющееся ночное окно, в течение которого голуби не летают. Система удаляет это окно из времени полёта, чтобы многодневный прилёт не наказывался за часы, когда ни один голубь физически не мог быть в воздухе.
У зоны мёртвого времени есть диапазон дат (на какие недели сезона она распространяется) и диапазон часа суток (ночное окно, например 21:00 - 05:00). Вычитаемая длительность - это полный день плюс разница между двумя временами, поэтому окно 21:00 - 05:00 даёт 32 часа за ночь, так как окно пересекает полночь.
Два способа настройки мёртвого времени
Мёртвое время можно задать в двух местах. При расчёте скорости они читаются в фиксированном порядке.
Глобальное мёртвое время (общенациональное)
Настраивается в Админ-панель → Зоны мёртвого времени. Можно создать столько интервалов, сколько требует сезон - обычно более короткое ночное окно для летних соревнований (например 22:00 - 04:00) и более длинное для марафонских недель (например 21:00 - 05:30). У каждого интервала свой диапазон дат сезона, поэтому они могут покрывать разные части года без перекрытия. Форма не позволит сохранить интервал, который перекрывается с существующей записью.
Переопределение по соревнованию
Настраивается прямо во вкладке администратора соревнования как разовое переопределение для одного соревнования. Используйте, когда у конкретного соревнования нетипичные требования к мёртвому времени - например, дальнобойный полёт, в котором окно мёртвого времени должно быть удлинено только для этого соревнования. Переопределение хранит лишь диапазон часа суток; неявно применяется ко всем дням, которые покрывает соревнование.
Что побеждает
Калькулятор скорости ищет оба, в таком порядке:
Найти глобальную зону
Глобальный поиск выполняется относительно момента выпуска соревнования. Загружается тот глобальный интервал, который покрывает момент выпуска - время начала, время окончания и ночная длительность. Совпадение по дате; диапазон часа суток используется позже для вычета мёртвого времени, а не для фильтрации поиска.
Применить переопределение по соревнованию
Если существует переопределение по соревнованию, его значения перезаписывают всё, что загрузил глобальный поиск - переопределение всегда побеждает по всем трём полям (начало, конец, длительность). Если глобальное совпадение не найдено, но переопределение существует, оно используется само по себе.
Нет совпадения - нет вычета
Если ни один из вариантов не даёт результата, мёртвое время равно нулю, а время полёта остаётся нетронутым.
Многодневные соревнования и пересекающиеся зоны
Большая часть сложности с мёртвым временем проявляется только при прилётах, длящихся более одного дня. Происходящим управляют два правила.
Сколько ночей вычитается
После того как соответствующая зона известна, её ночная длительность умножается на число календарных дней между выпуском и прилётом. Голубь, прилетевший на два дня позже, теряет две полные ночи мёртвого времени; прилетевший в тот же день - ни одной. Число дней считается по календарной дате, а не по прошедшим секундам, поэтому полёт с пятничного дня до воскресного утра считается за два дня вне зависимости от точных часов.
Прилёты, попадающие внутрь окна мёртвого времени
Если время прилёта по часам суток приходится между началом и концом мёртвого времени, перед вычитанием калькулятор переносит прилёт к концу окна. Два случая обрабатываются симметрично:
Прилёт до полуночи, внутри окна
Пример: окно 21:00 - 05:00, голубь прилетает в 22:30. Прилёт сдвигается на 05:00 следующего утра - прибавляется время от прилёта до полуночи, затем от полуночи до конца окна.
Прилёт после полуночи, ещё внутри окна
Пример: то же окно 21:00 - 05:00, голубь прилетает в 03:00. Прилёт сдвигается на 05:00 того же дня. Оба случая ставят прилёт на конец мёртвого времени, поэтому вычитание остаётся симметричным.
Важное замечание: используется только зона дня выпуска
Глобальный поиск выполняется только один раз, относительно момента выпуска соревнования. Если ваша страна определяет разные интервалы мёртвого времени для разных частей сезона и полёт одного соревнования охватывает два из них, интервал дня выпуска используется для каждой следующей ночи - система не склеивает конфигурации между разными днями. Планируйте общенациональные интервалы так, чтобы любое соревнование умещалось в один интервал.
Для разового соревнования, которому действительно нужно мёртвое время, отличное от глобальной настройки (например, марафонский полёт, где стандартного ночного окна не хватает), задайте переопределение во вкладке администратора соревнования. Переопределение заменяет все три значения (начало, конец, длительность) только для этого соревнования и является самым чистым решением.
Критически низкая скорость (по умолчанию 750 м/мин)
Когда голуби останавливаются по пути - сильная жара, встречный ветер, стая, осевшая на ночь - скорости падают ниже уровня, при котором расстояние от голубятни до голубятни ещё даёт осмысленный порядок. Оценка только по скорости несправедливо благоприятствовала бы голубятням ближнего полёта, потому что при одинаковом времени полёта более короткое расстояние всегда даёт большую скорость. Именно это решает переключатель критически низкой скорости.
Как настраивается порог
Им управляют две настройки. Критически низкая скорость задаёт сам порог - по умолчанию 750, в м/мин для метрических систем и y/min для имперских. Главный переключатель использовать критически низкую скорость делает функцию доступной в интерфейсе соревнования.
Как соревнование подключается
У каждого соревнования в модальном окне деталей есть два переключателя:
Сортировать по времени прилёта при скорости ниже порога
Когда этот переключатель включён, голуби со скоростью ниже порога пишутся во временные результаты с их скорректированной меткой времени прилёта вместо скорости - таблица тогда сортируется по тому, кто прилетел первым, а не по тому, кто летел быстрее на более коротком расстоянии. Голуби выше порога не затрагиваются; для них остаётся в силе сортировка по скорости. Обе системы ранжирования сосуществуют в рамках одного соревнования.
Применить коррекцию средней дистанции
Этот переключатель применяет коррекцию австрийского типа: время прилёта каждой голубятни смещается на 8 секунд за каждые 100 м разницы относительно средней дистанции соревнования. Голубятни, расположенные дальше от места выпуска, получают положительный сдвиг (их прилёт считается более ранним), более близкие - отрицательный сдвиг. Так компенсируются различия в дистанции без отказа от ранжирования по времени.
Откуда берётся средняя дистанция
Средняя дистанция соревнования рассчитывается по дистанциям голубятен отдельных голубеводов, а не по дистанциям отдельных голубей. Каждый голубевод вносит свою голубятню один раз, независимо от того, сколько голубей он уложил - так одна крупная голубятня не может исказить среднее.
Когда скорости пересчитываются
Скорость рассчитывается всякий раз, когда меняется любой вход формулы. Самые частые точки входа:
- Новый прилёт - импортированный из ETS-файла или введённый вручную - запускает расчёт скорости для одного прилёта.
- Массовые правки на соревновании (отклонение часов, дистанция, мёртвое время) пересчитывают каждый прилёт соревнования.
- Пересчёт на уровне соревнования проходит по каждому прилёту соревнования - официальным прилётам, текущим временным результатам и публично заявленным прилётам. Если включено относительное отклонение, перед пересчётом скорости для каждого голубевода также заново выводится относительное отклонение из записей о времени часов.
- Прилёты BENZING Live - и при частных тренировках, и при общеклубных тренировках скорость пересчитывается при каждом новом прилёте, который сообщает live-устройство.
- Forwarding API - сторонние инструменты, передающие прилёты через публичный API, проходят по тому же пути расчёта.
- Тренировочный режим использует отдельную, более простую формулу, полностью игнорирующую отклонения, мёртвое время и велосипедное время. Применяется для личных тренировочных записей, которые никогда не смешиваются с результатами соревнований.
Пограничные случаи, которые стоит знать
Переходы на летнее время
Метки времени прилёта рассчитываются как секунды, прошедшие с момента выпуска, а не из восстановленной календарной даты. Это делает расчёт устойчивым к переводам часов между выпуском и прилётом, даже когда соревнование охватывает несколько стран.
Часовой пояс организации
Когда настройка часового пояса включена и у организации соревнования настроен свой часовой пояс, этот пояс используется во всех сравнениях времени суток мёртвого времени. Федерация с офисами в двух странах получает таким образом согласованные результаты - окно мёртвого времени интерпретируется в местном времени организации.
Имперские и бангладешские единицы
Имперские соревнования хранят дистанцию в милях и перед расчётом скорости переводят её в ярды (× 1760); единицей скорости становится y/min. Бангладеш работает с метрической дистанцией (км), но отчитывается в y/min, поэтому при сочетании метрической системы и обозначения y/min дистанция умножается на 1093,6133 вместо 1000.
Потолок разумности
Любая рассчитанная скорость выше 10 000 обнуляется до 0. Это защита от ошибочных данных - обычно отклонение часов в неверном направлении или прилёт, введённый до выпуска.