Hi!
First of all! Sorry, I don't know what priority I have to use for this question...
I'm working with really big point clouds (~50GO [~2Billions points] actually, but they can grow bigger).
From what I can see actually, I have to reserve the space in my vectors in order to call CSetUpData3DPointsData(...), but the problem is that there is so much points in my pointcloud that I don't have enough memory to reserve such space and I always come with a bad_alloc.
My question is : Is there a way to get points bloc by bloc (for example total_size / 4), work on these points, (apply filter or something like that), save them in a file, and then take the next total_size / 4 points, and do the same? That way, I would be able to read any file.
But Actually, I can't find a way to do so ...
Thanks a lot for reading that, and I'm ready to apply every ideas you can come with.
Have a great days!
Best regards!
Raphaël Schim
Hi! I come back here since I though it was resolved, but it appears it's not.
I have a file, let's say 1million points. And I want to read it by bloc of 250k points, so I don't have to reserve for 1million points for xData, yData, zData, isInvalidData, intData, redData, greenData and blueData, but only 250k for each (here I present a simple case, but my files are bigger and reserving memory for all points crash my computer.)
So I tried to create all the good vector, resize them to 250k and then tried this code :
But the problem is that this code always gives me the first 250k points of the file.
in the first iteration, I have the [0 to 250k] points, in the second, I have the [0 to 250k] first point, and so on. I can't get the [250k to 500k] points since SetUpData3DPointsData doesn't change, and always start at the same place.
Is there a way to take the next 250k points, so that in my 4 iteration for loop, I have all the points of the big file?
Put the eReader.SetUpData3DPointsData on the outside of the loop. This
should only be called once for each scan. And of course don't close() it
until you are done.
The FoundationAPI was written by someone else so I don't have the good feel
about that area.
The CompressedVectorReader::seek() function was never completed. So this
forces you to read from the beginning in order to get all the data at the
end. It would have been nice to be able to seek() into the middle but he
left E57 committee for another job and lose interest in finishing this
area. So the only way to access the data at random is to make each block
it's own scan.
Hope that helps.
Stan Coleby
E57 Committee member.
On Wed, Feb 6, 2019 at 8:11 AM Raph Schim kirbx@users.sourceforge.net
wrote:
Related
Bug Reports: #48
Ah Ok! I see!
Thanks a lot for all these precisions, it really helped me. Too bad the
person left before finishing the seek function.
Best regards!
Raphaël S.
Le mer. 6 févr. 2019 à 21:46, Stan Coleby stancoleby@users.sourceforge.net
a écrit :
--
SCHIMCHOWITSCH Raphaël
Related
Bug Reports: #48