Martin Isenburg wrote:
> Hello Sanka,
>
> you have a point cloud with an "arbitrary reference system" and want
> to go to a standard one? Well ... you will have to have some control
> points whose positions are well known so you can "snap" the point
> cloud to a proper geo-referencing? I believe that CloudCompare has
> functionality that allows you to set up such a correspondence to known
> points and then move the entire point cloud accordingly. Until your
> points *are* already transformed into some known reference system,
> LAStools cannot help you ... |-:
Martin is (as usual) correct, you do need a known reference system
before the absolute (x,y,z) position values can mean anything in the
real world.
If you just need approximate (at the 20-50 cm level) accuracy you can
probably do quite well with just 3-4 reference points per LiDAR tile,
picked up by using any existing georeferenced source like a government
map or even Google Earth: Look for house corners or similar details that
are easy to locate on a map or orto photo, and find the same points in
your point cloud. Personally I would probably start by generate a slope
and/or intensity image from the lidar, and then you
rotate/translate/strech/skew the lidar image so that it matches your
reference image as well as possible, while aggregating all the operations.
In the end this will then become a simple linear matrix operation on
each source point, something like
new_x = x * a[0,0] + y * a[0,1] + z * a[0,2] + a[0,3];
new_y = x * a[1,0] + y * a[1,1] + z * a[1,2] + a[1,3];
new_z = x * a[2,0] + y * a[2,1] + z * a[2,2] + a[2,3];
It is very likely that the Z coordinate will be independent of X and Y,
which means that you can skip four of those multiplications but making
it general will not be significantly slower since a good matrix library
will be able to use SIMD vector ops to parallelize the calculations.
Terje
> <
http://groups.google.com/group/lastools/subscribe>
--
- <
Terje.M...@tmsw.no>
"almost all programming can be viewed as an exercise in caching"