перевод U и V в величину и угол

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
XdenisX
Участник
Сообщения: 57
Зарегистрирован: 25 янв 2009, 16:34
Репутация: 0

перевод U и V в величину и угол

Сообщение XdenisX » 19 июн 2010, 00:15

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

Код: Выделить всё

def rect(u, v, deg=1): # radian if deg=0; degree if deg=1
  from math import cos, sin, pi, sqrt , tan, atan, fabs
  w=999.
  alpha=999.

  if (deg and u<>0 and v<>0): 
    w = sqrt(u*u+v*v)
    if (u>0) and (v>0):
      alpha = atan(v/u)
    if (v<0) and (u>0):
      alpha = 2*pi - fabs(atan(v/u))
    if (v<0) and (u<0):
      alpha = pi + fabs(atan(v/u))
    if (v>0) and (u<0):
      alpha = pi - fabs(atan(v/u))
    #Convert rad to grad
    alpha = alpha * 180./pi
    
  if (u==0 and v==0) and deg:
    w = 0.
    alpha = 0.
  if (u==0 and v>0) and deg:
    w = v
    alpha = 90.
  if (v==0 and u>0) and deg:
    w = u
    alpha = 0.
  if (u==0 and v<0) and deg:
    w = fabs(v)
    alpha = 270.
  if (v==0 and u<0) and deg:
    w = fabs(u)
    alpha = 180.
  return w, alpha

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость