Name

CL_gm_stationElevation — Ground stations elevations of satellites positions.

Calling Sequence

   [elev] = CL_gm_stationElevation(pos_sat_ter,stations,[er,[obla]])
   
   

Description

  • This function computes elevations (elev) for one or several stations. There is visibility when the elevation is greater than the station's mask.

    Satellite's positions (pos_sat_ter) are given in a terrestrial frame and cartesian coordinates

    You can optionally change earth equatorial radius (er) and oblateness (obla). Setting obla to 0 will result in a faster computation.

    See below for detailed examples

  • Last update : 20/08/2009

Parameters

pos_sat_ter:

satellites positions in the terrestrial frame, in cartesian coordinates [X,Y,Z] [m,m,m] (3xM)

stations:

stations positions in the terrestrial frame, in elliptical(geodetic) coordinates [long,lat,alt] [rad,rad,m] (3xN)

er :

(optional) Earth semi-major axis (default is earth equatorial radius %CL_eqRad) [m] (1x1)

obla :

(optional) Earth oblateness, setting it to 0 will result in a faster computation (default is earth oblateness %CL_obla) (1x1)

elev:

elevations for each stations and each satellite position : in each column j of elev are the elevations for station j [rad] (MxN)

Authors

CNES - DCT/SB

See also

CL_gm_visibility

Examples

//secular J2 extrapolation
cjd0 = 21915;
pas = 10./86400.0;
cjd = cjd0 : pas : cjd0+1;
kep0 = [7070 * 1000 ; 0.001 ; CL_deg2rad(98) ; CL_deg2rad(90) ; 0 ; 0];
kep = CL_ex_secularJ2(cjd0, kep0, cjd);

//conversion in terrestrial frame
[pos_car,vel_car] = CL_oe_kep2car(kep);
pos_sat_ter = CL_fr_G502ter(cjd,pos_car);

//stations definition
sta1 = [CL_deg2rad(2);CL_deg2rad(70);200]; // high latitude
sta2 = [CL_deg2rad(20);CL_deg2rad(0);400]; // equator
stations = [sta1,sta2];

//elevations computation
[elev] = CL_gm_stationElevation(pos_sat_ter,stations);

// elevation in function of time
scf();
plot2d((cjd-cjd0)*24,CL_rad2deg(elev(:,1)),2) //station 1
plot2d((cjd-cjd0)*24,CL_rad2deg(elev(:,2)),3) //station 2

// visibility duration if station's mask is 5 degrees :
ind_1 = find(elev(:,1)> CL_deg2rad(5));  //station 1
ind_2 = find(elev(:,2)> CL_deg2rad(5));  //station 2
dur_1_minutes = pas*length(ind_1)*1440.0
dur_2_minutes = pas*length(ind_2)*1440.0

// Same computation with obla=0 (faster)
[elev] = CL_gm_stationElevation(pos_sat_ter,stations,obla=0);