📄 amfplot.m
字号:
% -----------------------------------------------------------------------------
% GPSLab - AMFPLOT.M Plot of the results of a
% Carrier Phase Differential GPS (DGPS) solution
% (by means Ambiguity Mapping Function technique)
% for the vector between Reference and Rover.
% -----------------------------------------------------------------------------
% Before starting this file the program AMFLAB.M had to produce the
% variables needed (look at warning below).
%
% (c) iapg 1999 zeb
% -----------------------------------------------------------------------------
if ~exist('amf_is_calc')
warndlg(['Nothing to display, as long as no AMF-solution was calculated: '...
'Please perform "CDGPS(amf)" -> "calculate" at first.'] ,...
'GPS Lab: application error at call of AMFPLOT.M');
return;
end
% PLOTS
% -----
% Plot der Aufrisse der Werte (Summation) auf die 3 Koordinatenebenen
% Plot der Maximumdarstellung, Histo + Plot aller L鰏ungen, RDOP-Verlauf,
% Satellitenbodenspuren, Anz. der verwendeten Beob. je Sat.
figure(99);
subplot(1,1,1);
% statt contourf() evtl. auch contour3() oder waterfall() ...
% *** noch aus Testphase ***
% a=rand([21,21,21]);
% a(10,7,12)=1;
% [i,j]=find(a==max(max(max((a)))))
% [k,l]=ind2sub([21,21],j)
% format long
% wert=a(i,k,l)
% *** ------------------ ***
switch amf_pl_nr
case 1
e1=reshape(ddamfnorm(m1i,:,:),[21 21]);
e2=reshape(ddamfnorm(:,m1k,:),[21 21]);
e3=reshape(ddamfnorm(:,:,m1l),[21 21]);
colormap('summer');
subplot(2,3,1)
contourf(e1)
colorbar;
title('YZ-plane cutting Max.');
subplot(2,3,2)
contourf(e2)
colorbar;
title('XZ-plane cutting Max.');
subplot(2,3,3)
contourf(e3)
colorbar;
title('XY-plane cutting Max.');
subplot(2,3,4)
axis([1 21 1 21 1 21])
grid
hold on;
slice(ddamfnorm,m1i,m1k,m1l);
colorbar('horiz');
hold off;
title('surrounding of Max.');
% subplot(2,3,5)
subplot(2,3,6)
axis([1 21 1 21 1 21])
grid
hold on;
% 1. Maximum / best1st
plot3(21,m1k,m1l,'r.')
plot3(m1i,21,m1l,'r.')
plot3(m1i,m1k,1,'r.')
plot3(m1i,m1k,m1l,'b.')
% 2. Maximum / best2nd
% plot3(m2i,m2k,m2l,'g.')
% plot3(21,m2k,m2l,'y.')
% plot3(m2i,21,m2l,'y.')
% plot3(m2i,m2k,1,'y.')
hold off;
title('Position of Maximum');
case 2
subplot(1,2,1)
colormap('summer');
n_hist=hist(reshape(ddamfnorm,(21*21*21),1),[-1:.15:1]);
hist(reshape(ddamfnorm,(21*21*21),1),[-1:.15:1]);grid;
axis([-1 1 0 max(n_hist)]);
title('Histogram of all solutions');
xlabel('normed AFM-Wert');
ylabel('frequency');
subplot(1,2,2)
plot(sort(reshape(ddamfnorm,(21*21*21),1)),'+');grid;
axis([1 length(reshape(ddamfnorm,(21*21*21),1)) -1 1]);
title('AMF-values of all solutions');
xlabel('all solutions, sorted by magnitude');
ylabel('normed AFM-Wert');
case 3
plot(s1epo(:,1),rdops2);
title('variation of RDOP');
xlabel('observation time [Wsec]');
ylabel('RDOP-value');
case 6
if mit_l2==2 % laning
subplot(1,2,1)
colormap('summer');
hist(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambdax);grid;
title('histogram of the mean residuals');
xlabel('[ meter ]');
ylabel('frequency');
subplot(1,2,2)
plot(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambdax,'+');grid;
axis([1 length(reshape(ddamfnorm,(21*21*21),1)) ...
min(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambdax) ...
max(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambdax)]);
title('mean residuals of all solutions');
xlabel('all solutions, sorted by magnitude');
ylabel('[ meter ]');
else % L1+L2
subplot(1,2,1)
colormap('summer');
hist(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambda1);grid;
title('histogram of the mean residuals');
xlabel('[ meter ]');
ylabel('frequency');
subplot(1,2,2)
plot(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambda1,'+');grid;
axis([1 length(reshape(ddamfnorm,(21*21*21),1)) ...
min(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambda1) ...
max(acos(sort(reshape(ddamfnorm,(21*21*21),1)))./2./pi.*lambda1)]);
title('mean residuals of all solutions');
xlabel('all solutions, sorted by magnitude');
ylabel('[ meter ]');
end
case 4
load coast0; % K黶tenlinien-Daten laden
colormap('default');
plot(lam,phi,'k'); % liefert Weltkarte
hold on; % Plot "黚ermalen"
hg=plot(s2l(s2l~=0),s2b(s2b~=0),'.b');
plot(app1_l,app1_b,'or');
plot(app1_l,app1_b,'*r');
xlabel('longitude');
ylabel('latitude');
title('GPS - groundtracks during observation time');
text(-180,-90,'Reference in red, observes satellites in blue');
hold off; % "躡ermalen" aus
case 5
hist(satnrs,[1:32]);
colormap cool;
title('simultaneous epochs of observation (all sat. at Rover)');
xlabel('PRN-number of the Satellites');
ylabel('Number of observations depending on satellite');
grid;
case 7
subplot(2,1,1);
plot(s1epo(:,1),satmask1,'.');
axis([min(s1epo(:,1)) max(s1epo(:,1)) 0 12]);
grid;
% xlabel('Beobachtungszeit in GPS-Wochensekunden');
ylabel('number of satellites');
title('number of observed sat. at every epoch, Reference');
subplot(2,1,2);
plot(s2epo(:,1),satmask2,'.');
axis([min(s2epo(:,1)) max(s2epo(:,1)) 0 12]);
grid;
xlabel('observation time in GPS week seconds');
ylabel('number of satellites');
title('number of observed sat. at every epoch, Rover');
otherwise
warndlg(['unvalid case switch variable "amf_pl_nr": the value has to ' ...
' be an integer between 1 und 7 !'], 'Error in call of AMFPLOT.M');
return;
end % end switch
% Ende ==================================================================================
% (c) iapg 1999 Zebhauser
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -