Challenge to convert a simple IDL code into Python
Cleo Drakos
cleo21drakos at gmail.com
Sun Aug 24 11:38:18 EDT 2014
Here is IDL code:
pro read_binary_file
file = "3B42RT.2014010318.7.bin"
num_lon = 1440
num_lat = 480
data = {header: bytarr(num_lon*2), precip: intarr(num_lon,num_lat),
precip_error: intarr(num_lon,num_lat), $
source_of_estimate: bytarr(num_lon,num_lat), precip_uncal:
intarr(num_lon,num_lat)}
close, 1
openr, 1, file
readu, 1, data
close, 1
precip = swap_endian(data.precip)
print, precip
end
My attempt in Python is here:
fname = '3B42RT.2014010318.7.bin'
num_lon = 1440
num_lat = 480
with open(fname, 'rb') as fi:
contents = fi.read()
precip = struct.unpack_from('>'+str(num_lon*num_lat)+'I',
contents, offset = num_lon*2)
precip = np.array(data,dtype=int)
precip data
But, the results obtained from two codes above are not same. The IDL code
is correct, but what is wrong with my python code?
Here is binary file I was working with:
ftp://trmmopen.gsfc.nasa.gov/pub/merged/3B42RT/3B42RT.2014010318.7.bin.gz
cleo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20140825/67c2b6fe/attachment.html>
More information about the Python-list
mailing list