Satellite position for visibility in specified local direction
[pos_sat] = CL_gm_stationVisiLocus(station, azim, elev, rsat [, er, obla])
Computes the position of the satellite on a sphere (with a given radius) given the direction of the satellite in the local frame of some location.
station is a location defined by its elliptical (geodetic) coordinates.
azim (azimuth, posive towards West) and elev (elevation) define the direction of the satellite in the local (topocentric North) frame. The corresponding unit vector in spherical coordinates is [azim; elev; 1].
pos_sat is the position on the sphere of radius rsat in cartesian coordinates.
Notes:
This function can be used to compute "visibility circles".
Station position, in elliptical (geodetic) coordinates [long,lat,alt] [rad,m] (3x1 or 3xN)
First spherical coordinate of the pointing direction in the topocentric North frame [rad] (1x1 or 1xN)
Second spherical coordinate of the pointing direction in the topocentric North frame [rad] (1x1 or 1xN)
Satellite radius (= distance from body center) [m] (1x1 or 1xN)
(optional) Equatorial radius (default is %CL_eqRad) [m] (1x1)
(optional) Oblateness (default is %CL_obla) (1x1)
Satellite position (cartesian coordinates) [m] (3xN)
CNES - DCT/SB
station = [10 * %pi/180; 45 * %pi/180; 0]; azim = linspace(0, 2*%pi, 100); rsat = 8000.e3; // Elevation = constant value elev = 10 * %pi/180; pos_sat = CL_gm_stationVisiLocus(station, azim, elev, rsat); // Elevation = f(azimuth) elev = 10 * (%pi/180) * (1+sin(4*azim)); pos_sat2 = CL_gm_stationVisiLocus(station, azim, elev, rsat); scf(); CL_plot_earthMap(color_id=color("grey60")); CL_plot_ephem(pos_sat, color_id=2); CL_plot_ephem(pos_sat2, color_id=5); |