From 34ce9be9032902f33e8872baf026543d22bd9f7e Mon Sep 17 00:00:00 2001 From: Roberto Susino <roberto.susino@inaf.it> Date: Tue, 18 Jan 2022 14:38:27 +0100 Subject: [PATCH] Optimize solo_get_pointing.pro routine --- solo_get_pointing.pro | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/solo_get_pointing.pro b/solo_get_pointing.pro index cb0d63e..ab7c1c0 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 -- GitLab