<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<br>
<br>
<div class="moz-cite-prefix">On 7/12/22 15:41, Nicholas Stanley
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:5edd3470-3ceb-dbb9-eea7-9ad50bd74306@luminartech.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<p> </p>
<div class="moz-forward-container">
<p>Greetings,<br>
<br>
My goal is to reproject/align a third party GRS80 point cloud
data source to an existing UTM10 WGS84 (EPSG 32610)
georeferenced point cloud file/"ground truth".<br>
<br>
Running Lasinfo on the third party data source (to be
corrected/reprojected/aligned to Ground Truth) shows the
following:<br>
<br>
<br>
<i>// 'OGC Transformation Record'</i><i><br>
</i><i> WKT OGC COORDINATE SYSTEM:</i><i><br>
</i><i> COMPD_CS["NAD83(2011) / Conus Albers + NAVD88
height",PROJCS["NAD83(2011) / Conus
Albers",GEOGCS["NAD83(2011)",DATUM["NAD83 (National Spatial
Reference System 2011)",SPHEROID["GRS
1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","1116"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","6318"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_center",23],PARAMETER["longitude_of_center",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["meter",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","6350"]],VERT_CS["NAVD88
height",VERT_DATUM["North American Vertical Datum
1988",2005,AUTHORITY["EPSG","5103"]],UNIT["meter",1,AUTHORITY["EPSG","9001"]],AXIS["Up",UP],AUTHORITY["EPSG","5703"]]]
//</i><br>
<br>
<br>
I am able to successfully reproject the file in PDAL so that
the relative 2D alignment in Easting/Northing is corrected -
using a command like this:<br>
<br>
<i><span style="color: rgb(29, 28, 29); font-family:
Slack-Lato, Slack-Fractions, appleLogo, sans-serif;
font-size: 15px; font-variant-ligatures: common-ligatures;
font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: left; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"> //pdal
translate filename.laz filename_utm.laz reprojection
--filters.reprojection.out_srs="EPSG:32610"//</span></i><br>
<br>
<br>
<b>Reviewing the output, this shows proper 2D Grid alignment
between ground truth and third party data, but a delta of
~30M in elevation between the ground planes. </b><b>This
needs to be rectified.<br>
</b></p>
<b>I've recently found this site describing a process to
reproject a .las file in respect to various vertical datums.</b><br>
<p> <br>
<a moz-do-not-send="true"
href="http://www.gadom.ski/2017/05/31/vdatum-with-pdal.html"
class="moz-txt-link-freetext">http://www.gadom.ski/2017/05/31/vdatum-with-pdal.html</a><br>
<br>
<i><span style="color: rgb(17, 17, 17); font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;">//In order to use<span> </span></span></i><i><a
href="https://www.pdal.io/" style="color: rgb(42, 122,
226); text-decoration: none; font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);"
moz-do-not-send="true">PDAL</a></i><i><span style="color:
rgb(17, 17, 17); font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"><span> </span>to convert
vertical coordinates to a new vertical datum, we’ll need
to fetch the appropriate geoid. PDAL uses<span> </span></span></i><i><a
href="http://proj4.org/" style="color: rgb(42, 122, 226);
text-decoration: none; font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);"
moz-do-not-send="true">proj.4</a></i><i><span
style="color: rgb(17, 17, 17); font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"><span> </span>under the hood,
and proj.4 accepts geoid’s in NOAA VDatum’s<span> </span></span></i><i><code
class="language-plaintext highlighter-rouge"
style="font-size: 15px; border: 1px solid rgb(232, 232,
232); border-radius: 3px; background-color: rgb(238, 238,
255); padding: 1px 5px; color: rgb(17, 17, 17);
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration-thickness:
initial; text-decoration-style: initial;
text-decoration-color: initial;">gtx</code></i><i><span
style="color: rgb(17, 17, 17); font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"><span> </span>file format. We
can fetch the 12B geoid from the<span> </span></span></i><i><a
href="https://vdatum.noaa.gov/download.php" style="color:
rgb(42, 122, 226); text-decoration: none; font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);"
moz-do-not-send="true">VDatum download website</a></i><i><span
style="color: rgb(17, 17, 17); font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto,
Helvetica, Arial, sans-serif, "Apple Color
Emoji", "Segoe UI Emoji", "Segoe UI
Symbol"; font-size: 16px; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;">. Inside the 12B zipfile there
is a file called<span> </span></span></i><i><code
class="language-plaintext highlighter-rouge"
style="font-size: 15px; border: 1px solid rgb(232, 232,
232); border-radius: 3px; background-color: rgb(238, 238,
255); padding: 1px 5px; color: rgb(17, 17, 17);
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: 400; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration-thickness:
initial; text-decoration-style: initial;
text-decoration-color: initial;">g2012b_conus.gtx</code></i><span
style="color: rgb(17, 17, 17); font-family: -apple-system,
BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica,
Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
font-size: 16px; font-style: normal; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: 400;
letter-spacing: normal; orphans: 2; text-align: start;
text-indent: 0px; text-transform: none; white-space: normal;
widows: 2; word-spacing: 0px; -webkit-text-stroke-width:
0px; background-color: rgb(253, 253, 253);
text-decoration-thickness: initial; text-decoration-style:
initial; text-decoration-color: initial; display: inline
!important; float: none;"><i>; this is the geoid for the
Continental United States (CONUS). We’ll use this file to
convert our data.//</i><br>
<br>
<br>
</span>I've downloaded the VDatum collection as stated - That
said, I've been unable to get the process to work properly.<br>
<br>
<i>//pdal translate filename.laz filename_utm.laz reprojection
--filters.reprojection.out_srs="+init=EPSG:32610
+geoidgrids=~/Downloads/vdatum/g2012b_conus.gtx"
--writers.las.a_srs=EPSG:32610+4326</i><i><br>
</i><i>(pdal translate Error) GDAL failure (1) SetCompoundCS()
fails, vertical component is not VERT_CS.</i><i><br>
</i><i>(pdal translate writers.las Error) GDAL failure (1)
PROJ: proj_crs_get_coordinate_system: Object is not a
SingleCRS//</i><br>
<br>
<br>
Does anyone have any Tips/Pointers as to how to resolve/debug
this issue? <br>
<br>
Thanks.</p>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
pdal mailing list
<a class="moz-txt-link-abbreviated" href="mailto:pdal@lists.osgeo.org">pdal@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/pdal">https://lists.osgeo.org/mailman/listinfo/pdal</a>
</pre>
</blockquote>
<br>
<br>
--writers.las.a_srs=EPSG:32610+4326<br>
<br>
There may be more going on here, but "+4326" is likely not correct.
You need a vert_cs, something like 5703, there. 4326 is a
horizontal CS. I'm not sure if there is a way to explicitly state
you want ellipsoid heights. In my experience that's the default if
a separate vertical component isn't given.<i><br>
<br>
</i>Also if you have recent PDAL built against recent PROJ (6+) you
probably want to pull the TIFF files from cdn.proj.org (instead of
gtx) for the vertical datum conversion.<i><br>
<br>
</i><br>
</body>
</html>