Вывод угла солнечного азимута

Я пытался опубликовать это на бирже математического стека, но безрезультатно, поэтому я подумал, что, может быть, это более актуально здесь:

Я знаю, что подобный вопрос уже публиковался здесь, но в следующем посте нет ссылок на какие-либо математические выводы. Я также не смог получить доступ к цитатам на странице вики.

Как рассчитать азимут солнца на основе зенита, часового угла, склонения и широты?

Недавно я пытался определить положение Солнца на небе с учетом широты, времени года и времени суток.

Я использовал следующие определения:

ф : Я использовал это для обозначения угла широты, согласно соглашению

т : Я использовал это для обозначения угла года, завершенного с летнего солнцестояния.

θ : Я использовал это для обозначения угла дня, завершенного после солнечного полудня.

Ом : Я использовал это для обозначения зенитного угла Солнца.

Г : Я использовал это для обозначения азимута Солнца по часовой стрелке от точного севера.

к : Я использовал это для обозначения угла 66,56 градусов между осью Земли и плоскостью вращения.

λ : Я использовал это для обозначения угла между осью Земли и вектором в направлении солнца, это дополняет более часто используемый угол склонения. дельта

Моя цель состояла в том, чтобы получить функцию ф ( ф , т , к , θ ) "=" Ом , Г

Мне удалось (с некоторой помощью) вывести следующие формулы:

потому что ( λ ) "=" потому что ( т ) * потому что ( к )

потому что ( Ом ) "=" потому что ( λ ) * грех ( ф ) + потому что ( ф ) * грех ( λ ) * потому что ( θ )

Однако мне не удалось вывести формулу, приведенную на следующей странице Википедии для Г "=" ф ( θ , λ , Ом ) которые я переписал в свои переменные ниже:

https://en.wikipedia.org/wiki/Solar_azimuth_angle

грех ( Г ) "=" ( грех ( θ ) * грех ( λ ) ) грех ( Ом )

Я думаю, чтобы получить это, мне нужно преобразовать в местную систему координат с севером по оси y, строго на восток по оси x и зенитом по оси z.

Может ли кто-нибудь помочь мне продолжить?

Не совсем понятно, в чем заключается ваш вопрос, но похоже, что вам нужен вывод уравнения, а не только само уравнение? Если да, то это примерно серия вращений. Например, вращение вокруг оси x в зависимости от широты наблюдателя, другое — вокруг оси y для определения долготы. Другой вокруг оси y для угла вращения Земли и, наконец, вращение вокруг оси y для наклона эклиптики. Процесс подробно описан в «Вычислительной сферической астрономии» Лоуренса Таффа.

Ответы (3)

Сначала мы настроим нашу глобальную систему координат следующим образом:

Происхождение: центр Земли. г : земная ось (Северный полюс - положительное направление), Икс и у представить экваториальную плоскость с Икс указывает на место полудня.

Единичный вектор солнца С "=" ( грех λ , 0 , потому что λ ) . Единичный вектор местного зенита равен Z "=" ( потому что ф потому что θ , потому что ф грех θ , грех ф ) . Единичный вектор местного Востока равен Е "=" ( грех θ , потому что θ , 0 ) .

Чтобы вычислить угол азимута, нам нужно сначала спроецировать С на местную плоскость Восток-Север: п "=" С потому что Ом   Z "=" ( грех λ потому что Ом потому что ф потому что θ , потому что Ом потому что ф грех θ , потому что λ потому что Ом грех ф ) .

Затем вычислите скалярное произведение проекции и единичного вектора местного Востока, п Е "=" ( грех λ потому что Ом потому что ф потому что θ ) ( грех θ ) + ( потому что Ом потому что ф грех θ потому что θ ) "=" грех θ грех λ .

Окончательно, потому что п , Е "=" ( п Е ) / | п | "=" грех θ грех λ / грех Ом .

Спасибо! На самом деле я потратил некоторое время на воссоздание доказательства, и вот как я это сделал.

Посмотрите https://www.pveducation.org , в частности, раздел 2.4 о земном солнечном излучении. Он описывает необходимые уравнения и имеет несколько онлайн-калькуляторов и интерактивных графиков.

Если вы хотите рассчитать в своем собственном коде, я бы порекомендовал пакет Python pysolar: https://pysolar.readthedocs.io/en/latest/ . Он имеет методы для определения широты, долготы и времени суток для расчета азимута и высоты Солнца.

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

То, что я думаю, вы пытаетесь сделать, работоспособно, но приблизительно. Сначала вы определяете географическое положение Солнца (GP), точку на Земле, где Солнце находится в зените во время наблюдения. Вы начинаете с нахождения широты GP Солнца (его склонения). Это примерно 23 градуса, умноженное на синус ((дней с весеннего равноденствия) умножить на 360/365). Затем вы находите его долготу как ((часы после местного кажущегося полудня), умноженные на (15 градусов) + западная долгота наблюдателя). У вас будет три точки, вершины сферического треугольника: положение наблюдателя, ВП Солнца и северный полюс. Угол на полюсе – это разница между долготами ВП Солнца и наблюдателя. Стороны между полюсом и двумя другими точками равны 90 градусам минус их широта. Все это' s, необходимое для решения сферического треугольника, — это длина дуги двух сторон и угол между ними. Используя закон косинусов для сферических треугольников, найдите расстояние по дуге между наблюдателем и ВП Солнца. Высота солнца будет 90 градусов минус это число. Найдите угол при наблюдателе, используя закон синусов для сферических треугольников. Это будет азимут Солнца.

Просто для ясности, под Северным полюсом вы имеете в виду фактический Северный полюс Земли, верно?
Да. Южный полюс тоже подойдет.
К сожалению, у меня нет понимания сферической геометрии, хотя я смог решить ее с помощью векторов.
В сферической тригонометрии мало что нужно понимать. Для большинства задач есть только два уравнения. Существуют онлайн-калькуляторы, которые сразу же вернут третью сторону и два других угла, если заданы две стороны и прилежащий к ним угол. Единственная сложность заключается в том, что ответы получаются из обратных тригонометрических функций независимо от того, как вы выполняете вычисления, и дают вам один из двух возможных ответов. Вам нужно вычислить другой ответ и решить, какой из них правильный. Ваши выражения для азимута и зенитного угла также имеют эту проблему, вы, наверное, знаете.
Хотя Википедия, как правило, не самое подходящее место для изучения новой математики, en.wikipedia.org/wiki/Spherical_trigonometry не так уж и плоха, если вы уже знакомы с триггером плоскости и векторами.
Да какой из двух ракурсов выбрать можно определить по интуиции, вроде азимут больше 180 после полудня. Я также загляну на страницу Википедии, спасибо