hdf for loop
조회 수: 7 (최근 30일)
이전 댓글 표시
Hello! I'm trying to loop over a series of hdf files inside a folder. I get the map for the first iteration but fail to continue. Can somebody let me know what is the error that is causing the loop to stop in the second iteration? Thank you
clear all
close all
clc
cd('E:\MOD05_Jan2008')
files = dir('*.hdf');
for k = 1:numel(files)
lat=double(hdfread(files(k).name, '/mod05/Geolocation Fields/Latitude', 'Index', {[1 1],[1 1],[406 270]}));
lon=double(hdfread(files(k).name, '/mod05/Geolocation Fields/Longitude', 'Index', {[1 1],[1 1],[406 270]}));
WV=double(hdfread(files(k).name, '/mod05/Data Fields/Water_Vapor_Infrared', 'Index', {[1 1],[1 1],[406 270]}))*0.001;
latlim = [min(min(lat)) max(max(lat))];
lonlim = [min(min(lon)) max(max(lon))];
fir = find(WV<0);
WV(fir) = NaN;
cd('C:\Users\Guest\Desktop')
figure(1)
axesm('mercator','MapLatLimit',latlim,'MapLonLimit',lonlim,'MeridianLabel','on', ... 'ParallelLabel','on');
surfm(lat,lon,WV)
colorbar
title('Total Precipitable Water Distribution Over Southwest Africa (cm)')
xlabel('Longitude')
ylabel('Latitude')
end
댓글 수: 1
Sean de Wolski
2012년 5월 31일
-Are you sure you don't just get the map from the last one?
-If there is an error, what is it?
답변 (1개)
Oleg Komarov
2012년 5월 31일
You are switching to another directory
cd('C:\Users\Guest\Desktop')
it means that it cannot find the files with name files(k).name in 'C:\Users\Guest\Desktop'
Use:
hdfread(fullfile('path to hdf files', files(k).name),...)
참고 항목
카테고리
Help Center 및 File Exchange에서 HDF5에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!