Plot air temperature data on pressure levels (Hovmöller diagram).
조회 수: 10 (최근 30일)
이전 댓글 표시
Hi, i need to plot air temperature at certain pressure levels. For reference a netcdf sample file is attached.
I want the data to be plotted for a certain latitude suppose (55) and a certain Longitude range suppose (60-90), and pressure levels suppose (1-17). In this case the X-axis will denote the Longitude range while Y-axis will show the pressure levels.
Any help will be appreciated.
댓글 수: 3
채택된 답변
jonas
2018년 6월 4일
편집: jonas
2018년 6월 4일
Here you go! Note that you specify the latitude and range of longitudes as the indices of their respective vectors, and not in units of degrees. You can easily try other types of plots (like controuf) or change the colormap.
ncid = netcdf.open('amj_w.nc','NOWRITE')
ncdisp('amj_w.nc');
lon = ncread('amj_w.nc','longitude');
lat = ncread('amj_w.nc','latitude');
p = ncread('amj_w.nc','level');
T = ncread('amj_w.nc','t');
lat_const=50; %the latitude as the index in the lat vector
range=1:100; %specify the lon range as index...
T=permute(T,[3 1 2]);
surf(lon(range),p,T(:,range,lat_const),'edgecolor','none');
cb=colorbar;
cb.Label.String='Temperature / K';
xlabel('longitude / degrees east')
ylabel('pressure / millibars')
set(gca,'XLim',[lon(min(range)) lon(max(range))])
view([0 90])
box on
title(['Latitude: ',num2str(lat(lat_const)),' degrees'])
set(gca,'layer','top')
colormap(parula)
댓글 수: 8
Tanziha Mahjabin
2020년 3월 12일
I found my problem. when i was plotting lon vs time, i was not having latitude constant.
It works fine now. Thank you
jonas
2020년 3월 12일
Great, no problem! I recommend using the datetime class instead of the old buggy datenum
추가 답변 (1개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!