MATLAB--nc文件的讀取及二進(jìn)制文件的輸出

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);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容