How can I read many netcdf files with complex names by using loop in MATLAB?

2 次查看(过去 30 天)
Hello Guys,
I would like to read many Netcdf files with this type of names:
3B-HHR.MS.MRG.3IMERG.20140401-S000000-E002959.0000.V03D.HDF5.nc?precipitationCal[960:969][986:992],lat[986:992],lon[960:969]
3B-HHR.MS.MRG.3IMERG.20140401-S003000-E005959.0030.V03D.HDF5.nc?precipitationCal[960:969][986:992],lat[986:992],lon[960:969]
3B-HHR.MS.MRG.3IMERG.20140401-S010000-E012959.0060.V03D.HDF5.nc?precipitationCal[960:969][986:992],lat[986:992],lon[960:969]
As you see the first number shows the date 20140401 and then time in order to hour, minute and second.
I need to use a loop to read them in order to sorting time!!
these three files as a sample are attached.
Thank you in advance for considering this question.
Regards,

采纳的回答

Kelly Kearney
Kelly Kearney 2016-7-29
Are you reading these files locally? Or is it via OPeNDAP? If the files are local, it may be easiest to query all the filenames using dir, and then sort by the date portion of the files.
If you can't do that, then do you know how many files to expect? Start date, end date, and time interval between files? Do you know the pattern to the -E portion of the file name?
-Kelly
  5 个评论
ehsan
ehsan 2016-8-1
Dear Kelly,
Thank you for your consideration.
Your assumptions are right. all files are in the same folder and only date-time are changing.
Unfortunately my MATLAB version is R2014a and doesn't have "datetime" function. Therefore, I give the error message.
Do you have any other idea?
Kelly Kearney
Kelly Kearney 2016-8-1
You can replace the datetime call with
date = datenum(regexprep(tstr, '-S', ''), 'yyyymmddHHMMSS');
(datenum is a little less flexible than datetime in parsing formats with extra characters, hence the regexprep to get rid of the non-date characters).

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by