Page 1 of 1

Close a mesh with a plane to estimate volume

Posted: Fri Nov 06, 2020 5:10 pm
by vik748
Hi,
I have an open mesh of icebergs generated from Agisoft Metashape and I'd like to estimate its volume. Now, the issue is that the mesh is only from the top and the bottom is open. So I think, I need to do is close the mesh using a plane at the water line, I know that the plane needs to be at a certain z. Then I believe, I should be able to estimate the volume using the CloudCompare.
So do I understand this correctly? How do I exactly go about closing the mesh using a plane?

Thanks in advance for the help.

iceberg_underside.png
iceberg_underside.png (283.15 KiB) Viewed 5516 times
The attachment iceberg_underside.png is no longer available

Re: Close a mesh with a plane to estimate volume

Posted: Sat Nov 07, 2020 10:44 am
by daniel
CC is not super strong with meshes.

But actually you could simply convert your mesh to a dense cloud (Edit > Mesh > Sample points - don't hesitate to use a lot of points!).

Then use the 'Tools > Volume > Compute 2.5D volume' with this cloud. You'll be able to set the sea height as 'reference'. And the denser the cloud is, the finer the 'grid step' can be (so as to get the most accurate volume as possible).

Re: Close a mesh with a plane to estimate volume

Posted: Sun Nov 08, 2020 4:12 pm
by vik748
@daniel thanks for the prompt reply.

Do you know any other software that might be able to help close the mesh with the plane? The icebergs have some concave sections along the sides and would be nice to be able to capture that in the volume.

Now, with the 2.5D volume, I did try what you are saying, but I got into a couple interesting issues. As you can see from the images, I don't have a lot of the sea-surface in the model. So to handle the empty cells I have to pick between fill with custom values (-2.0m in my case) or 'interpolate'.
If I pick, fill with custom value, it looks like cells inside the point cloud are also filling with -2.0m resulting in lower total volume.
On the other hand, if I choose interpolate, the edges between the high values and missing seafloor are filled with incorrect intermediate values, causing a different error in the result.
I think, it would be ideal, if there was some way to fill the outside points with -2 and interpolate the inside points.

If you'd like to play with the mesh I have uploaded the .ply file here.

Thanks for maintaining this awesome software and all your help.
Cheers,
Vik

Re: Close a mesh with a plane to estimate volume

Posted: Wed Nov 11, 2020 2:10 pm
by daniel
When you refer to "sea-surface in the model", do you refer to to the small blue "triangle" in the middle? Is it really at sea level?

As you said you wanted to "close the mesh" to compute the volume, I would have simply used the plane "Z = -3.09" as the ground/before level.

This way, you can compute almost the same volume by comparing the dense point cloud sampled from the mesh, and this plane:
iceberg_volume.jpg
iceberg_volume.jpg (163.95 KiB) Viewed 5381 times
Isn't it what you wanted?

P.S.: here I only used 10M. points, therefore I kept a cell size of 0.5 (meters?), but one can use a finer grid if you sample more points.

Re: Close a mesh with a plane to estimate volume

Posted: Thu Nov 12, 2020 4:37 pm
by DA523
Try this
1-open by iceberg_mesh.ply with cloudcompare
2-export vertices into vertices.csv
3-find z column (average and max)
4-import iceberg_mesh.ply with BLENDER (3D software)
5-TAB for edit mode
6-Edit -->Select all

Thin extrude by these commands

EZ-(max-average)
enter

SZ0
enter

F
enter

7- export to stl or ply
8-import stl with cloudcompare then EDIT-->MESH --->VOLUME

also you can replace (MAX-AVERAGE) BY any negative value to hit sea level

However because your model has 5m vertices you need good RAM (32BG ??) and good GPU otherwise BLENDER fails

Re: Close a mesh with a plane to estimate volume

Posted: Tue Dec 01, 2020 6:14 pm
by DA523
bisect.png
bisect.png (105.6 KiB) Viewed 5092 times
please check my trial

CloudCompare
Edit--->Subsample (if old PC)
Edit-->mesh (max edge 23)
Save mesh to STL

Import STL to BLENDER
Extrude (EZ-30)
Bisect at -3.09 (outer , Fill)
Export STL

Find volume from CloudCompare
Edit-->mesh-->volume
=3.3 m

please check attachment

Re: Close a mesh with a plane to estimate volume

Posted: Tue Feb 09, 2021 2:57 am
by vik748
@DA523 Thanks for this detailed response. I didn't get any email about this, so didn't see you had posted a response. This is what I was after, I will give it a try when I have a chance.