Function to pull 110 years of data from .nc files?
Show older comments
I'm trying to write a function that does the following:
metdriver=ncread('shtfl.2006.nc', 'shtfl');
but for my entire 110 year dataset(1900-2010).
Ideally the end result would be:
metdriveryear, with that year's data.
Any ideas? I'm new to .nc files, and it's taking some rethinking. Thanks a bunch!
Answers (1)
Sean de Wolski
on 25 Jun 2013
1 vote
8 Comments
Kate
on 25 Jun 2013
Sean de Wolski
on 25 Jun 2013
Stack the variables from each file into a cell-array. Then concatenate it.
So you right now have 110 files
shtf1.1900.c, shtf2.1901.nc
etc. right? And you need to grab a variable from each and store it?
Kate
on 25 Jun 2013
Kate
on 25 Jun 2013
Kate
on 25 Jun 2013
Sean de Wolski
on 25 Jun 2013
Yes, so you'll want to use a cell-array. For example:
metdrivers = cell(110,1); %empty cell
years = 1900:2009
for ii = 1:110
metdrivers{ii} = ncread(['shtf1.' num2str(years(ii)) '.nc'],'shtf1');
end
Now you have a variable metdrivers that has all of the data for all of the years.
If you want the one for year 1900:
metdrivers{1}
With this you can then do anything!
Sean de Wolski
on 25 Jun 2013
ps. this is pretty much exactly what the FAQ discusses.
Tanmoyee Bhattacharya
on 22 Mar 2016
I have a same question.I have daily nc files reading like this ncread('\','RF'); Now the name is 3B42_daily.1999.01.01.7.nc,3B42_daily.1999.01.02.7.nc,3B42_daily.1999.01.03.7.nc like that 2015.10.31.7.nc. In above code by Sean de Wolski what we have to change.
Categories
Find more on Time Series Events in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!