;+ ;PURPOSE: ; Apply eclipse corrections (when present) to 3D data structures. ; ; ;ARGUMENTS: ; data: Valid 3D data structure ; ; ;KEYWORDS: ; eclipse: Flag used by this routine to determine when an ecplise ; starts or ends (assists output messages). Will be set ; to 1 at the start of an eclipse and 0 at the end. ; ;NOTES: ; ; ;$LastChangedBy: aaflores $ ;$LastChangedDate: 2013-09-10 12:11:07 -0700 (Tue, 10 Sep 2013) $ ;$LastChangedRevision: 13011 $ ;$URL: svn+ssh://thmsvn@ambrosia.ssl.berkeley.edu/repos/spdsoft/tags/spedas_1_00/projects/themis/spacecraft/particles/thm_part_apply_eclipse.pro $ ; ;- pro thm_part_apply_eclipse, data, eclipse=eclipse compile_opt idl2, hidden ; Check data structure validity if ~is_struct(data) then begin dprint, dlevel=0, 'Invalid particle data structure. No eclipse corrections applied.' return endif ; Check that corrections tag exists if ~in_set( strlowcase( tag_names(data) ), 'eclipse_dphi') then begin return endif ; If /use_eclipse_corrections was used when loading data this field should always contain a valid number. if ~finite(data.eclipse_dphi) then begin if keyword_set(eclipse) then begin dprint, dlevel=0, 'Error: Expected valid eclipse correction at'+time_string(data.time)+ $ '. Spin data may not have been loaded properly or may be incomplete.' eclipse = 0b endif return endif ; Attempt to notify user of the correction duration if data.eclipse_dphi ne 0 && ~keyword_set(eclipse) then begin eclipse = 1b dprint, dlevel=2, verbose=verbose, 'Applying eclipse corrections beginning at: '+time_string(data.time) endif if data.eclipse_dphi eq 0 && keyword_set(eclipse) then begin eclipse = 0b dprint, dlevel=2, verbose=verbose, 'End eclipse corrections at: '+time_string(data.time) endif ; Add correction to phi data.phi += data.eclipse_dphi end