;+ ; PROCEDURE aacgmconvcoord ; ; :PURPOSE: ; A wrapper procedure to choose AACGM DLM or IDL-native routines ; to convert (lat,lon) between Geographic coordinates and AACGM. ; ; The wrapper procedures/functions check !sdarn.aacgm_dlm_exists ; (if not defined, then define it by sd_init) to select appropriate ; AACGM routines (DLM, or IDL native ones attached to TDAS). ; ; :Params: ; glat, glon: Geographic latitude and longitude. ; mlat, mlon: AACGM latitude and longitude. ; alt: Altitude for conversion. ; err: Error status of coordinate transformation. ; ; :Keywords: ; TO_AACGM: Set to convert from geographic to AACGM coordinates. ; TO_GEO: Set to convert from AACGM to geographic coordinates. ; ; :Examples: ; aacgmconvcoord, glat,glon,alt, mlat,mlon,err, /TO_AACGM ; aacgmconvcoord, mlat,mlon,alt, glat,glon,err, /TO_GEO ; ; :AUTHOR: ; Tomo Hori (E-mail: horit@stelab.nagoya-u.ac.jp) ; ; :HISTORY: ; 2011/10/04: created and got through the initial bug fixes ; ; $LastChangedBy: lphilpott $ ; $LastChangedDate: 2011-10-14 09:20:31 -0700 (Fri, 14 Oct 2011) $ ; $LastChangedRevision: 9113 $ ; $URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/thmsoc/trunk/idl/erg/ground/radar/superdarn/sdaacgmlib/aacgmconvcoord.pro $ ;- pro aacgmconvcoord, glat,glon,alt,mlat,mlon,err, TO_AACGM=TO_AACGM, TO_GEO=TO_GEO ;Initialize !sdarn if not defined help, name='!sdarn',out=out if out eq '' then sd_init glon = (glon + 360.) mod 360. if !sdarn.aacgm_dlm_exists then begin ;print, 'using AACGM_DLM' aacgm_conv_coord, glat,glon,alt,mlat,mlon,err,$ TO_AACGM=TO_AACGM, TO_GEO=TO_GEO endif else begin mlat=glat & mlon=glon mlat[*]=0. & mlon[*]=0. err = fix(glat) & err[*] = 0 for i=0L, n_elements(glat)-1 do begin cnv_aacgm,glat[i],glon[i],alt[i],tmlat,tmlon,r,terr,geo=TO_GEO mlat[i]=tmlat & mlon[i]=tmlon & err[i] = fix(terr) ;print, 'cnv_aacgm was executed' ;print, glat[i],glon[i],alt[i],' ',mlat[i],mlon[i],r,err endfor endelse mlon = (mlon + 360.) mod 360. return end