|
vardata = ncread(source,varname,start,count,stride)
上面这个函数要比以前的一组函数封装的更好,使用起来更方便简洁。
先用ncdisp(source)获得变量的名字varname,放入上面的函数ncread。
并告诉读取的起始位置start和要读取的数量count ( the number of elements to read along the corresponding dimension)。
最后的stride是步长,optional。
例子:
读取CRU最高温数据
tasmax_bced_1960_1999_gfdl-esm2m_rcp2p6_2006-2010.nc
这是一个面板数据。
通过ncdisp看到里面存放温度数据的变量为tasmax。
使用ncinfo来确定tasmax变量一共有多少层面板。
【ncdisp里也能看出tasmax的维数,但如果要一次性读取多个nc文件,这个ncinfo就派上用场了】
vinfo1 = ncinfo('tasmax_bced_1960_1999_gfdl-esm2m_rcp2p6_2006-2010.nc','tasmax');
ddimension1=vinfo1.Size;
len=ddimension1(3); %获得nc文件的层数
使用ncread进行读取。
Data= ncread('tasmax_bced_1960_1999_gfdl-esm2m_rcp2p6_2006-2010.nc','tasmax',[1 1 m], [720 360 1]); %m是从第几层开始读1→720,1→360,指一层的全球温度数据全部读取,m→1,值的从第m层开始读(start),只读1层(count)。
如果你需要的范围不是全球,是某一个区域,则确定好研究区的位置,把上面的1→720,1→360改过来就行。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 14:36
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社