Function mvn_sep_anc_fov_mars_fraction, times,dang = dang, check_objects = check_objects
if not keyword_set (dang) then dang = 1.5
et = time_ephemeris(times)
nt = n_elements (times)
FOV_ID = {SEP1A_front: -202126, SEP1B_front: -202127, SEP1A_back: -202128, SEP1B_back: -202129, $
SEP2A_front: -202121, SEP2B_front: -202122, SEP2A_back: -202123, SEP2B_back: -202124}
FOV_ID_array = [-202128, -202129, -202126, -202127, -202123, -202124, -202121, -202122]
FOV_frame = [replicate ('MAVEN_SEP1', 4), replicate ('MAVEN_SEP2', 4)]
FOV_names = tag_names (FOV_ID)
max_bounds = 4
fraction_FOV_Mars = fltarr(nt, 4)*sqrt(-5.5)
fraction_FOV_sunlit_Mars = fltarr(nt, 4)*sqrt(-5.5)
if keyword_set(check_objects) then begin
time_valid = spice_valid_times(et,object=check_objects)
printdat,check_objects,time_valid
ind = where(time_valid ne 0,nind)
endif else begin
ind = lindgen((nind = nt))
endelse
for J = 0, 3 do begin
cspice_getfov, FOV_ID_array [J*2], max_bounds, shape, frame, bsight, bounds
cart2spc, bounds[0,*], bounds [1,*], bounds [2,*], r, theta_bounds,phi_bounds
print, phi_bounds
theta_range = max (theta_bounds) - min (theta_bounds)
ntheta = ceil(theta_range/(dang*!dtor))
dtheta = theta_range/ntheta
Theta_edges_array = Theta_bounds [0] + dtheta*dindgen(ntheta+1)
theta_centers_array = bin_centers(theta_edges_array)
if phi_bounds[0] lt phi_bounds[3] then begin
phi_range = max (phi_bounds) - min (phi_bounds)
nphi = ceil(phi_range/(dang*!dtor))
dphi = phi_range/nphi
phi_edges_array = phi_bounds [0] + dphi*dindgen(nphi+1)
phi_centers_array = bin_centers(phi_edges_array)
endif else begin
phi_range = phi_bounds [3] + (2*!pi - phi_bounds[0])
nphi = ceil(phi_range/(dang*!dtor))
dphi = phi_range/nphi
phi_edges_array = (phi_bounds [0] + dphi*dindgen(nphi+1))
phi_centers_array = bin_centers(phi_edges_array) mod (2*!pi)
phi_edges_array = phi_edges_array mod (2*!pi)
endelse
phi_array_2d = phi_centers_array#replicate (1.0,ntheta)
theta_array_2d = theta_centers_array##replicate (1.0,nphi)
weighting_array_2d = sin(theta_array_2d)
spc2cart, 1.0, theta_array_2d, phi_array_2d, x2d, y2d, z2d
intercept_Mars = bytarr(nphi, ntheta)
cos_sza_intercept = fltarr(nphi, ntheta)
for i = 0L, n_elements (ind) -1 do begin
for M = 0, ntheta*1L*nphi - 1 do begin & $
cspice_sincpt, 'Ellipsoid', 'MARS',et[ind[i]], 'IAU_MARS', 'NONE', 'MAVEN', FOV_frame [J*2], $
[x2d[M], y2d[M],z2d [M]], spoint,trgepc, srfvec, intercept& $
intercept_Mars [M] = intercept & $
if intercept then begin
cspice_ilumin, 'Ellipsoid', 'MARS',et[i], 'IAU_MARS', 'NONE', 'MAVEN',$
spoint, trgepc, srfvec, phase_angle, solar_zenith_angle,emission_angle
cos_sza_intercept [M] = (solar_zenith_angle lt !pi/2)*cos(solar_zenith_angle)
endif
endfor
print, time_string (times[ind[i]]), ' done'
fraction_FOV_Mars [ind[i],J] = total (intercept_Mars*weighting_array_2d)/total (weighting_array_2d)
fraction_FOV_sunlit_Mars [ind[i], J] = total (cos_sza_intercept*weighting_array_2d)/total(weighting_array_2d)
endfor
endfor
answer = $
{times: times, $
FOV_order: ['SEP1_front', 'SEP1_back','SEP2_front', 'SEP1_back'], $
fraction_FOV_Mars: fraction_FOV_Mars, fraction_FOV_sunlit_Mars: fraction_FOV_sunlit_Mars}
return, answer
end