nc文件的讀取
NCEP:
clc;clear?all;
%nc批量讀取的數(shù)據(jù)
datadir1='D:\data\ncep_monthly\pressure\';%指定批量數(shù)據(jù)所在的文件夾
filelist1=dir([datadir1,'air.mon.mean.nc']);%指定批量數(shù)據(jù)的類型
minlat=-90;maxlat=90;minlon=0;maxlon=357.5;
filename1=[datadir1,filelist1.name];
ncid1=netcdf.open(filename1,'NC_NOWRITE');%打開(kāi)nc文件
lat=ncread(filename1,'lat');%讀入變量lat
lon=ncread(filename1,'lon');%讀入變量lon
la=find((lat<=maxlat)&(lat>=minlat));
lo=find((lon<=maxlon)&(lon>=minlon));
latitude=lat(la,:);
longitude=lon(lo,:);
t_1= ncread(filename1,'air');
t(:,:,:,:)=t_1(lo,la,1:12,:);
netcdf.close(ncid1);%關(guān)閉nc文件
fileID1=fopen('airtemp.bin','w');
fwrite(fileID1,t,'single');
fclose(fileID1);
ECMWF:
clc;%清屏
clear?all;%清空datadir1='D:\sunxy\data\1979-201805_monthly_nc\1\';%指定批量數(shù)據(jù)所在的文件夾
filelist1=dir([datadir1,'sounding*.nc']);%指定批量數(shù)據(jù)的類型
k1=length(filelist1);
%?讀取數(shù)據(jù)
minlat=-90;maxlat=90;minlon=0;maxlon=360;
n=1;
fors=1:k1
filename=[datadir1,filelist1(s).name];
ncid=netcdf.open(filename,'NC_NOWRITE');%打開(kāi)nc文件
lat=ncread(filename,'latitude');%讀入變量lat
lon=ncread(filename,'longitude');%讀入變量lon
time=ncread(filename,'time');
l=length(time);
la=find((lat<=maxlat)&(lat>=minlat));
lo=find((lon<=maxlon)&(lon>=minlon));
latitude=lat(la,:);
longitude=lon(lo,:);
w_1= ncread(filename,'w');
w(:,:,:,n:n+l-1)=w_1(lo,la,37:-1:11,:);
netcdf.close(ncid);%關(guān)閉nc文件
n=n+l
t_1=[];
end;
fileID5=fopen('D:\sunxy\study\Q1Q2\Fortran熱源\glo\1\omega.bin','w');
fwrite(fileID5,w,'single');
fclose(fileID5)
注意:用MATLAB讀取ECMWF文件,氣壓層會(huì)倒置。
文件的輸出
1. 輸出成txt
fid=fopen(strcat('I:\D\兩湖地區(qū)\模擬結(jié)果\站點(diǎn)氣象場(chǎng)\corr_for_tylor.txt'),'w');%需要改文件名稱的地方
[mm,nn]=size(corr);
for im=1:mm
for in=1:nn
??if in==nn
??fprintf(fid,'%g\n',corr(im,in));
???else
??fprintf(fid,'%g\t',corr(im,in));
???end
end
end
fclose(fid);
注:若\n換行失敗,可換成\r\n
fprint的一些參數(shù)
\t?tab鍵,水平制表符
\n?生成新行
\r?回車
%d?整數(shù)
%e?實(shí)數(shù):科學(xué)計(jì)數(shù)法
%f?實(shí)數(shù):小數(shù)形式
%g?更緊湊的數(shù)字形式,無(wú)尾隨0
%s?輸出字符串
2. 輸出成csv
csvwrite(strcat('meteo_',num2str(iyear),'-,station{istation},'.csv'),city_data);