[Liblas-devel] Point limit in the software
Howard Butler
hobu.inc at gmail.com
Mon Feb 23 17:55:14 EST 2009
On Feb 23, 2009, at 4:42 PM, Neil Woodhouse wrote:
> Howard,
>
> Some additional points. I am using the C API, so I don't think
> that the repair utility is available to me.
lasinfo's repair operations work by opening the LASWriterH in append
mode. lasinfo.c uses the C API. See the code in lasinfo.c for more
information
> Here some pseudo code to
> indicate my quandary.
>
> Create the header, point and writer
> For all blocks of data
> Process the data block
> Add the point to the LAS file
> Accumulate the bounds of the points
> Write the header
> Close the file
Can you try the following?:
Create the header, point, and writer
For all blocks of data
process
add the point to the LASWriterH with _WritePoint
accumulate the bounds of the points
* Close the file with LASWriter_Destroy when you're done writing your
points.
* Open the file with LASReader_Create and fetch a copy of the
LASHeaderH then LASReader_Destroy
* Set the extents and other items you wish to tweak on this copy.
Don't mess with the point count, VLRs, or any other things that might
cause things to blow up
* Open the file with LASWriter_Create in Append mode using your
header copy
* Destroy the LASWriterH again with LASWriter_Destroy
>
>
> We are not using any VLR records, but do use the set user data
> function (LASPoint_SetUserData) for the point. I understand that
> this is
> an unsigned char.
UserData for 1.1 is a single unsigned char, right? I will update my
test case to try this.
> BTW do you know of any free viewers that can view
> this?
View the user data? I would assume that by definition, only the
application that created it would know how to interpret it.
> The reason for this workflow is that we do not know the number of
> points upfront and don't know the extents of them.
The LASWriter does not know the number of points it will write and
will do so with UpdateHeader for you as you destroy the writer with
LASWriter_Destroy or ~LASWriter when it goes out of scope. As for the
extents, I think the only way to currently update them now is using
the pseudocode I described (it should be the same thing as what's
currently in lasinfo)
Hope this helps,
Howard
More information about the Liblas-devel
mailing list