davidcaron / pye57

Read and write e57 point clouds from Python
MIT License
71 stars 42 forks source link

E57 element path well formed but not defined (ErrorPathUndefined) #58

Open spro1976 opened 7 months ago

spro1976 commented 7 months ago

I had the error File ".venv\lib\site-packages\pye57\e57.py", line 214, in read_scan xyz = self.to_global(xyz, header.rotation, header.translation) File ".venv\lib\site-packages\pye57\scan_header.py", line 32, in rotation q = Quaternion([e.value() for e in self.node["pose"]["rotation"]]) pye57.libe57.E57Exception: E57 element path well formed but not defined (ErrorPathUndefined) for e57 files created from Recap and also the downloaded e57 sample file Trimble Data - Muliple Scans point cloud from libe57 Does anybody know this topic?

dancergraham commented 7 months ago

Hello, Thanks for the sample file - that should help with debugging. I'm on holiday right now but I can have a look in a week or two if no-one has had the opportunity sooner

Eecornwell commented 4 months ago

I have had a similar error attempting to re-apply a previous header onto a new scan write. Any followup on what this error means?

Eecornwell commented 4 months ago

I was able to solve my issue by commenting out header attributes inside of e57.py (lines starting at 234) that are not currently in my scan headers. I believe temperature, humidity, and datetime were not in my original header that I was attempting to copy over.

meLordlp commented 1 month ago

Hi, I have the same issue. I solved it with changing the code locally. In the scan_header.py in line 31 you should check if rotation is in self.node["pose"]. If not just return Quaternion([1, 0, 0, 0]).elements. Can this be fixed?