Seven simple steps for converting TRMM binary to ASCII grid using MATLAB
Step1:
%Open TRMM realtime binary file
trmmFile = fopen('E:\TrmmBinary
Processing\3B42RT.2012.03.27.09z.bin', 'rb');
Step2:
%Move file pointer to the begining of file
frewind(trmmFile);
Step3:
%Read TRMM value from the binary file having 1140 rows and
480 columns
precipitation = fread(trmmFile, [1440,480], 'float32','b');
Step4:
%Shift precipitation by 90 degree to relate data with
equator
precipitation = rot90(precipitation);
%Assign ESRI ASCII GRID HEADER
%After rotaion by 90 degree ncols changed into 1440 from 480
and nrows
%changed into 480 from 1440
%Open ASCII file to store binary data
asciiFile='3B42RT.2012.03.27.09z.bin_matlab.asc';
Step7:
%Write ASCII header for ESRI ASCII
header0='ncols 1440';
header1='nrows 480';
header2='xllcorner 0';
header3='yllcorner -60';
header4='cellsize 0.25';
header5='NODATA_value -99999';
dlmwrite(asciiFile, header0,'delimiter','','newline','pc');
dlmwrite(asciiFile,
header1,'delimiter','','newline','pc','-append');
dlmwrite(asciiFile,
header2,'delimiter','','newline','pc','-append');
dlmwrite(asciiFile,
header3,'delimiter','','newline','pc','-append');
dlmwrite(asciiFile,
header4,'delimiter','','newline','pc','-append');
dlmwrite(asciiFile,
header5,'delimiter','','newline','pc','-append');
dlmwrite(asciiFile, precipitation,'delimiter','
','precision',6,'roffset',0,'coffset',0,'-append');
Addition: Read TRMM RT binary and convert it into X-Coordinate,Y-Coordinate,Z-value table into a CSV file
Open binary file
fid = fopen('E:\TrmmBinary Processing\3B42RT.2012.03.02.03z.bin', 'r');
Move file reader into the begining of the file
frewind(fid);
Read 32bit floating point binary with 1440 row/lat and 480 cols/lat
precipitation = fread(fid, [1440,480], 'float32','b');
precipitation = rot90(precipitation);
lon=1440;
lat=480;
for lo=1:lon
for la=1:lat
rlon=0.125+0.25*(lo-1);
rlat=-59.875+0.25+(la-1);
output=sprintf('f,f,f',rlat,rlon,precipitation(lo,la));
disp(output);
M=[rlat,rlon,precipitation(lo,la)];
dlmwrite ('trmmoutput.csv',M,'-append');
end
end
Enjoy

0 comments :
Post a Comment