<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hello,</p>
<p>First let me say that PDAL rocks. I love it.<br>
</p>
<p>I was wondering if there's a way to specify (cast) the data type
of the X,Y,Z dimensions while reading a PLY file (so in effect
override the type specified in the PLY header) in the PDAL
pipeline.</p>
<p>I have an input PLY file (untransformed.ply) that has the header:</p>
<p>ply<br>
format ascii 1.0<br>
[ .... ]<br>
property float x<br>
property float y<br>
property float z<br>
[ .... ]</p>
<p>And coordinate points with ~5 digits of precision.</p>
<p>1.13759 12.1322 162.786 <br>
[ .... ]<br>
</p>
<p>When I try to apply the following transform (add a east/north
offset):<br>
</p>
<p>{<br>
"pipeline": [<br>
"untransformed.ply",<br>
{<br>
"matrix": "1 0 0 576705 0 1 0 5188170 0 0 1 0 0 0 0 1",<br>
"type": "filters.transformation"<br>
},<br>
{<br>
"a_srs": "EPSG:32615",<br>
"filename": "transformed.las",<br>
"offset_x": "576705",<br>
"offset_y": "5188170",<br>
"offset_z": "0"<br>
}<br>
]<br>
}<br>
</p>
<p>There's a loss of precision (I get a "grid-like" output, see
<a class="moz-txt-link-freetext"
href="https://cloud.githubusercontent.com/assets/1951843/25507885/9cd01d12-2b7c-11e7-9c54-0e219dae4f05.png">https://cloud.githubusercontent.com/assets/1951843/25507885/9cd01d12-2b7c-11e7-9c54-0e219dae4f05.png</a>).
I think it's because the matrix transformation code here
<a class="moz-txt-link-freetext"
href="https://github.com/PDAL/PDAL/blob/dd97a033c5d487000e200304a7619e9978de6ae2/filters/TransformationFilter.cpp#L106">https://github.com/PDAL/PDAL/blob/dd97a033c5d487000e200304a7619e9978de6ae2/filters/TransformationFilter.cpp#L106</a>
<u>correctly</u> treats points as floats.<br>
</p>
<p>Changing the PLY header to:</p>
<p>ply<br>
format ascii 1.0<br>
[ .... ]<br>
property double x<br>
property double y<br>
property double z<br>
[ .... ]</p>
Produces the expected output (no grid-like output).<br>
<p>I was wondering if I could force the dimensions to be treated as
a double directly from PDAL? Or perhaps is there interest in
adding a flag (cast to dimension) in PDAL's PLY reader (I'd be
happy to contribute to it)?<br>
</p>
More information about the background of this issue is also
available here: <a class="moz-txt-link-freetext"
href="https://github.com/OpenDroneMap/OpenDroneMap/issues/522">https://github.com/OpenDroneMap/OpenDroneMap/issues/522</a><br>
<br>
Thank you for any information you might have!<br>
<br>
-Piero<br>
<br>
</body>
</html>