[Liblas-devel] Writing VLR?
Jason Woolard
Jason.Woolard at noaa.gov
Mon Nov 3 09:15:30 EST 2008
Thanks Howard. That makes total sense to stick with the proj4 defs. I
was just trying to add something in the VLR description designating the
UTM zone and datum info.
I'm not too familiar with proj definitions but it seems that this:
+proj=tmerc +lon_0=-81 +k=0.9996+x_0=500000 +datum=WGS84
is really just an alias for:
+proj=utm +zone=17 +datum=WGS84
It probably doesn't matter but the latter seems more readable. On the
other hand most users should know -81 = zone 17.
Thanks again
Howard Butler wrote:
> Jason,
>
> The docs are not very forthcoming about this, but the VLRs that you
> are editing are maintained by libLAS and over-/re-written when the
> file is written (meaning any changes you're doing, like tweaking the
> description, are dropped). Any of the VLRs that have record IDs of
> 34735, 34736, or 34737 are maintained by libLAS separately. My
> thinking here was it would be more beneficial to the users to be able
> to just write proj4 and have libLAS maintain the conversion of that to
> the necessary VLRs. I could probably be persuaded that this isn't
> exactly the best idea in the world, but it seemed like the lesser of
> multiple evils at the time.
>
> In summary, if you want to write VLRs, as long as the record IDs
> aren't any of the spatial reference ones, they should stick.
>
> To write data into a VLR from python, you must use a ctypes c_ubyte
> directly. See the VLR test for an example:
>
> http://liblas.org/browser/trunk/python/tests/VLR.txt
>
> Howard
>
>
> On Nov 2, 2008, at 1:27 PM, Jason Woolard wrote:
>
>> hi,
>>
>> The "test" docs on the Trac page have been very helpful but does
>> anyone have an example of writing a VLR. It seems that I can create a
>> VLR and update it (see below) but I can't write it to the file. I
>> tried writing a point to the file which works for updating the proj4
>> header tag but I'm guessing the VLR requires something different.
>>
>> >>> import liblas
>> >>> from liblas import file
>> >>> from liblas import header
>> >>> from liblas import vlr
>> >>> input = liblas.file.File('C:\\liblas_test\\debug_new.las',mode='r')
>> >>> h = input.header
>> >>> h.records_count
>> 2L
>> >>> h.proj4
>> '+proj=tmerc +lat_0=0.000000000 +lon_0=-81.000000000 +k=0.999600
>> +x_0=500000.000 +y_0=0.000 +ellps=WGS84 +units=m '
>> >>> v = h.GetVLR(0)
>> >>> v.recordid
>> 34735
>> >>> v.userid
>> 'LASF_Projection'
>> >>> v.description
>> ''
>> >>> v.description = 'UTM zone 17 meters WGS84'
>> >>> v.description
>> 'UTM zone 17 meters WGS84'
>> >>> output =
>> liblas.file.File('C:\\liblas_test\\debug_out.las',mode='w',header=h)
>> >>> output.write(input.read(0))
>> >>> output.close()
>> _______________________________________________
>> Liblas-devel mailing list
>> Liblas-devel at mail.hobu.net
>> http://mail.hobu.net/mailman/listinfo/liblas-devel
>
More information about the Liblas-devel
mailing list