Select Specific NC Files in Folder Using Date Included in Filename

1 visualización (últimos 30 días)
Michelle De Luna
Michelle De Luna el 22 de En. de 2021
Respondida: per isakson el 22 de En. de 2021
Good evening! I hope this message finds everyone healthy and well.
I'm currently working with a series of .nc files which represent over five years of data. These files are all contained in the same folder and have a similar format (e.g MERRA2_100.inst6_3d_ana_Np.19800604.SUB.nc). I also have a matrix with three columns, where the first column indicates a month, the second column a day, and the third column a year (e.g. 06, 04, 1980).
My goal is to select all of the .nc files within my folder that match the dates included in my matrix. So, if the first row in my matrix indicates June 4th, 1980 (06, 04, 1980), I would like my code to select the appropriate .nc file from my folder (MERRA2_100.inst6_3d_ana_Np.19800604.SUB.nc). I would then like to read and average the variables in my selected files, but I think I know how I would like to go about with that. Any suggestions on this matter would be greatly appreciated. Thanks in advance!
Here's what I have so far:
matrix = [month day years]
myFolder = 'C:\Users\michelle\files'
filePattern = fullfile(myFolder, '*.nc')
theFiles = dir(filePattern)
for k = 1:length(theFiles)
baseFileName = theFiles(k).name
fullFileName = fullfile(theFiles(k).folder, baseFileName)
fprintf(1, 'Now reading %s\n', fullFileName)
end

Respuestas (1)

per isakson
per isakson el 22 de En. de 2021
Something like this should do it
matrix = [ 6, 4, 1980
6, 4, 1981 ];
dates = string( datestr( [matrix(:,[3,1,2]), zeros(size(matrix))], 'yyyymmdd' ) );
theFiles = dir( fullfile( 'C:\Users\michelle\files', 'MERRA*.nc' ) );
for jj = 1 : numel( theFiles )
filespec = string( fullfile( theFiles(jj).folder, theFiles(jj).name ) );
if any( contains( filespec, dates(jj) ) )
fprintf( 'Now reading %s\n', filespec )
end
end
Not tested!

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by