爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3648|回复: 2

[程序设计] 批量nc转dat错误

[复制链接]

新浪微博达人勋

发表于 2018-5-10 00:05:25 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
我要把26个nc文件转合成一个dat文件,dat文件生成了,可是只有148k,用Fortran再转成txt过程不成功。请各位大神帮我看看怎么回事
>> var='qnet';
filename=' D:\lunwen\adata\qnet_1984.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data1=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid)
filename=' D:\lunwen\adata\qnet_1985.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data2=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid)
filename=' D:\lunwen\adata\qnet_1986.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data3=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid)
filename=' D:\lunwen\adata\qnet_1987.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data4=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1988.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data5=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1989.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data6=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1990.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data7=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1991.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data8=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1992.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data9=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1993.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data10=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1994.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data11=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1995.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data12=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1996.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data13=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1997.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data14=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1998.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data15=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_1999.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data16=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2000.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data17=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2001.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data18=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2002.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data19=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2003.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data20=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2004.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data21=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2005.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data22=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2006.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data23=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2007.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data24=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2008.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data25=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
filename=' D:\lunwen\adata\qnet_2009.nc';
    ncid=netcdf.open(filename,'nc_nowrite');
    varid=netcdf.inqVarID(ncid,var);
    lonid=netcdf.inqVarID(ncid,'lon');
    latid=netcdf.inqVarID(ncid,'lat');
%     levid=netcdf.inqVarID(ncid,'level');
    lon=netcdf.getVar(ncid,lonid);
    lat=netcdf.getVar(ncid,latid);
%     lev=netcdf.getVar(ncid,levid);
    Data26=netcdf.getVar(ncid,varid);
%    [m,n,t]=size(data);
netcdf.close(ncid);
E=Data1(:,:,1);
for i=1:11
E=[E,Data1(:,:,i+1)];
end
for i=1:12
E=[E,Data2(:,:,i)];
end
for i=1:12
E=[E,Data3(:,:,i)];
end
for i=1:12
E=[E,Data4(:,:,i)];
end
for i=1:12
E=[E,Data5(:,:,i)];
end
for i=1:12
E=[E,Data6(:,:,i)];
end
for i=1:12
E=[E,Data7(:,:,i)];
end
for i=1:12
E=[E,Data8(:,:,i)];
end
for i=1:12
E=[E,Data9(:,:,i)];
end
for i=1:12
E=[E,Data10(:,:,i)];
end
for i=1:12
E=[E,Data11(:,:,i)];
end
for i=1:12
E=[E,Data12(:,:,i)];
end
for i=1:12
E=[E,Data13(:,:,i)];
end
for i=1:12
E=[E,Data14(:,:,i)];
end
for i=1:12
E=[E,Data15(:,:,i)];
end
for i=1:12
E=[E,Data16(:,:,i)];
end
for i=1:12
E=[E,Data17(:,:,i)];
end
for i=1:12
E=[E,Data18(:,:,i)];
end
for i=1:12
E=[E,Data19(:,:,i)];
end
for i=1:12
E=[E,Data20(:,:,i)];
end
for i=1:12
E=[E,Data21(:,:,i)];
end
for i=1:12
E=[E,Data22(:,:,i)];
end
for i=1:12
E=[E,Data23(:,:,i)];
end
for i=1:12
E=[E,Data24(:,:,i)];
end
for i=1:12
E=[E,Data25(:,:,i)];
end
for i=1:12
E=[E,Data26(:,:,i)];
end
%重制矩阵
E=reshape(E,[360,180,312])
datanew=E(5:15,110:120,1:312);
%datanew=86400*dataxx%这个是变换单位的,如果单位一致就不需要了
%下面选取一个对应的输出方式,文件名只取一种修改路径
outputfile='D:\lunwen\adata\qnet1.dat';%年平均或整体数据
%
fid=fopen(outputfile,'wb');
fwrite(fid,datanew,'float');   %只输出未经过季节平均处理后的数据
%fwrite(fid,sst_ann,'float');  %配合平均值程序
fclose(fid);


密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2018-5-10 09:42:24 | 显示全部楼层
程序太长,没细看,建议用ncread,比这个简单多了
另外,数据格式建议用double
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-5-10 11:13:38 | 显示全部楼层
二爷名声在外 发表于 2018-5-10 09:42
程序太长,没细看,建议用ncread,比这个简单多了
另外,数据格式建议用double

找到原因了,是我经纬度弄错了 谢谢你
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表