📄 wrsplot.m
字号:
function wrsplot(wrsfile, igpfile, usrpolyfile)%*************************************************************************%* Copyright c 2007 The board of trustees of the Leland Stanford *%* Junior University. All rights reserved. *%* This script file may be distributed and used freely, provided *%* this copyright notice is always kept with it. *%* *%* Questions and comments should be directed to Todd Walter at: *%* twalter@stanford.edu *%*************************************************************************%% Modified Todd Walter June 27, 2007 to fix igp and poly off options,% and plotting spaninit_graph;global GRAPH_LL_WORLD GRAPH_LL_STATE GRAPH_WRSMAP_FIGNOplot_igpdata = 1;plot_usr_poly = 1;%load wrs datawrsraw = load(wrsfile);nwrs = size(wrsraw,1);%load igp dataif plot_igpdata igpraw = sortrows(load(igpfile),[3,4]); igp_mask = igpraw(:,3:4);else igp_mask = wrsraw(:,2:3); %adjust to 0 to 360 idx=find(igp_mask(:,2)<0); igp_mask(idx,2) = igp_mask(idx,2)+360;end%load user polygon fileif(plot_usr_poly) usrpoly = load(usrpolyfile);else usrpoly = wrsraw(:,2:3);end%adjust IGP longitude to -180 to 180ll_igp=igp_mask; idx=find(ll_igp(:,2)>=180);ll_igp(idx,2)=ll_igp(idx,2)-360;ax180=[min([ll_igp(:,2)' wrsraw(:,3)' usrpoly(:,2)'])... max([ll_igp(:,2)' wrsraw(:,3)' usrpoly(:,2)'])... min([ll_igp(:,1)' wrsraw(:,2)' usrpoly(:,1)'])... max([ll_igp(:,1)' wrsraw(:,2)' usrpoly(:,1)'])];span180 = ax180(2) - ax180(1);%adjust reference station and user polygon values to 0 to 360ll_wrs=wrsraw(:,2:3); idx=find(ll_wrs(:,2)<0);ll_wrs(idx,2)=ll_wrs(idx,2)+360;ll_usr=usrpoly; idx=find(ll_usr(:,2)<0);ll_usr(idx,2)=ll_usr(idx,2)+360;ax360=[min([igp_mask(:,2)' ll_wrs(:,2)' ll_usr(:,2)'])... max([igp_mask(:,2)' ll_wrs(:,2)' ll_usr(:,2)'])... min([igp_mask(:,1)' ll_wrs(:,1)' ll_usr(:,1)'])... max([igp_mask(:,1)' ll_wrs(:,1)' ll_usr(:,1)'])];span360 = ax360(2)-ax360(1);%find best way to display on mapif(span360 <= 180 && span360 < span180) wrsraw(:,2:3)=ll_wrs; usrpoly=ll_usr; ll_igp=igp_mask; ax=ax360;else ax=ax180;endfigure(GRAPH_WRSMAP_FIGNO);clf%plot mapplot(GRAPH_LL_WORLD(:,2),GRAPH_LL_WORLD(:,1),'k');hold onplot(GRAPH_LL_STATE(:,2),GRAPH_LL_STATE(:,1),'k:');if(span360 < span180) plot(GRAPH_LL_WORLD(:,2)+360,GRAPH_LL_WORLD(:,1),'k'); plot(GRAPH_LL_STATE(:,2)+360,GRAPH_LL_STATE(:,1),'k:'); xticklabel=get(gca,'XTickLabel'); xticks=str2num(xticklabel); idx=find(xticks>=180); xticks(idx)=xticks(idx)-360; set(gca,'XTickLabel',num2str(xticks));endif plot_usr_poly plot(usrpoly(:,2),usrpoly(:,1),'r');end%plot reference stationslon_circ=(ax(2)-ax(1))*cos((.1:.1:2)*pi)'/100;lat_circ=(ax(4)-ax(3))*sin((.1:.1:2)*pi)'/100;n_igp=size(ll_igp,1);for idx=1:nwrs patch(lon_circ+wrsraw(idx,3),lat_circ+wrsraw(idx,2),'b');end%plot grid pointsif plot_igpdata lon_tri=(ax(2)-ax(1))*cos((-1:4:7)*pi/6)'/100; lat_tri=(ax(4)-ax(3))*sin((-1:4:7)*pi/6)'/100; n_igp=size(ll_igp,1); for idx=1:n_igp patch(lon_tri+ll_igp(idx,2),lat_tri+ll_igp(idx,1),'g'); endendaxis(ax);grid on;title('Reference Station Locations');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -