32 バイトのバイナリ ビッグ エンディアン形式の LiDAR データ セットがあり、それを Python リストまたは配列に変換してから PCD ファイルに変換する必要があります。現在、次のコードを使用していますが、16 バイトのみです。
コードが 32 バイトのビッグ エンディアン ファイルで機能するようにするには、どのような変更を行う必要がありますか? これは、私が作業しているファイルへのリンクです。
import open3d as o3d
import numpy as np
import os
import sys
import struct
size_float = 4
list_pcd = []
with open ("C:\\Users\\wilso\\python\\datasets\\DOTX182013031901004142612.log", "rb") as f:
byte = f.read(size_float*4)
while byte:
x,y,z,intensity = struct.unpack("ffff", byte)
list_pcd.append([x, y, z])
byte = f.read(size_float*4)
np_pcd = np.asarray(list_pcd)
pcd = o3d.geometry.PointCloud()
v3d = o3d.utility.Vector3dVector
pcd.points = v3d(np_pcd)
o3d.io.write_point_cloud("copy_of_fragment.pcd", pcd)