Changeset 1770 in lmdz_wrf


Ignore:
Timestamp:
Feb 9, 2018, 6:58:18 PM (7 years ago)
Author:
lfita
Message:

Adding functions to transform from angle <==> Deg, Minute, Second

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tools/generic_tools.py

    r1756 r1770  
    4949
    5050####### Content
     51# angle_DegMinSec: Function to transform an angle to Degrees Minutes Seconds
    5152# ASCII_LaTeX: Function to transform from an ASCII character to LaTeX codification
    5253# ASCII_to: Function to provide the equivalence text to a given lenguage omitting certain characters
     
    7374# DateTimeStr_date: Function to transform a string date-time ([YYYY][MM][DD][HH][MI][SS] format) to a date object
    7475# datetimeStr_datetime: Function to transform a string date-time ([YYYY]-[MM]-[DD]_[HH]:[MI]:[SS] format) to a date object
     76# DegMinSec_angle: Function to transform Degrees Minutes Seconds to an angle
    7577# dictionary_key: Function to provide the first key in a dictionay with a given value
    7678# dictionary_key_list: Function to provide the first key in a dictionary of lists with a given value
     
    1261012612    return values
    1261112613
     12614def angle_DegMinSec(angle):
     12615   """ Function to transform an angle to Degrees Minutes Seconds
     12616     angle= decimal angle to transform
     12617     >>> angle_DegMinSec(3.98765)
     12618     3 59 15.54
     12619     >>> angle_DegMinSec(-23.0025)
     12620     -23 0 9.0                         
     12621   """
     12622   fname = 'angle_DegMinSec'
     12623                                     
     12624   degv = int(abs(angle))
     12625   minv = int((abs(angle) - degv*1.)*60.)
     12626   secv = (abs(angle) - degv*1. - minv/60.)*3600.
     12627                                                 
     12628   if angle < 0.:
     12629       return -degv, minv, secv
     12630   else:
     12631       return degv, minv, secv
     12632
     12633def DegMinSec_angle(degv, minv, secv):
     12634   """ Function to transform Degrees Minutes Seconds to an angle
     12635     degv: value in degrees
     12636     minv: minutes of arc
     12637     secv: seconds of arc
     12638     >>> DegMinSec_angle(-23, 0, 9.0)
     12639     -23.0025
     12640   """
     12641   fname = 'DegMinSec_angle'
     12642                                     
     12643   angle = np.abs(degv) + np.abs(minv)/60. + np.abs(secv)/3600.
     12644                                                 
     12645   if degv < 0.:
     12646       return -angle
     12647   else:
     12648       return angle
     12649
     12650d, m, s = angle_DegMinSec(-23.0025)
     12651print d, m, s
     12652print DegMinSec_angle(d,m,s)
     12653
    1261212654#quit()
    1261312655
    12614 
Note: See TracChangeset for help on using the changeset viewer.