M_map lambert projection

7 visualizaciones (últimos 30 días)
Bianka Markovic
Bianka Markovic el 2 de Jul. de 2021
Editada: Abhinaya Kennedy el 5 de Jun. de 2024
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

Respuestas (1)

Abhinaya Kennedy
Abhinaya Kennedy el 5 de Jun. de 2024
Editada: Abhinaya Kennedy el 5 de Jun. de 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.

Categorías

Más información sobre Formatting and Annotation en Help Center y File Exchange.

Productos


Versión

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by