<div dir="ltr">LasReader provides the header() function that returns a reference to the LasHeader.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 5, 2022 at 10:50 AM Peder Axensten <<a href="mailto:Peder.Axensten@slu.se">Peder.Axensten@slu.se</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello again,<br>
<br>
I tried the 2.4.2 version and I notice that the copy and move constructors (and operators) are now implemented.<br>
But pdal::LasHeader now lacks the default constructor, so this code still does not work:<br>
<br>
    pdal::LasHeader get_header( const std::filesystem::path & path_ ) {<br>
        pdal::LasHeader          header{};   // error: no matching constructor for initialization of 'pdal::LasHeader'<br>
        pdal::ILeStream          input{ path_.native() };<br>
        input >> header;<br>
        return header;<br>
    }<br>
<br>
What would be the correct way to read the header information from my code?<br>
It would be nice to do it for any point cloud file, but I’m happy to settle for las/laz files.<br>
<br>
Best regards,<br>
<br>
Peder Axensten<br>
Systems Developer<br>
<br>
Remote Sensing<br>
Department of Forest Resource Management<br>
Swedish University of Agricultural Sciences<br>
SE-901 83 Umeå<br>
Visiting address: Skogsmarksgränd<br>
Phone: +46 90 786 85 00<br>
<a href="mailto:peder.axensten@slu.se" target="_blank">peder.axensten@slu.se</a>, <a href="http://www.slu.se/srh" rel="noreferrer" target="_blank">www.slu.se/srh</a><br>
<br>
The Department of Forest Resource Management is environmentally certified in accordance with ISO 14001.<br>
<br>
> On 23 Mar 2022, at 12:34, Andrew Bell <<a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a>> wrote:<br>
><br>
> On Wed, Mar 23, 2022 at 5:14 AM Peder Axensten <<a href="mailto:Peder.Axensten@slu.se" target="_blank">Peder.Axensten@slu.se</a>> wrote:<br>
> Dear list,<br>
><br>
> Previously, I could obtain a pdal::LasHeader through:<br>
><br>
> inline pdal::LasHeader get_header( const std::filesystem::path & path_ ) {<br>
> pdal::LasHeader header;<br>
> pdal::ILeStream input{ path_.native() };<br>
> input >> header;<br>
> return header;<br>
> }<br>
><br>
> But in the latest version of pdal the header copy constructor is implicitly deleted.<br>
><br>
> This issue has already been reported and fixed and will be included in the final 2.4 release:<br>
><br>
>  <a href="https://github.com/PDAL/PDAL/pull/3713" rel="noreferrer" target="_blank">https://github.com/PDAL/PDAL/pull/3713</a><br>
><br>
> The tool needs to process all las-files of a specified directory (and its sud-directories). If I need to read the contents of files that could actually be ignored, it would increase processing time probably tenfolds. Is there a way to avoid this?<br>
>     Maybe a previous stage in the pipeline to filter files based only on their header (bounding box) info?<br>
>     If I implement it as a streaming operation, could I get the bounding box from header info and possibly not stream anything?<br>
><br>
> The bounding box of a LAS file is always stored at offsets 179-226, so you can read them directly if you like, but as I said above, I have re-enabled copying of LasHeader.<br>
><br>
> --<br>
> Andrew Bell<br>
> <a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a><br>
<br>
---<br>
När du skickar e-post till SLU så innebär detta att SLU behandlar dina personuppgifter. För att läsa mer om hur detta går till, klicka här <<a href="https://www.slu.se/om-slu/kontakta-slu/personuppgifter/" rel="noreferrer" target="_blank">https://www.slu.se/om-slu/kontakta-slu/personuppgifter/</a>><br>
E-mailing SLU will result in SLU processing your personal data. For more information on how this is done, click here <<a href="https://www.slu.se/en/about-slu/contact-slu/personal-data/" rel="noreferrer" target="_blank">https://www.slu.se/en/about-slu/contact-slu/personal-data/</a>><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></div>