Forum

Author Topic: Using a LIDAR dataset from an ofitial source to georeference a Metashape project  (Read 3825 times)

Isaac H. E.

  • Newbie
  • *
  • Posts: 34
    • View Profile
Hello,


Dos any one know if I can use a LAS dataset sampled at 0.5 points per meter from an official source to georeference a successful Metashape project that does not have GCPs nor acurate external orientation parameters.


If that is possible, would you mind to outline the process?


Many thanks


Isaac

SAV

  • Hero Member
  • *****
  • Posts: 710
    • View Profile
Hi Isaac,

There are several ways to do this. Here are two:

A)
1. Find unique objects/features that are clearly visible in both datasets (LAS and your imagery). 10-15 features/objects if possible.
2. Extract the exact X/Y/Z coordinates of these features from the LAS dataset and store them in a CSV file
3. Import the CSV file into Metashape (in reference pane) and use the points to generate new markers
4. Manually link the markers to your images in Metashape

Make sure to adjust the accuracy setting for your markers (default is 0.005m) to match your LIDAR dataset accuracy.

B)
If you want to align your computed dense point cloud to your LAS dataset then you could also to this in CloudCompare (free, open source).
1. Import/open the Metashape dense cloud and LAS file in CloudCompare
2. Manually move/rotate/scale the Metashape dense point cloud so it 'roughly' matches your LAS file
3. Use ICP in TOOLS > REGISTRATION to get the best possible fit. More info on ICP here: https://www.cloudcompare.org/doc/wiki/index.php?title=ICP

All the best.

Best regards,
SAV

 

Isaac H. E.

  • Newbie
  • *
  • Posts: 34
    • View Profile

Hi SAV,

Many thanks for your elaboration, the steeps of the two methods you proposed are very clearly outlined!

Being said that, Method B (Cloud Compare) is not really suitable for me because my intention is to georeference the whole Metashape project and I believe, please correct me if I'm wrong, that If I reimport in to Metashape the point cloud from Cloud compare the project (sparse cloud and other products) would still be missgeoreferenced.

Method A seems to be more suitable to my interests unfortunately I can't really see much detail in the official LAS because it's 1 point for every 2 meters which is very little compared to the Metashape project which is  218 points per square meter.

This is why I was hopping for a least squares method that would be able to use the whole surface area of the project taking in to consideration that the Metashape project just suffers from GNSS positioning errors.

In any case many thanks for your help!

Best regards

Isaac

PS: SAV, shall I understand that you are working with Agisoft?

PS: Shall I understand d


SAV

  • Hero Member
  • *****
  • Posts: 710
    • View Profile
Hi Isaac,

Nope, I am not working for Agisoft but I am a long-term user of Agisoft Photoscan/Metashape. I am also an official Agisoft reseller and provide training courses on best-practice workflows for digital photogrammetry (using Metashape).

Regarding your question. After importing the dense cloud from CloudCompare into Metashape you are still able to compute a mesh from this shifted dense point cloud in Metashape. You can also generate a DEM from it, but you won't be able to compute a texture or orthophotograph from it because the camera locations haven't shifted and are still at their original locations. However, you could use CloudCompare to generate the orthophotgraph (at the resolution of your dense point cloud) by making use of RASTERIZE. http://www.cloudcompare.org/doc/wiki/index.php?title=Rasterize

There would be another solution to your problem, but I fear that would include some programming/python scripting.
A) You could use the Open3D package in a custom python script that you run in Metashape to run ICP inside Metashape instead of externally in CloudCompare. Not a quick/simple solution though.

B) Write your own custom Python script that uses the transformation matrix that you get out of CloudCompare when you perform ICP and then apply these values to everything in your Metashape project.


Last but not least (a low tech approach), you could try and generate a mesh from your LAS file which might help you to pick your ground control points better and then use the technique that I explained in my earlier post. Use CloudCompare to generate a mesh from a point cloud. PLUGINS > PoissonRecon.

All the best.

Best regards,
SAV




Isaac H. E.

  • Newbie
  • *
  • Posts: 34
    • View Profile

Hi SAV,

Outstanding, I have to admit that your responses are tempting but unfortunately right now I don't have the time to dive in to Python programming.

Your help is very much appreciated!

Isaac