天空分享 http://blog.sciencenet.cn/u/lishihceng10

博文

ncread

已有 10824 次阅读 2016-2-3 09:59 |系统分类:科研笔记

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改过来就行。



https://blog.sciencenet.cn/blog-489011-954201.html

上一篇:给张帅点赞——记 2016澳大利亚网球公开赛
下一篇:睡眠都去哪了?
收藏 IP: 159.226.110.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-22 14:36

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部