- 积分
- 366
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-8-23
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大家好,新手,轻拍。
代码如下:
**************************************************************
clear all
clc
ifile = 'clip_pr_Amon_bcc-csm1-1-m_historical_r1i1p1_185001-201212.nc';
ncdisp(ifile);
PrData = ncread(ifile,'pr');
TimeData = ncread(ifile,'time');
Lon = ncread(ifile,'lon');
Lat = ncread(ifile,'lat');
PrData = permute(PrData,[2 1 3]);
[xx,yy,zz] = meshgrid(Lon,Lat,TimeData);
[xi,yi,zi] = meshgrid(87:0.5:127,37:0.5:54,TimeData);
%---------------Interpolation-----------------------------------
vi = interp3(xx,yy,zz,PrData,xi,yi,zi);
%---------------Define the output file-----------------------
outfile = ['bil_',ifile];%定义输出的nc文件的文件名
outid = netcdf.create(outfile,'CLOBBER');%创建nc文件
%---------------Define dimension-----------------------------
latdimID = netcdf.defDim(outid,'lat',35);%创建维度及维数
londimID = netcdf.defDim(outid,'lon',181);%同理
timedimID = netcdf.defDim(outid,'time',1956);%同
% ----------------Define new variables-----------------------
lat_ = netcdf.defVar(outid,'lat','double',latdimID);%定义变量,变量名等。
lon_ = netcdf.defVar(outid,'lon','double',londimID);
time_ = netcdf.defVar(outid,'time','int',timedimID);
predata_ = netcdf.defVar(outid,'pr','double',[londimID,latdimID,timedimID]);
netcdf.endDef(outid);%定义结束
%----------------Assign value--------------------------------
xi_lat = xi(:,1,1);
yi_lon = permute(yi(1,:,1),[2 1]);
netcdf.putVar(outid,lat_,xi_lat);%将值赋给变量
netcdf.putVar(outid,lon_,yi_lon);
netcdf.putVar(outid,time_,TimeData);
netcdf.putVar(outid,predata_,vi);
netcdf.reDef(outid);%赋值结束
%---------------Add attribute--------------------------------
netcdf.putAtt(outid,lat_,'long_name','latitude');%对变量的说明
netcdf.putAtt(outid,lat_,'units','degrees_north');
netcdf.putAtt(outid,lat_,'standard_name','latitude');
netcdf.putAtt(outid,lon_,'long_name','longitude');
netcdf.putAtt(outid,lon_,'units','degrees_east');
netcdf.putAtt(outid,lon_,'standard_name','longitude');
netcdf.putAtt(outid,time_,'long_name','time');
netcdf.putAtt(outid,time_,'units','days since 1850-01-01 00:00:00');
netcdf.putAtt(outid,time_,'standard_name','time');
netcdf.putAtt(outid,predata_,'long_name','Precipitation');
netcdf.putAtt(outid,predata_,'units','kg m-2 s-1');
netcdf.putAtt(outid,predata_,'_FillValue','1e+20');
netcdf.putAtt(outid,predata_,'missing_value','1e+20');
netcdf.close(outid);
**************************************************************
写入数据不太明白怎么搞?请熟悉的人给予指导。谢谢。
来自群组: 国科大 |
评分
-
查看全部评分
|