;+ ; NAME: ; CvSky_Solar_EloPa ; PURPOSE: ; Convert between solar elongation, and position angle ; to one of the coordinate frames supported by CvSky ; and v.v ; CATEGORY: ; smei/gen/idl/ephem ; CALLING SEQUENCE: FUNCTION CvSky_Solar_EloPa, UT, fromvectors , $ from_solar_elopa = from_solar_elopa , $ to_solar_elopa = to_solar_elopa , $ degrees = degrees , $ euler_angles = euler_angles , $ euler_info = euler_info , $ silent = silent , $ _extra = _extra ; INPUTS: ; UT array; type: standard time structure ; times (UT); Note that if /rectangular is set then UT ; can only be an array[1] ; (i.e. a single time must be specified) ; fromvectors array; ; OPTIONAL INPUTS: ; /degrees input and output angles are in degrees ; silent=silent suppresses information messages ; INPUTS/OUTPUTS: ; Result array[2,*] or array[3,*]; type: double ; output array according to selected /to... keyword ; spherical coordinates (longitude, latitude, and ; (optional) radial distance is returned ; OPTIONAL OUTPUTS: ; euler_angles=euler_angles ; array[3,*]; type: double ; Euler angles applied to input coordinates. ; euler_info=euler_info ; scalar; type: string ; descriptive string describing the transformation ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; InitVar, CvSky ; PROCEDURE: ; MODIFICATION HISTORY: ; APR-2015, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ; Added from_centered_heliographic and to_centered_heliographic ;- InitVar, to_solar_elopa, /key IF NOT to_solar_elopa THEN BEGIN IF IsType(_extra, /defined) THEN BEGIN tags = tag_names(_extra) FOR n=0,n_elements(tags)-1 DO BEGIN IF strlen(tags[n]) GT 5 AND strmid(tags[n],0,5) EQ 'FROM_' THEN BEGIN to_solar_elopa = tags[n] NE 'FROM_SOLAR_ELOPA' break ENDIF ENDFOR ENDIF ENDIF IF to_solar_elopa THEN BEGIN Out = CvSky(UT, fromvectors, /to_solar_elopa, degrees=degrees, euler_angles=euler_angles, euler_info=euler_info, _extra=_extra) Out = SubArray(Out, element=1, add=90.0d0/ToDegrees(degrees=degrees)) ENDIF ELSE BEGIN Out = IsType(fromvectors, /defined) ? fromvectors : from_solar_elopa Out = SubArray(Out, element=1, add=-90.0d0/ToDegrees(degrees=degrees)) Out = CvSky(UT,Out, /from_solar_elopa, degrees=degrees, euler_angles=euler_angles, euler_info=euler_info, _extra=_extra) ENDELSE RETURN, Out & END