<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Dec 19, 2017 at 3:29 AM, Shane Carey <span dir="ltr"><<a href="mailto:careyshan@gmail.com" target="_blank">careyshan@gmail.com</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"><br><div dir="auto">I have some LiDAR data that was not levelled properly and I was wondering does anybody know of a way of levelling the las files to gps points?</div><br></blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Hi,</div><div class="gmail_extra"><br></div><div class="gmail_extra">if the issue is really just vertical (which is usually the case), you can use v.transform zshift to shift by the given value. For rasters, e.g. DEM based on binning the lidar points with r.in.lidar, you can use r.mapcalc to shift it (e.g. expression "new = old + 2").</div><div class="gmail_extra"><br></div><div class="gmail_extra">The shift can be determined by binning (or even interpolating) the points, followed by querying raster using the GPS points as a vector using v.what.rast, and then by computing the difference using v.db.addcolumn and v.db.update. Finally, you can average the difference using v.db.univar. One (average) values will be usually good enough for lidar point cloud, for UAV point cloud, spatially variable shift might be needed.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Vaclav<br></div><div class="gmail_extra"><br></div></div>