aardvark-platform / aardvark.algodat

Aardvark.Algodat contains advanced geometric and photometric data structures and algorithms. It is part of the open-source Aardvark Platform for visual computing, real-time graphics, and visualization.
https://aardvarkians.com/
GNU Affero General Public License v3.0
34 stars 6 forks source link

e57: how to access cartesianInvalidState, isIntensityInvalid, rowIndex, columnIndex #19

Closed unitycoder closed 2 years ago

unitycoder commented 2 years ago

i'm reading e57 data in chunks, and it works, but how to access those properties for each point?

cartesianInvalidState, isIntensityInvalid, rowIndex, columnIndex

stefanmaierhofer commented 2 years ago

hi @unitycoder , all the additional properties are definitely parsed in the low-level e57 code, but it may be possible that currently there is no good way to access them. I will look into it and either provide example code, or create an updated package which exposes the additional data.

stefanmaierhofer commented 2 years ago

hi @unitycoder, ok, I will have to actually make some updates to the code and create a new package. Any chance you could provide an e57 file containing above properties, so I can test? cheers, stefan

p.s. you can also directly contact me if you can't publicly share the data (stefan@aardvark.graphics)

unitycoder commented 2 years ago

thanks, maybe this file can be used for testing https://deac-ams.dl.sourceforge.net/project/e57-3d-imgfmt/E57Example-data/Station018.e57

my goal is to able to determine which point is flagged invalid (i guess those are automatically skipped currently?) or to access each point row & column, so that i can use correct original point row & column for plotting 360 image (which currently fails, since some points were removed, so the row & column is not in original order)

stefanmaierhofer commented 2 years ago

There is now a working implementation for reading all available e57 point properties.

https://github.com/aardvark-platform/aardvark.algodat/blob/547800b7cebb86859b0bfb18f713eed49bbfccc9/src/Aardvark.Data.E57/ImportE57.cs#L57

Before I create a new nuget package I still have to do some more testing and also run some extensive performance/regression tests.

stefanmaierhofer commented 2 years ago

Just pushed an updated package to Nuget: https://www.nuget.org/packages/Aardvark.Data.E57/5.1.25 The new ChunksFull method returns E57Chunk which contains all available e57-properties.

@unitycoder, please check out if this works for you.

stefanmaierhofer commented 2 years ago

... ok, pushing 5.1.24 which includes a commit I forgot to merge (Update to FSharp.Core >= 5.0.0)

stefanmaierhofer commented 2 years ago

... and now pushing 5.1.25 which hopefully fixes/completes the commit (@hyazinthh) I previously forgot to merge ... 🙄

stefanmaierhofer commented 2 years ago

unlisted 5.1.23 and 5.1.24 from nuget

unitycoder commented 2 years ago

ok finally tested using Row and Column values, and it works perfectly for my use case, thanks!

i noticed that after upgrading package, had to install this missing lib to project manually: System.Collections.Immutable

stefanmaierhofer commented 2 years ago

ok finally tested using Row and Column values, and it works perfectly for my use case, thanks!

i noticed that after upgrading package, had to install this missing lib to project manually: System.Collections.Immutable

I am happy to hear this!!

The problem with System.Collections.Immutable should be fixed in newer versions (we had some package dependency troubles caused by upgrading various external packages)