简体   繁体   中英

Python point cloud data to surface fit/function

I have unstructured (taken in no regular order) point cloud data (x,y,z) for a surface. This surface has bulges (+z) and depressions (-z) scattered around in an irregular fashion. I would like to generate some surface that is a function of the original data points and then be able to input a specific (x,y) and get the surface roughness value from it (z value). How would I go about doing this?

I've looked at scipy's interpolation functions, but I don't know if creating a single function for the entire surface is the correct approach? Is there a technical name for what I am trying to do? I would appreciate any suggestions/direction.

I don't know if creating a single function for the entire surface is the correct approach?

I guess this depends on your data. Let's assume the base form of your surface is spherical. Then you can model it as such.

If your surface is more complex then a sphere you might can still model the neighborhood of (x,y) as such. Maybe you could even consider your surface as plain in the near neighborhood of (x,y).

What you are trying to do, can be called surface fitting , or two-dimensional curve fitting . You would be able to find lots of available algorithms by searching for those terms. Now, the choice of the particular algorithm/method should be dictated:

  • by the origin of your data (there are specialized algorithms or variations of more common ones that are tailored for certain application areas)
  • by the future use of your data (depending on what you are going to do with it, maybe you need to be able to calculate derivatives easily, etc)

It is not easy to represent complicated data (especially the noisy one) using a single function. Thus there is a lot of research about it. However, in a lot of applications curve-fitting is very successful and very widely used.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM