> On Mar 30, 2017, at 8:10 PM, Greg Parker <gpar...@apple.com> wrote:
> 
>> 
>> On Mar 30, 2017, at 7:09 PM, Carl Hoefs <newsli...@autonomy.caltech.edu 
>> <mailto:newsli...@autonomy.caltech.edu>> wrote:
>> 
>> 
>>> On Mar 30, 2017, at 6:40 PM, Steve Bird <sb...@culverson.com 
>>> <mailto:sb...@culverson.com>> wrote:
>>> 
>>> 
>>>> On Mar 30, 2017, at 8:25 PM, Carl Hoefs <newsli...@autonomy.caltech.edu 
>>>> <mailto:newsli...@autonomy.caltech.edu>> wrote:
>>>> 
>>>> I have megabytes of raw legacy science datasets that I'm trying to read 
>>>> into my app and ingest into an array of doubles. The data is supposed to 
>>>> be organized as a stream of 8-byte doubles. I do not know how these 
>>>> datasets were generated, so I don't know what format (big/little endian, 
>>>> byte swapped, etc) they are in. 
>>>> Here is a hex dump of 4 binary doubles:
>>>> 
>>>> 49BF7DE372533C05 A8C02FE3135B4F09 86C22FE37E630B05 27C2C4E3E258BA08
>>> 
>>> A few minutes of LabVIEW work shows some semi-reasonable values if you swap 
>>> bytes:
>>> BF49E37D5372053C = -0.000790058
>>> C0A8E32F5B13094F = -3185.59
>>> 
>>> Do you know that those values are wrong?
>> 
>> Hmm, the -3185.59 doesn't look right. The data is _supposed_ to be:
>> 
>> 1st double:  Time value, monotonically increasing, usually starting near 
>> 0.00000
>> 2nd double: Sensor value, oscillating waveform, centered about some 
>> arbitrary value
>> 
>> So I'm expecting data like:
>> 
>> 0.011   0.57525634765625
>> 0.012   0.45166015625000
>> 0.013   0.29907226562500
>> 0.014   0.13275146484375
>> 0.015   -0.03173828125000
>> 0.016   -0.18218994140625
>> 0.017  -0.29602050781250
>> 0.018   -0.38055419921875
>> ...etc.
>> 
>> or even:
>> 
>> 0.018    2089.66467285156250
>> 0.020    2087.57525634765625
>> 0.022    2085.45166015625000
>> 0.024    2083.29907226562500
>> 0.026    2082.13275146484375
>> 0.028    2081.03173828125000
>> 0.030    2080.18218994140625
>> 0.032    2080.29602050781250
>> 0.034    2079.38055419921875
>> 0.036    2079.43060302734375
>> 0.038    2078.44738769531250
>> 0.040    2076.43640136718750
>> ...etc
>> 
>> When I manually swap the bytes in my program, I still end up with invalid 
>> values.
>> -Carl
>> 
>> 26 C3 E9 E2 6C 6A 38 0C 46 C3 E9 E2 6C 6A 40 0B 46 C3 E9 E2 83 6A DC 0A 66 
>> C3 E9 E2 83 6A 0E 0B
>> A5 C3 EF E2 AF 6A 40 0B A5 C3 EF E2 C6 6A 40 0B C5 C3 F5 E2 C6 6A 16 0A C5 
>> C3 F5 E2 DC 6A 0E 0B
>> 26 C3 3C E3 9E 62 B2 09 26 C3 3C E3 9E 62 B2 09 26 C3 36 E3 B4 62 BA 08 06 
>> C3 36 E3 CB 62 C2 07
>> 45 C4 76 E3 44 6C 38 0C 25 C4 76 E3 5A 6C 06 0C 25 C4 76 E3 5A 6C DC 0A 05 
>> C4 7D E3 70 6C DC 0A
> 
> 
> Byte-swapped VAX type D might be right, but it's so easy to be off by a 
> factor of 2 here that it's hard to trust any guess.
> 
> Using CFSwapInt64() from CoreFoundation/CFByteOrder.h and from_vax_d8() from 
> https://pubs.usgs.gov/of/2005/1424/ <https://pubs.usgs.gov/of/2005/1424/>, 
> your bytes above are:
> -41.7215935353
> -49.7215935353
> -49.7215935353
> -49.7215935366
> -49.7215935366
> -57.7215935366
> -57.7215935366
> -82.9432328547
> -82.9432328547
> -82.9432328574
> -82.9432328574
> -98.9432786338
> -98.9432786338
> -98.9432786363
> -98.9432786363
> -41.7219100388
> 

Enticing results!  When I use CFSwapInt64(), it does this to the bytes:

- raw bytes: 69BF5DE3 9F530306
- swp bytes: 0603539F E35DBF69
* [04] time_base: 
2400969845129752384725738662412037010364031309686872696685853017835577483033453697155629104443247189829603912142488904070729903714756009814926441089319983058422454699494905107871645497808138444180815872.000000
 

The 'time_base' value is what I get when I printf the swapped-bytes value with 
a %f formatter.
Not sure why you're getting good results...
-Carl

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to