;+
;PROCEDURE: mav_get_altitude
;PURPOSE:
; Calculates the altitude of the MAVEN spacecraft above the Martian
; surface (either the solid planet or the constant-pressure surface
; known as the 'areoid')
;
;USAGE:
; mav_get_altitude, elon_sc, lat_sc,r_sc, alt_sc
;INPUTS:
; elon_sc: a 1-dimensional array of values of the east longitude
; of the spacecraft. UNITS: Degrees!
;
; lat_sc: a 1-dimensional array of values of the latitude
; of the spacecraft. UNITS: Degrees!
;
; r_sc: a 1-dimensional array of values of the radial
; distance of the spacecraft from the planet's center
; of mass. UNITS: kilometers
;
; alt_sc: The output array of spacecraft altitudes.
; UNITS: kilometers
;KEYWORDS:
; TOPOGRAPHIC: Set this keyword to anything nonzero if the spacecraft
; altitude above the planet's topography is desired
;
; AREOID: Set this keyword to anything nonzero if desired
; is the spacecraft altitude above the
; constant-pressure surface known as the areoid
; (the equivalent of sea level). This will be the
; relevant altitude for most MAVEN studies and is
; the default if neither the topographic or areoid
; keywords are specified.
;
;CREATED BY: Robert J. Lillis 2013-01-22
;FILE: mav_get_altitude
;VERSION: 1.1
; Change made to enable loading of mola file
pro mav_get_altitude, elon_sc, lat_sc,r_sc, alt_sc, mola_struc = mola_struc, $
topographic = topographic, areoid = areoid
if not keyword_set (mola_struc) then begin
; Here we find out where the source code is, knowing that the file to be restored is in that same folder
traceinfo = scope_traceback(/structure)
nlevels = n_elements(traceinfo)
thisfile = traceinfo[nlevels-1].filename
eph_folder = file_dirname(thisfile)
restore, eph_folder + 'mola_save_file_0.25deg.idl'
endif
if keyword_set (topographic) and keyword_set (areoid) then message, 'Must choose either altitude to be above the topographic or areoid surfaces, not both!!'
nelon = n_elements (mola_struc.elon)
nlat = n_elements (mola_struc.lat)
elon_fractional_indices = elon_sc*(nelon/360.0) - 1.0
lat_fractional_indices = (90.0+lat_sc)*(nlat/180.0) -1.0
;stop
if keyword_set (topographic) then r = mola_struc.r_pl else r = $
mola_struc.r_areoid
r_surface_km = 0.001*interpolate(r,elon_fractional_indices, $
lat_fractional_indices)
alt_sc = r_sc - r_surface_km
end