【发布时间】:2015-07-19 09:28:28
【问题描述】:
我有一个包含飞机位置记录的二进制文件。 每条记录如下:
0x00: Time, float32
0x04: X, float32 // X axis position
0x08: Y, float32 // Y axis position
0x0C: Elevation, float32
0x10: float32*4 = Quaternion (x,y,z axis and w scalar)
0x20: Distance, float32 (unused)
所以每条记录都是 32 字节长。
我想要一个 Numpy 数组。
在偏移量 1859 处有一个 unsigned int 32(4 字节),表示数组元素的数量。就我而言,是 12019。
我不关心(暂时)标题数据(偏移 1859 之前)
数组仅从偏移量 1863 (=1859+4) 开始。
我定义了自己的 Numpy dtype
dtype = np.dtype([
("time", np.float32),
("PosX", np.float32),
("PosY", np.float32),
("Alt", np.float32),
("Qx", np.float32),
("Qy", np.float32),
("Qz", np.float32),
("Qw", np.float32),
("dist", np.float32),
])
我正在使用fromfile读取文件:
a_bytes = np.fromfile(filename, dtype=dtype)
但我没有看到任何参数可以提供给fromfile 以传递偏移量。
【问题讨论】:
标签: python arrays numpy binary