GNSS sky plots
GPS, Galileo, GLONASS, BeiDou
Sky plots are polar orthogonal plots illustrating the satellite’s path as a function of elevation and azimuth which can be used in GNSS survey planning. Sky plots illustrates the geometry of the satellite constellation which is expressed mathematically as the geometric dilution of precision (GDOP) factor,
Presented, is the matlab code used to generate the figure on left using data from the reference station ALGO on DOY 62 2008 at 12:00 GPS Time. The azimuth and elevation angle is assumed known.
rad2deg=180/pi; deg2rad=pi/180; %% Satellite Information prn=[14,18,1,9,12,30,22,32,5,31]; %Satellite PRN azi=[55,135.2,-83,49,95,135,159,-56,116,-145]; %Azimuth in degrees el=[69,35,40,30,30,24,78,62,32,22]; %Elevation angle in degrees %% Plot Figure a=azi*deg2rad; %Convert degrees to radians r=90-el; %Convert elevation angle to zenith for i=1:size(azi,2), svx(i)=r(i)*cos(a(i)) ; svy(i)=r(i)*sin(a(i)); %Calculate polar co-ordinates end polarhg([30 60]) %Prerequisite script used to format axis hold on plot( svx,svy,'.r','markers',20); %Plot satellite location hold off %% Format output for i=1:R, text(svx(i)+7,svy(i),num2str(prn(i)), 'FontSize' ,10) ; %Add PRN labels to each point end axis('square') grid on; set(gcf, 'Color', 'w'); %Change background of figure from grey to white ti = get(gca,'TightInset') ; %Remove extra spacing around figure set(gca, 'LooseInset', [0,0,0,0.01]); %Depending on the figure, you may need to add extra %spacing [left bottom width height]) print( '-dtiff', ['skyPlot'], '-r600'); %Change "-r600" to the required DPI
To run the script above, the script polarhg is required, which can be downloaded here.