<div dir="ltr"><div dir="ltr"><div dir="ltr">Hello,</div><div dir="ltr">I am working on importing some NRCS Lidar data into pgPointCloud. One of our requirements is to use 4326 to store the data, since the data covers several UTM zones, and I want a single internal projection. So, using the very convenient Inplace Reprojection Filter, I imported some data, converting from EPSG:26914 to EPSG:4326, very similarly to the example in the docs for the filter. Unfortunately, the Latitude (Y) data doesn't work properly.</div>

<div dir="ltr"><br></div><div dir="ltr">"{"pcid":1,"pt":[90,1,1,0,0,2,6,0,3,-2.29314e+007,0,0,0,-96.9688,-21.4745,264.218,204,0]}"</div><div dir="ltr"><br></div><div dir="ltr">Note, the Latitude is -21.4745 instead of around 36.09. </div>

<div dir="ltr"><br></div><div dir="ltr">I think that I have located the difficulty. If you look at the Schema, you see this:</div><div dir="ltr"><br></div><div dir="ltr">  <pc:dimension></div><div dir="ltr">    <pc:position>15</pc:position></div>

<div dir="ltr">    <pc:size>4</pc:size></div><div dir="ltr">    <pc:description>Y coordinate as a long integer. You must use the scale and offset information of the header to determine the double value.</pc:description></div>

<div dir="ltr">    <pc:name>Y</pc:name></div><div dir="ltr">    <pc:interpretation>int32_t</pc:interpretation></div><div dir="ltr">    <pc:scale>0.00000001000000</pc:scale></div><div dir="ltr">

    <pc:offset>0.000297639019</pc:offset></div><div dir="ltr">    <pc:active>true</pc:active></div><div dir="ltr">    <pc:uuid>0d1d8966-3e1c-4303-86de-69421f04003b</pc:uuid></div><div dir="ltr">

    <pc:parent_uuid>00000000-0000-0000-0000-000000000000</pc:parent_uuid></div><div dir="ltr">  </pc:dimension></div><div dir="ltr"><br></div><div dir="ltr">Why is pc:offset = 0.0002976, when I explicitly asked for an offset of 33 in the pipeline XML?:</div>

<div dir="ltr"><br></div><div dir="ltr"><?xml version="1.0" encoding="utf-8"?></div><div dir="ltr"><Pipeline version="1.0"></div><div dir="ltr">  <Writer type="drivers.pgpointcloud.writer"></div>

<div dir="ltr">    <Option name="connection">host='localhost' dbname='LIDAR2' user='postgres'</Option></div><div dir="ltr">    <Option name="table">qtest4326</Option></div>

<div dir="ltr">    <Option name="srid">4326</Option></div><div dir="ltr">    <Option name="overwrite">true</Option></div><div dir="ltr">    <Filter type="filters.chipper"></div>

<div dir="ltr">      <Option name="capacity">400</Option></div><div dir="ltr">      <Filter type="filters.cache"></div><div dir="ltr">        <Option name="max_cache_blocks">3</Option></div>

<div dir="ltr">        <Option name="cache_block_size">32184</Option></div><div dir="ltr">        <Filter type="filters.inplacereprojection"></div><div dir="ltr">          <Option name="in_srs">EPSG:26914</Option></div>

<div dir="ltr">          <Option name="out_srs">EPSG:4326</Option></div><div dir="ltr">          <Option name="offset_x">-104</Option></div><div dir="ltr">          <Option name="offset_y">33</Option></div>

<div dir="ltr">          <Option name="offset_z">0.0</Option></div><div dir="ltr">          <Option name="scale_x">0.00000001</Option></div><div dir="ltr">          <Option name="scale_y">0.00000001</Option></div>

<div dir="ltr">          <Option name="scale_z">0.001</Option></div><div dir="ltr">          <Reader type="drivers.las.reader"></div><div dir="ltr">            <Option name="filename">NRCSTEST10k.las</Option></div>

<div dir="ltr">            <Option name="spatialreference">EPSG:26914</Option></div><div dir="ltr">          </Reader></div><div dir="ltr">        </Filter></div><div dir="ltr">      </Filter></div>

<div dir="ltr">    </Filter></div><div dir="ltr">  </Writer></div><div dir="ltr"></Pipeline></div><div dir="ltr"><br></div><div dir="ltr">When I increase the scale_x and scale_y to 0.0000001, it works better. To me this seems like the offset isn't being written correctly, and with the smaller scale, the 32 bit int overflows due to the incorrect offset_y value.</div>

<div dir="ltr"><br></div><div dir="ltr">I was able to reproduce this using your UTM17.LAS sample data. Using this pipeline XML:</div><div dir="ltr"><br></div><div dir="ltr"><br></div><div dir="ltr"><Pipeline version="1.0"></div>

<div dir="ltr">  <Writer type="drivers.las.writer"></div><div dir="ltr">    <Option name="filename">UTM17_out.las</Option></div><div dir="ltr">    <Option name="spatialreference">EPSG:4326</Option></div>

<div dir="ltr">    <Filter type="filters.inplacereprojection"></div><div dir="ltr">          <Option name="in_srs">EPSG:32617</Option></div><div dir="ltr">          <Option name="out_srs">EPSG:4326</Option></div>

<div dir="ltr">          <Option name="offset_x">-84.0</Option></div><div dir="ltr">          <Option name="offset_y">38.0</Option></div><div dir="ltr">          <Option name="offset_z">0.0</Option></div>

<div dir="ltr">          <Option name="scale_x">0.0000001</Option></div><div dir="ltr">          <Option name="scale_y">0.0000001</Option></div><div dir="ltr">          <Option name="scale_z">0.01</Option></div>

<div dir="ltr">          <Reader type="drivers.las.reader"></div><div dir="ltr">            <Option name="filename">UTM17.las</Option></div><div dir="ltr">            <Option name="spatialreference">EPSG:32617</Option></div>

<div dir="ltr">          </Reader></div><div dir="ltr">        </Filter></div><div dir="ltr">  </Writer></div><div dir="ltr"></Pipeline></div><div dir="ltr"><br></div><div dir="ltr">Then, running pcinfo on the result, you see this:</div>

<div dir="ltr"><br></div><div dir="ltr">    <Metadata name="scale_x" type="double">1e-007</Metadata></div><div dir="ltr">    <Metadata name="scale_y" type="double">1e-007</Metadata></div>

<div dir="ltr">    <Metadata name="scale_z" type="double">0.01</Metadata></div><div dir="ltr">    <Metadata name="offset_x" type="double">-85.48949644011782</Metadata></div>

<div dir="ltr">    <Metadata name="offset_y" type="double">0.0003427359249286009</Metadata></div><div dir="ltr">    <Metadata name="offset_z" type="double">0</Metadata></div>

<div dir="ltr">    </div><div dir="ltr">One additional item, I requested offsets of -84.0 and 38.0 for the UTM17.las sample, but instead, got -85.4894... and 0.0003427...</div><div dir="ltr"><br></div><div dir="ltr">Shouldn't I get what I asked for?</div>

<div dir="ltr"><br></div><div>Thanks,</div><div dir="ltr"><br></div><div dir="ltr">Roger Bedell</div><div dir="ltr">Coordinate Solutions Inc.</div><div dir="ltr"><br></div><div dir="ltr"><br></div></div>
</div>