matlab ncread ftp,MATLAB--nc文件的读取及二进制文件的输出

NCEP:

clc;%清屏

clear

all;%清空

%nc批量读取的数据

datadir1='D:\data\ncep_monthly\pressure\';%指定批量数据所在的文件夹

filelist1=dir([datadir1,'air.mon.mean.nc']);%指定批量数据的类型

minlat=-90;maxlat=90;minlon=0;maxlon=357.5;

filename1=[datadir1,filelist1.name];

ncid1=netcdf.open(filename1,'NC_NOWRITE');%打开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);%关闭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\';%指定批量数据所在的文件夹

filelist1=dir([datadir1,'sounding*.nc']);%指定批量数据的类型

k1=length(filelist1);

% 读取数据

minlat=-90;maxlat=90;minlon=0;maxlon=360;

n=1;

fors=1:k1

filename=[datadir1,filelist1(s).name];

ncid=netcdf.open(filename,'NC_NOWRITE');%打开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);%关闭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文件,气压层会倒置。

1. 输出成txt

fid=fopen(strcat('I:\D\两湖地区\模拟结果\站点气象场\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的一些参数

\t tab键,水平制表符

\n 生成新行

\r 回车

%d 整数

%e 实数:科学计数法

%f 实数:小数形式

%g 更紧凑的数字形式,无尾随0

%s 输出字符串

2. 输出成csv

csvwrite(strcat('meteo_',num2str(iyear),'-,station{istation},'.csv'),city_data);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值