;+ ; NAME: ; smei_frm_eclipse ; PURPOSE: ; Eclipse calculations ; CATEGORY: ; smei_frm_eclipse, hdr, /may2003 ; CALLING SEQUENCE: PRO smei_frm_eclipse, hdr, may2003=may2003, nov2003=nov2003, jun2003=jun2003, $ apr2004=apr2004, oct2004=oct2004, apr2005=apr2005, mar2006=mar2006, $ earth=earth, orbit=orbit, loc=loc, runit=runit, area=area, camera=camera, _extra=_extra ; INPUTS: ; hdr array; type: structure ; headers of SMEI frames returned from a ; previous call. If hdr exists than the ; optional input parameters are ignored. ; OPTIONAL INPUT PARAMETERS: ; /may2003, orbit=0 for eclipse on 31 May 2003 04:13 ; /may2003, orbit=-1 for eclipse on 31 May 2003 02:42 ; /nov2003 for eclipse on 23 Nov 2003 22:53 ; /apr2004 for eclipse on 19 Apr 2004 15:24 ; ; /apr2005 for eclipse on 08 Apr 2005 20:35 ; /mar2006 for eclipse on 29 Mar 2006 10:10 ; ; /jun2003 Coriolis in Earth shadow from 13:58:19 until 14:14:51 ; ; OUTPUTS: ; (Plot to screen) ; ; hdr array; type: structure ; headers of all SMEI frames processed ; This can be used as input for subsequent ; call to to bypass rereading of the frames. ; OPTIONAL OUTPUT PARAMETERS: ; loc=loc output from smei_frm_where ; runit=runit output from smei_frm_where ; area=area output from eclipsed_area ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; IsType, InitVar, TimeSet, jpl_body, smei_frm_where ; smei_property, eclipsed_area, TimeLimits ; PROCEDURE: ; MODIFICATION HISTORY: ; OCT-2004, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ;- InitVar, camera, 3 InitVar, earth , 0 CASE 1 OF ; Eclipse by Earth (i.e. in Earth shadow) IsType(jun2003,/defined): BEGIN ;InitVar, hdr, TimeSet(yr=2003, mon='jun', day=21, hr=[13,14], min=[42,24], sec=[0,0]) InitVar, hdr, TimeSet(yr=2003, mon='jun', day=21, hr=[12,14], min=[42,23], sec=[0,37]); 1 orbit earth = 1 END ; Eclipse by Moon IsType(may2003,/defined): BEGIN InitVar, orbit, 0 CASE orbit OF 0 : InitVar, hdr, TimeSet(yr=2003, mon='may', day=31, hr=4, min=13, sec=20+[-500,500]) ELSE: InitVar, hdr, TimeSet(yr=2003, mon='may', day=31, hr=2, min=42, sec= 3+[-500,500]) ENDCASE END IsType(apr2004,/defined): InitVar, hdr, TimeSet(yr=2004, mon='apr', day=19, hr=15, min=25, sec=0+[-600,600]) IsType(nov2003,/defined): InitVar, hdr, TimeSet(yr=2003, mon='nov', day=23, hr=22, min=53, sec=0+[-600,600]) IsType(oct2004,/defined): BEGIN InitVar, orbit, 0 CASE orbit OF -1: InitVar, hdr, TimeSet(yr=2004, mon='oct', day=14, hr=1, min= 1, sec=30+[-600,600]) 0: InitVar, hdr, TimeSet(yr=2004, mon='oct', day=14, hr=2, min=33, sec= 0+[-600,600]) 1: InitVar, hdr, TimeSet(yr=2004, mon='oct', day=14, hr=4, min= 3, sec= 0+[-600,600]) ENDCASE END IsType(apr2005,/defined): BEGIN InitVar, orbit, 0 CASE orbit OF -1: InitVar, hdr, TimeSet(yr=2005, mon='apr', day=8, hr=19, min=13, sec=35+[-600,600]) 0: InitVar, hdr, TimeSet(yr=2005, mon='apr', day=8, hr=21, min=31, sec=27+[-250,250]) 1: InitVar, hdr, TimeSet(yr=2005, mon='apr', day=8, hr=23, min=16, sec=35+[-400,400]) ENDCASE ENDCASE IsType(mar2006,/defined): BEGIN InitVar, orbit, 0 CASE orbit OF -1: InitVar, hdr, TimeSet(yr=2006, mon='mar', day=29, hr=9, min=4, sec=15+[-360,420]) 0: InitVar, hdr, TimeSet(yr=2006, mon='mar', day=29,hr=[8,12],min=[50,10]) 1: InitVar, hdr, TimeSet(yr=2006, mon='mar', day=29, hr=11, min=52, sec=45+[-480,480]) ENDCASE END ELSE: InitVar, hdr, TimeSet(yr=2003, mon='may', day=31, hr=4, min=13, sec=20+[-500,500]) ENDCASE smei_frm_where, hdr, jpl_list=[jpl_body(/sun),jpl_body(/moon)*(1-earth)+jpl_body(/earth)*earth], $ /spacecraft, /all, loc=loc, runit=runit, camera=camera, show=-1*earth, _extra=_extra, $ delta_rot=delta_rot,height=height ut = smei_property(hdr,/time) ;plotcurve, ut, delta_rot[3,*], /ynozero, xmargin=[3,10] ;plotcurve, ut, delta_rot[0,*], /ynozero, /newyaxis, /oplot, yaxis=0, yrange=[-1,1] ;plotcurve, ut, delta_rot[1,*], /ynozero, /newyaxis, /oplot, yaxis=0, yrange=[-1,1] ;plotcurve, ut, delta_rot[2,*], /ynozero, /newyaxis, /oplot, yaxis=0, yrange=[-1,1] ;plotcurve, ut, height, /ynozero, /newyaxis, /oplot, yaxis=0 ;return CASE IsType(loc, /defined) OF 0: message, /info, 'Sun and Moon not close enough to field of view' 1: BEGIN area = eclipsed_area(loc, ut=ut, /plot, earth=earth, _extra=_extra) i = where(area NE 0) IF i[0] NE -1 THEN message, /info, 'eclipse from '+ $ strjoin(TimeGet(TimeLimits(ut,/bounds),/ymd,upto=TimeUnit(/sec)),' to ') END ENDCASE RETURN & END