Python Арксин Арккос, радиан и градус - PullRequest
0 голосов
/ 01 апреля 2020

Я работаю над мощностью и скоростью ветра

u и v - зональный и меридиональный ветер. (У меня есть значения этих двух векторов)

Скорость ветра рассчитывается как V = np.sqrt(u2*v2)

Направление ветра определяется как α между 0 и 360 degree

Я знаю, что это соотношение содержит - u / V = sin( abs(α)) и - v / V = cos( abs(α))

В python Я использую np.arccos и np.arcsin, чтобы попытаться найти α между 0 и 360 с уравнением 2 выше. Для первого он возвращает радиан, поэтому я конвертирую с np.rad2deg(...), но он дает мне значение между 0 и 180 degree для второго, я также пытаюсь конвертировать, но он возвращает мне значение между 0 и 90.

Кто-нибудь знает, как его кодировать? Я потерялся: (

1 Ответ

0 голосов
/ 01 апреля 2020

Основной проблемой является математика: cos (-x) == cos (x), поэтому функция acos имеет только значения в интервале [0, pi]. И по эквивалентным причинам asin имеет значения в [-pi / 2, pi / 2] единице.

Но разработчики библиотеки trigonometri c знают об этом и предоставляют специальную функцию (atan2), которая использует обе координаты (а не отношение), чтобы задать значение в интервале [-pi, pi].

При этом будьте осторожны при обработке значений ветра. Ветер 360 - это ветер с севера, а 90 - ветер с востока. Это не то, как математики считают углы ...

...