function data = loadRefl(fileStr) % Loads TOMS reflectivity data into a 180x288 matrix. % Input: fileStr - Filename containing data. % Output: data 180x288 matrix % Initialize sizes data = zeros(180,288); % Open file [fid, msg] = fopen(fileStr); if fid == -1 error(msg); end % Read header for i=1:3 junk = fgetl(fid); end % Show progress h = waitbar(0,['Reading ' fileStr '...']); % Read data for i=1:180 % Read empty space at block beginning junk = fscanf(fid,'%c',1); for j=1:288 % Read first digit and check for EOL d1 = fscanf(fid,'%c',1); if double(d1) == 13 || double(d1) == 10 % Newline. Read rest of EOL and first empty space of each line while double(d1) == 13 || double(d1) == 10 d1 = fscanf(fid,'%c',1); end d1 = fscanf(fid,'%c',1); end % Convert space to 0 if strcmp(d1,' ') d1 = '0'; end % Read digits 2 and 3 d23 = fscanf(fid,'%c',2); % Save data in output matrix if strcmp(d1,'9') && strcmp(d23,'99') data(i,j) = NaN; else data(i,j) = str2double(strcat(d1,d23)); end % Loop for next value end % 288 values read. Lat info junk junk = fgetl(fid); % Update progress bar waitbar(i/180,h); end fclose(fid); close(h);