diff --git a/solo_get_pointing.pro b/solo_get_pointing.pro index cb0d63e513155c18126ac3f005bd4e11a89ce08c..ab7c1c0dcb2b9759db41de710e96655ad6f50e6f 100644 --- a/solo_get_pointing.pro +++ b/solo_get_pointing.pro @@ -1,4 +1,4 @@ -function solo_get_pointing, utc, degrees = degrees, arcsec = arcsec +function solo_get_pointing, utc, degrees = degrees, arcsec = arcsec, celestial = celestial ; convert the requested date into ephemeris time @@ -20,21 +20,18 @@ function solo_get_pointing, utc, degrees = degrees, arcsec = arcsec ; make the conversion form rtn to hpc, if necessary - if frame eq 'SOLO_SUN_RTN' then begin - yaw = !dpi * signum(yaw) - yaw - pitch = -pitch - roll = -roll - endif else begin - pitch = -pitch - endelse - + if frame eq 'SOLO_SUN_RTN' then yaw = !dpi * signum(yaw) - yaw + + pitch = -pitch + roll = -roll + ; correct any cases where the roll is greater than +/- 180 degrees if abs(roll) gt !dpi then roll = roll - 2. * !dpi * signum(roll) ; correct any cases where the pitch is greater than +/- 90 degrees - if abs(pitch) gt !dpi / 2. then begin + if abs(pitch) gt !dpi/2. then begin yaw = yaw - !dpi * signum(yaw) pitch = !dpi * signum(pitch) - pitch roll = roll - !dpi * signum(roll) @@ -42,7 +39,7 @@ function solo_get_pointing, utc, degrees = degrees, arcsec = arcsec ; apply correct units to the pointing vector - if keyword_set(degrees) or keyword_set(arcsec) then rad_factor = 180. / !dpi else rad_factor = 1. + if keyword_set(degrees) or keyword_set(arcsec) then rad_factor = 180./!dpi else rad_factor = 1. if keyword_set(arcsec) then arc_factor = 3600. else arc_factor = 1. yaw = yaw * rad_factor * arc_factor