<div dir="ltr"><div class="gmail_quote"><br><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Mon, Oct 3, 2016 at 7:59 AM, Kristian Evers <span dir="ltr"><<a href="mailto:kreve@sdfe.dk" target="_blank">kreve@sdfe.dk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Andrew,<br>
<br>
I think, in the case of version 1.1-1.3 LAS files, that the format of the extrabytes are not specified in the VLR header. It is simply not possible in the format specification, but it is still allowed to attach extra stuff at the end of a data record. How much extra stuff can be calculated from the information in the header about the record size, and the size of an un-altered record of a specific data format. I.e. knowing from the header that a record is 41 bytes and the data record point format 1 is 37 bytes we can infer that there must be 4 extra bytes in a record. What those bytes are is not specified in LAS files before version 1.4. And I guess that makes it hard for PDAL to understand how to treat those bytes, since there’s not a predefined dimension to put it in. Sorry if I am stating the obvious here, this stuff can be a bit confusing I think, so just trying make sure we agree on how to interpret the different LAS specifications.<br></blockquote><div><br></div></span><div>It wasn't clear from your original note the version of the file you were having problems with.  Very simply, the PDAL reader doesn't handle the extra bytes VLR (LASF_Spec/4) in LAS files that aren't version 1.4.  As The Riegl document states:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Please note: All versions will contain the VLR
Header describing the meaning of the extrabytes. As this description mechanism is not
defined expressively in the LAS specifications up to v1.3, existing readers are very likely to
neglect this information.</blockquote><div><br></div><div>The 'LASF_Spec' User ID in the VLR indicates that the VLR is defined in the LAS specification.  If a VLR with 'LASF_Spec' exists but doesn't have a known record ID for that file version, it will be ignored.  This seems reasonable behavior to me.</div><div><br></div><div>If you are trying to read a LAS 1.1 - 1.3 file with extra bytes, you can use the *readers.las* extra_dims option to describe them and load them into PDAL.  At that point you should also be able to write them to a LAS file using the extra bytes in a record by specifying extra_dims=all.  For instance, if you are reading a LAS 1.2 file with extra bytes fields amplitude and pulse width as described in the Riegl document, you should be able to say:</div><div><br></div><div>pdal translate<span style="background-color:rgb(252,252,252);color:rgb(64,64,64);font-family:arial,sans-serif;font-size:12.8px;text-indent:65.2pt"> -i in.laz -o out.laz --readers.las.extra_dims="<wbr>amplitude=uint16,pulse_width=<wbr>uint16" --writers.las.forward=vlr --writers.las.extra_dims=all</span></div><p class="MsoNormal" style="font-size:12.8px;text-indent:65.2pt"><span lang="EN-US" style="font-family:arial,sans-serif;color:rgb(64,64,64);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial;background-color:rgb(252,252,252)"><u></u><u></u></span></p><div><br></div><div>If you also add '--writers.las.minor_version=<wbr>4', the file should be written as LAS 1.4 and the extrabytes VLR should be created.</div></div><span class="HOEnZb"><font color="#888888"><div><br></div></font></span></div></div></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></div>
</div>