Ошибка в долготном контуре возле полюса MATLAB - PullRequest
0 голосов
/ 20 ноября 2018

Я хочу построить широту / долготу на южном полюсе, мои данные состоят из ячеек сетки, каждая из которых имеет значение широты и долготы.Моя проблема в том, что долготы «встречаются» друг с другом, как вы можете видеть на рисунке, вертикальная долгота в нижней части изображения имеет много линий друг над другом. lat/lon contoursКто-нибудь знает как их убрать?Вот мой код:

coldiv = -57.5:2.5:-7.5; 
min_pr = coldiv(1); max_pr = coldiv(end);
cmap = [0 0 0.4; 0 0 0.7; 0 0 1; 0 0.2 1; 0 0.4 1; 0 0.6 1; 0 0.8 1; 0 1 1;         
0 1 0; 0.6 0.8 0; 0.6 0.6 0; 0.6 0.4 0; 0.6 0.2 0; 1 0 0];


x = linspace(1,length(coldiv)-2,length(cmap));
xi = 1:length(coldiv)-2;
cmap = interp1(x,cmap,xi);
cmap = [0. 0. 0.; cmap];
fig=figure();
set(fig, 'Position', [10 10 1500 700])


pcolor(mean(tas_ann_DMI_hist_tot,3))
shading flat
hold on;
contour(flip_lat_DMI, 'k','ShowText','on');
contour(flip_lon_DMI, 'k','ShowText','on');
caxis([min_pr max_pr]);colormap(cmap);
axesHandles = findobj(get(fig,'Children'), 'flat','Type','axes');
axis(axesHandles,'square')
set(gca,'YTick',[]);
set(gca,'XTick',[]);

1 Ответ

0 голосов
/ 21 ноября 2018

Я нашел решение.

flip_lon_DMI(flip_lon_DMI<-160) = NaN;
flip_lon_DMI(flip_lon_DMI>190) = NaN;

...

contour(flip_lat_DMI,-90:5:-60,'k--','ShowText','on','Color',[.5 .5 .5]);
contour(flip_lon_DMI,-150:30:180,'k--','ShowText','on','Color',[.5 .5 .5]);
...