[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