;+ ;PROCEDURE: terminator ; ;PURPOSE: Generates lattitude and longitude arrays for the ; night/day terminator given an input time. ; Values returned are in Geographic coordinates. ; ;KEYWORDS: ; ; TIME The input time in seconds since 1970. ; ;POSITIONAL ;PARAMETERS: ; ; TLAT The name of the array in which to return the ; lattitude values of the terminator. ; TLNG The name of the array in which to return the ; longitude values of the terminator ; ;Created by: J.Rauchleiba 97-25 ;- pro terminator, TIME=time, tlat, tlng ; Create arrays for plotting terminator. tlat=(findgen(61)*6. - 89)/!RADEG ; lattitudes (radians) tlng=fltarr(61) ; longitudes (radians) ; Calc angle between axis and terminator t0=str_to_time('96-12-21/0:00') ang=(time - t0)*2*!PI/(365.25*24.*3600.) tilt = 23.5/!RADEG ; Angle, axis and normal to ecliptic plane alpha = tilt * cos(ang) ; Angle, axis and terminator ; Tilt terminator sohem=where((tlat LE 0) OR (tlat GE !pi)) ; indices of pts in S.hem. tlng = atan( 1. / (tan(tlat)*sin(abs(alpha))) ) ; Tform longitudes, note abs() tlng(sohem) = tlng(sohem) - !pi ; rotate pts in S.hem. if alpha LT 0 then tlng = tlng + !pi ; rotate 180 if alpha (-) ;Tform lattitudes, cos(alpha)=cos(-alpha) tlat = atan( sin(tlat)*cos(alpha) / sqrt( 1. - (sin(tlat)*cos(alpha))^2 ) ) ; Rotate terminator according to time of day if (!VERSION.RELEASE LE '5.4') then begin date_time = str_sep(time_to_str(time), '/') ; split the time string t_hms=str_sep(date_time(1),':') ; time array [hh,mm,ss] endif else begin date_time = strsplit(time_to_str(time), '/', /EXTRACT) ; split the time string t_hms=strsplit(date_time(1),':', /EXTRACT) ; time array [hh,mm,ss] endelse ;noon is degrees that 12pm is offset from Greenwich noon = -(t_hms(0)*3600.+t_hms(1)*60.+t_hms(2))/(24.*3600.)*(2.*!PI) - !PI tlng = tlng + noon rerange, tlng, tlat, /deg return end