- 积分
- 1324
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-4-12
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
clear all;close all;clc;
%% 创建nc文件
ncid = netcdf.create('D:\BOB\marine\uv_cmems_lev1.nc','CLOBBER'); %创建一个存放数据的nc文件
%% 定义维度参数
% dimid = netcdf.defDim(ncid,dimname,dimlen)
dimidx = netcdf.defDim(ncid,'lon',121);
dimidy = netcdf.defDim(ncid,'lat',109);
dimidz = netcdf.defDim(ncid,'time',2048);
%% 定义新的变量
varid = netcdf.defVar(ncid,'uvel','double',[dimidx dimidy dimidz]);
varid2 = netcdf.defVar(ncid,'vvel','double',[dimidx dimidy dimidz]);%%不知道为什么之前写为nc_short怎么也没有办赋值,很难受
% varid = netcdf.defVar(ncid,varname,xtype,dimids)
varid3 = netcdf.defVar(ncid,'lon','NC_FLOAT',[dimidx]);
varid4 = netcdf.defVar(ncid,'lat','NC_FLOAT',[dimidy]);
varid5 = netcdf.defVar(ncid,'time','double',[dimidz]);
%% 新变量的属性
netcdf.putAtt(ncid,varid,'units','m s-1');
netcdf.putAtt(ncid,varid,'long_name','Eastward velocity');
netcdf.putAtt(ncid,varid2,'units','m s-1');
netcdf.putAtt(ncid,varid2,'long_name','Northward velocity');
netcdf.putAtt(ncid,varid3,'units','degress_east');
netcdf.putAtt(ncid,varid3,'long_name','Longitude');
netcdf.putAtt(ncid,varid3,'valid_min','= 80');
netcdf.putAtt(ncid,varid3,'valid_max','= 90');
netcdf.putAtt(ncid,varid4,'units','degress_north');
netcdf.putAtt(ncid,varid4,'long_name','Latitude');
netcdf.putAtt(ncid,varid4,'valid_min','= 4');
netcdf.putAtt(ncid,varid4,'valid_max','= 13');
netcdf.putAtt(ncid,varid4,'step','= 0.083336');
netcdf.putAtt(ncid,varid5,'units','hours since 1950-01-01 00:00:00');
netcdf.endDef(ncid);
%% 给新变量赋值
%读取数据
file1='D:/BOB/data/uv/u0/u0_cmems_lev1.nc';
file2='D:/BOB/data/uv/v0/v0_cmems_lev1.nc';
u0=ncread(file1,'uo');
v0=ncread(file2,'vo');
lon0=ncread(file1,'longitude');
lat0=ncread(file1,'latitude');
t=ncread(file1,'time');
u0=squeeze(u0);v0=squeeze(v0);
u1=u0(:,:,1:2048);v1=v0(:,:,1:2048);
t1=t(1:2048,1);
%赋值
netcdf.putVar(ncid,varid,u1);
netcdf.putVar(ncid,varid2,v1);
netcdf.putVar(ncid,varid3,lon0);
netcdf.putVar(ncid,varid4,lat0);
netcdf.putVar(ncid,varid5,t1);
netcdf.close(ncid);
%% 检查新的nc文件
file3='D:\BOB\marine\uv_cmems_lev1.nc';
% ncdisp(file3);
u3=ncread(file3,'uvel');
u31=squeeze(u3(1,1,:));
v3=ncread(file3,'vvel');
v31=squeeze(v3(1,1,:));
lon1=ncread(file3,'lon');
lat1=ncread(file3,'lat');
u_t=ncread(file3,'time');
|
|