Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #76933 > unrolled thread

Challenge to convert a simple IDL code into Python

Started byCleo Drakos <cleo21drakos@gmail.com>
First post2014-08-25 00:38 +0900
Last post2014-08-25 00:38 +0900
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python


Contents

  Challenge to convert a simple IDL code into Python Cleo Drakos <cleo21drakos@gmail.com> - 2014-08-25 00:38 +0900

#76933 — Challenge to convert a simple IDL code into Python

FromCleo Drakos <cleo21drakos@gmail.com>
Date2014-08-25 00:38 +0900
SubjectChallenge to convert a simple IDL code into Python
Message-ID<mailman.13377.1408899960.18130.python-list@python.org>

[Multipart message — attachments visible in raw view] — view raw

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

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web