Hello,

since everybody seems really helpful here, I'm going to ask for some help with this:

I'm reading imaging data that looks like the following:

(header+2*x,y,z, ...)

In other words, there is a line of complex data (two floats) preceded by a header (128 bytes long, 47 fields of different data type (bitmaps, ushort, long ...).

Up until now, I have a loop reading first the header with read (then using unpack), following by readflex to fetch a line). This requires two file accesses per line, and a perl loop. For 12 GB of data that takes a while.

In the header are fields that tell the indices in the big data matrix where this should go to. So I use something like this to populate a big piddle:

data(,x,header(field_y),header(field_z), ...)+=line

The + is there because some lines are acquired multiple times, the lookup of the header is necessary since they can come in arbitrary order and some are missing completely (intentionally).

Now I have the following issues:

1. The data piddle will be bigger than 2GB (see my previous request), each dimension will max out around 10^5!

2. Do you see an effective pdlish way to avoid a loop?

ad 1) For the moment, I can/have to split data into multiple pidlles, not nice but doable. Since the data is going to be processed further (FFT, filtering ..) I have to find the best place to split, which can be hard since the structure of the data varies a lot depending on the experiment.


Thanks

Ingo







_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to