シミュレーションツールから、いくつかの測定ポイントを含むバイナリファイルを取得します。私がする必要があるのは、測定値を解析してリストに格納することです。私もエンコーディングはリトルエンディアンであることを、知っているバイナリデータの解析に関する問題
First 16 bytes are always the same:
Bytes 0 - 7 char[8] Header
Byte 8 u. char Version
Byte 9 u. char Byte-order (0 for little endian)
Bytes 10 - 11 u. short Record size
Bytes 12 - 15 char[4] Reserved
The quantities are following: (for example one double and one float):
Bytes 16 - 23 double Value of quantity one
Bytes 24 - 27 float Value of quantity two
Bytes 28 - 35 double Next value of quantity one
Bytes 36 - 39 float Next value of quantity two
:
ツールのドキュメントによると、ファイルのデータ構造は次のようになります。
私の用途では2つの数量がありますが、どちらも浮きです。
私のコードは、これまでに次のようになります。
QuantityListは前の関数から来て、数量構成が含まれています。それぞれの数量には、名前とデータ型、lenOfBytesというバイトと、値と呼ばれる値の準備リストがあります。 parse関数は、私がmatplotlib
と第1の量をプロットし終えた後
dataType = "<f"
bytes = 4
values=[]
:
は、だから私のユースケースでは2つの量があります。添付された画像から分かるように、解析中に何かが間違っていました。しかし、私は私のせいを見つけることができないのです。
これはデータまたはプログラムの問題であるかどうかを判断する独自のテストデータセットを作成しましたか? –
はい、リファレンスは私によって作成されました。バイナリファイルは正しいです。 – gismo
データ型について考えていますか?docuは、浮動小数点は32ビットであり、倍精度は64ビットの値であることを伝えています。 – gismo