Как рассчитать количество ночного времени в полете?

Меня попросили найти способ рассчитать количество времени, которое занимает полет в ночное время.

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

Я просто прошу совета, как решить эту проблему.

PS: расчет не обязательно должен быть очень точным, и оценки более чем достаточно. Мы просто ищем самое простое решение для получения приемлемого результата.

Не может быть точного решения без знания скорости как функции времени и точного маршрута полета. Если вначале самолет летит очень быстро, а потом медленно, или наоборот, он будет двигаться в тот момент, когда вы встретите закат (или восход), так что желаемое время зависит от этого.

Ответы (2)

Ответ на этот вопрос включает довольно много сферической тригонометрии . Вызов ( λ 1 , ф 1 ) долгота и широта места отправления и ( λ 2 , ф 2 ) координаты пункта назначения. Предположим, что самолет движется по большому кругу. Тогда он пройдет полный угол θ , заданный

потому что θ "=" грех ф 1 грех ф 2 + потому что ф 1 потому что ф 2 потому что ( λ 2 λ 1 ) .
Если θ выражается в радианах, тогда соответствующее расстояние равно Д "=" θ р , с р радиус Земли. Предположим, что общее время полета равно Т , и что самолет летит с постоянной скоростью. Если т время с момента взлета, то
θ 1 "=" θ т / Т , θ 2 "=" θ θ 1 ,
где θ 1 угол, на который проходит самолет за время т , пока θ 2 это угол, который еще должен пройти самолет. Вовремя т , тогда плоскость окажется над локацией ( λ , ф ) , заданный
потому что θ 1 "=" грех ф 1 грех ф + потому что ф 1 потому что ф потому что ( λ λ 1 ) , потому что θ 2 "=" грех ф 2 грех ф + потому что ф 2 потому что ф потому что ( λ λ 2 ) ,
из которого ( λ ( т ) , ф ( т ) ) можно получить (после некоторых утомительных вычислений).

Если мы знаем Грин, что означает солнечное время т 0 в момент отправления, то можно получить часовой угол ЧАС ( т ) Солнца в ( λ ( т ) , ф ( т ) ) :

ЧАС ( т ) + 12 час "=" т 0 + т + λ ( т ) (по модулю  24 час ) ,
где все переменные выражены в часах, минутах и ​​секундах (и 360 соответствует 24 час ). Нам также нужно знать склонение Солнца. дельта во время полета (поэтому нам нужно знать дату).

Высота Солнца а ( т ) над местным горизонтом тогда

грех а ( т ) "=" грех ф ( т ) грех дельта + потому что ф ( т ) потому что дельта потому что ЧАС ( т )
(см. вики-страницу о небесных координатах ). Закат и восход соответствуют а "=" 0 на земле (без учета атмосферной рефракции). Используя простую тригонометрию, легко показать, что с точки зрения самолета на высоте час , закат и восход солнца произойдут, когда
а "=" потому что 1 ( р / ( р + час ) ) .

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

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