Hi all,

I'm trying to read the binary output from dctimestep run with the -od
argument. The idea is that the binary files appear to be a lot faster to
save and load than text. However, I'm having a problem reading the binary

Values less than 512 read in just fine. However, binary values greater than
512 are being converted to what look like random values between 31 and 32.
Upon looking at the binary file, it looks like the first three bytes of
each double are zero. Of course, I'm not even sure of the endianness of the

I'm also not sure how to test whether the issue is in my reader or in the
dctimestep output. Here's my C# code to read the values, in case anyone
wants to do a deep dive here:

byte[] bytes = System.Text.Encoding.ASCII.GetBytes(buffer, 0, ncols * ncomp
* sizeof(double));
for (int j = 0; j < ncols; j++)
   double r = BitConverter.ToDouble(bytes, j * ncomp * sizeof(double));
   double g = BitConverter.ToDouble(bytes, (j * ncomp + 1) *
   double b = BitConverter.ToDouble(bytes, (j * ncomp + 2) *
   irradiance.Add(Bright(r, g, b), path);

Any help debugging this would be appreciated!

Radiance-dev mailing list

Reply via email to