Geometrical visibility intervals
[interv] = CL_ev_stationVisibility(t, pos, stations, elevmin [, tperiods, opts, er, obla])
Computes the periods of time (start and end times) when a spacecraft is visible from ground stations.
A spacecraft is visible from a ground station when its elevation (angle above horizon) is over a given threshold (elevmin). The station coordinates must be elliptical (that is geodetic) coordinates. There can be one minimum elevation value for all the stations, or one value per station.
The results are computed in the simulation time intervals defined by tperiods.
The intervals returned in interv define the visibility periods start and end times when the spacecraft is in view of at least one ground station.
The position of the spacecraft (pos) must be defined in the same coordinates system as the stations and can be:
1) A 3xN array of positions (one position for each time t). The values at intermediate times are obtained by Lagrange interpolation of order ninterp (using t and pos).
2) A list containing the function that computes the positions. The list must have the form:
pos = list(fun, args), where the function fun has the interface: position = fun(t, args).
Other options can be defined in opts, which is a structure (optionally) containing the following fields:
- prec: Computation accuracy on the elevation angle. Default value is 1.e-3 deg.
- dmin: Minimum length of visibility intervals. Default value is 60 s.
- ninterp: Number of points for interpolating the positions. Default value is 8.
- impr: True (%t) to activate the improved detection mechanism. Default value is %t.
Notes:
- The time step should be well chosen so that interpolation errors are small enough.
- The results may be degraded if the position or the velocity (position time derivative) is not continuous.
Times at which the spacecraft positions are defined. (1xN)
Position vector in cartesian coordinates [m] or list. See above for details. (3xN or list)
[lon;lat;alt] Stations elliptical (geodetic) coordinates [rad,rad,m]. (3xM)
Stations minimum elevations [rad]. (1xM or 1x1)
(optional) Simulation periods (time intervals). Default is [-%inf; %inf] (2xQ)
(structure, optional) Additional options (see above). Default value = empty structure.
(optional) Planet equatorial radius [m]. Default is %CL_eqRad.(1x1)
(optional) Planet oblateness. Default is %CL_obla. (1x1)
Visibility start and end times: [tvisi_start; tvisi_end]. (2xP)
CNES - DCT/SB
// Orbital elements and time instants cjd0 = 20000; kep0 = [1.e7; 0; 1; 0; 0; 0]; cjd = cjd0 + (0 : 5/1440 : 1); // days // Ground stations definition (ECF) stations = [0; 0; 0]; // lon = lat = alt = 0 elevmin = 5 * %pi/180; // Computation of spacecraft position args = struct(); args.cjd0 = cjd0; args.kep0 = kep0; function [pos_ecf]=computePosition(cjd, args) pos_eci = CL_oe_kep2car(CL_ex_kepler(args.cjd0, args.kep0, cjd)); pos_ecf = CL_fr_convert("ECI", "ECF", cjd, pos_eci); endfunction // Case 1: Data interpolation pos = computePosition(cjd, args); interv = CL_ev_stationVisibility(cjd, pos, stations, elevmin) // Case 2: Direct computation (no interpolation) interv = CL_ev_stationVisibility(cjd, list(computePosition, args), stations, elevmin) |