海洋水文要素延经纬线剖面绘制(MATLAB)

知道N层海水各格点的温度,怎么绘制温度延某一条经线或纬线的变化呢?

代码

自定义函数

function profilelon2(t,k,svel,Lon,Lat,level,time,name)
%k是指定绘制经度线在lon中的序号,例如k=[123,124,125];
%t是时刻序号
%svel待绘制的水文要素矩阵
%Lon是经度网格
%Lat是纬度网格
%leve是深度
%time是svel的全部时间点
%name是所绘制水文要素的名称
for i=1:length(k)
    j=k(i);
    m=svel(j,:,:,t);
    [year1,month1,day1,hour1]=transtime(time);
    name1=strcat(num2str(year1(t)),'年',num2str(month1(t)),'月',num2str(day1(t)),'日',num2str(hour1(t)),'时',num2str(Lon(j)),'度经线',name,'剖面');
    tm=reshape(m,301,33);
    absve=tm;
    absve=flipud(absve);m=fliplr(absve');
    [x1,y1]=meshgrid(Lat(1:1:end),level(1:1:end));
    figure;
    contourf(x1,y1,m,11,'ShowText','on');
    xlabel('纬度')
    ylabel('Depth(m)')
    set(gca,'YDir','reverse')
    title(name1);
    name2=strcat(name1,'.png');
    saveas(gcf,name2);
end
end

主函数调用

time=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'time');
U=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'uo');
V=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'vo');
lon=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'longitude');%经度
lato=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'latitude');%纬度
h=ncread("D:\新建文件夹\新建文件夹\uv_16-233.nc",'depth');
%绘制沿经线剖面
t=25;
k=[145,157,169];
profilelon2(t,k,V,lon,lato,h,time,'流速');
%绘制经纬线剖面
k=[85,91];
for t=1:3:length(time)
    profilelat2(t,k,U,lon,lato,h,time,'流速');
end

 效果展示

变量详情

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值