how to plot country borders in regional data
Show older comments
I have a netCDF file in which I have a variable to plot at 12 Km grid spacing. The domain is regional and contains 3 countries i.e. Norway, Sweden, and Finland.
Is there a way to draw country borders?
Example plot is attached.
LST_JJActl = ncread('/Volumes/YKMac/EnsAvg_NSF12KP3CTL_JJA_DTM.nc','LST');
pft=ncread('/Volumes/YKMac/NetCDF_Inputdata_P3/NSF12KP3CTL_CLM45_surface.nc','pft_2d');
nt=pft(:,:,3); bt=pft(:,:,9);
NETx=nan(size(LST_JJActl,1),size(LST_JJActl,2)); BDTx=nan(size(LST_JJActl,1),size(LST_JJActl,2));
NETx(1:end,1:end)=nt(2:end-2,2:end-2); BDTx(1:end,1:end)=bt(2:end-2,2:end-2);
NET=NETx*0.01; BDT=BDTx*0.01;
PFTtot=(NET+BDT); % Sum of NET and BDT pft fraction to apply on variables of grid level
x0=10; y0=10; width=1200; height=600;
figure(1);
set(gcf,'units','points','position',[x0,y0,width,height]);
%$*********************** PFT fraction ***********************$%
subplot(1,2,1);
h11=imagesc(rot90(NETx));axis on;grid; set(h11,'alphadata',~isnan(rot90(NETx)));
set(gca,'color', [0.5 0.5 0.5]); caxis([0 100]); colormap(bluewhitered(256));
yticklabels({'69','67','65','63','61','59','57','55'});
xticklabels({'0','5','10','15','20','25','30','35'});
ylabel('Lat');xlabel('Lon'); title('NET','fontsize',14);
subplot(1,2,2);
h12=imagesc(rot90(BDTx));axis on;grid; set(h12,'alphadata',~isnan(rot90(BDTx)));
set(gca,'color', [0.5 0.5 0.5]); caxis([0 100]); colormap(bluewhitered(256));
yticklabels({'69','67','65','63','61','59','57','55'});
xticklabels({'0','5','10','15','20','25','30','35'});
ylabel('Lat');xlabel('Lon'); title('BDT','fontsize',14);
hp1 = get(subplot(1,2,2),'Position');
hc1 = colorbar('Location','Manual','Position', [hp1(1)-0.062 hp1(2)+0.024 hp1(3)-0.32 hp1(4)-0.06]);
title(hc1,'%');
sgtitle('Fraction of PFT in RegCM+CLM, NET and BDT','fontweight','bold','fontsize',16);
set(gcf,'inverthardcopy',false);
saveas(gcf,'/Volumes/YKMac/Figures_P3/FigP3_SI4_PFTfract.png');

Thanks.
Answers (1)
KSSV
on 8 Mar 2022
0 votes
You may download your required countries boundary shape file from this link: https://gadm.org/download_country.html
You can read the data using shaperead and then plot.
7 Comments
Yogesh Kumkar
on 8 Mar 2022
KSSV
on 9 Mar 2022
Shape files will have few other supporting files, are these files too present in the same folder?
Yogesh Kumkar
on 9 Mar 2022
KSSV
on 9 Mar 2022
Attach yoour shape files and complete code which you have tried.
Yogesh Kumkar
on 9 Mar 2022
It looks like you are giving wrong name for the shape file. Please check.
S = shaperead('gadm40_NOR_1.shp') ;
S = [[S.X]' [S.Y]'];
plot(S(:,1),S(:,2))

Yogesh Kumkar
on 9 Mar 2022
Categories
Find more on Colorbar in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
