CL_gm_stationElevation — Ground stations elevations of satellites positions.
[elev] = CL_gm_stationElevation(pos_sat_ter,stations,[er,[obla]])
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
satellites positions in the terrestrial frame, in cartesian coordinates [X,Y,Z] [m,m,m] (3xM)
stations positions in the terrestrial frame, in elliptical(geodetic) coordinates [long,lat,alt] [rad,rad,m] (3xN)
(optional) Earth semi-major axis (default is earth equatorial radius %CL_eqRad) [m] (1x1)
(optional) Earth oblateness, setting it to 0 will result in a faster computation (default is earth oblateness %CL_obla) (1x1)
elevations for each stations and each satellite position : in each column j of elev are the elevations for station j [rad] (MxN)
//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);