I have a dataset consisting of (x,y,z) data that describe a surface, and I need to find the volume of the region bounded by that surface. The data do not follow any mathematical equation, but the volume is roughly of the shape of a parabola that has been rotated about the vertical axis. I have created dummy data to here to represent my scenario:
xydata = Table[{x, x^2 + 8*Cos[x]}, {x, 0, 10, 0.2}];
xyzdata = Flatten[Table[{xydata[[n, 1]]*Cos[\[Theta]],xydata[[n, 1]]*Sin[\[Theta]], xydata[[n,2]]}, {n,1,Length[xydata]}, {\[Theta], 0, 2 Pi, Pi/30}], 1];
xyzdata = DeleteDuplicates[xyzdata];
These example data looks like this:
ListPlot3D[xyzdata]
How do I find the volume enclosed by this dataset? I am suspecting that interpolation might be the easiest path forward,
int = Interpolation[xyzdata,InterpolationOrder->1]
and then numerically integrating the interpolated function, but is there a clever way to find the volume using the Volume
function or something similar?
ImplicitRegion
wherez
is between this surface and the maximalz
and then taking theVolume
orRegionMeasure
of that region. $\endgroup$