M_map lambert projection
5 views (last 30 days)
Show older comments
Hello everyone, I'm trying to plot a lambert projection with my temperature data. First of all I plot data with was on a regular grid and everything went well. Then I interpolatet unregular data onto a regular grid I tried to plot it, but somehow it won't plot properly. Here an image for example. As you can see he detects the coastline properly but somehow don't leave them blank where the coast should be.
Maybe someone had a similar problem or has a suggestion why this keeps on happening. Thank you!!
for mon=12
%Nur ein monat temperature
m_proj('lambert','long',[-90 50],'lat',[45 85]);
disp('start plotting temp fesom')
h=figure;
ind=find(vq==0); vq(ind)=nan;
m_pcolor(Lon_oras,Lat_oras,vq(:,:,mon)); shading flat;
caxis([-2 10])
colormap;
cb=colorbar;
xlabel(cb,'Temperature');
m_grid('box','fancy','tickdir','in');
m_coast('patch',[.8 .8 .8],'edgecolor','k');
%title(['year: ',num2str(year),'; depth: ',num2str(depth),' m'],'fontsize',16);
print(h,'lambert_temperaturen_fesom_monat','-dpng');
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/672508/image.png)
0 Comments
Answers (1)
Abhinaya Kennedy
on 5 Jun 2024
Edited: Abhinaya Kennedy
on 5 Jun 2024
Hi Bianka,
The issue with your plot likely stems from how you are filling the missing data (NaN values) before plotting with "m_pcolor". Here's a possible solution:
Instead of setting all NaN values to zero with "vq(ind) = 0", you can use a masking technique to exclude them from the plotting process.
for mon = 12
% Nur ein monat temperature
m_proj('lambert','long',[-90 50],'lat',[45 85]);
disp('start plotting temp fesom')
h = figure;
% Mask out NaN values before plotting
mask = ~isnan(vq(:,:,mon));
m_pcolor(Lon_oras, Lat_oras, vq(:,:,mon), mask);
shading flat;
caxis([-2 10])
colormap;
cb = colorbar;
xlabel(cb,'Temperature');
m_grid('box','fancy','tickdir','in');
m_coast('patch',[.8 .8 .8],'edgecolor','k');
%title(['year: ',num2str(year),'; depth: ',num2str(depth),' m'],'fontsize',16);
print(h,'lambert_temperaturen_fesom_monat','-dpng');
end
By using the mask, you ensure that only valid data points are considered for plotting, eliminating the need to replace NaN values with zeros and preventing the coloring of empty regions over the coastlines.
0 Comments
See Also
Categories
Find more on Environment and Settings 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!