NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
Hi Marius,
I am back to a new 3D project and now wonder, how to interpolate a surface from which I know the coordinates of about 100 measurment points? They are taken from the bulge surface of the upper half circle of a tree trunk. My First question is, which kind of set to use? I think it should be Gridded2DSet, because the x and y coordinates would be the domain and z the manifold dimension?
In 3-D the domain dimension is 3 but for a surface the manifold dimension is 2. Defining a surface for your data will be much simpler if you know that one coordinate is a single-valued function of the other 2. For example, in a topography z is a function of x and y. For a tree trunk, it may make sense to use cylindrical coordinates: height, theta (angle) and radius (from the center line of the tree trunk). If you know that radius is a single-valued function of height and theta (which seems naively intuitive), then you can construct a triangular topology in a Delaunay object by passing the 100 (height, theta) pairs to the Delaunay.factory() method, then passing this Delaunay object to a Irregular3DSet constructor, along with the 100 (height, theta, radius) triples. This should construct an Irregular3DSet with manifold dimension = 2.
My second question is, how to interpolate a smooth non-oscillating surface from this points. It should represents the bulge surface in a smooth way, so that CAD shapers can reproduce it.
You can interpolate by passing the Delaunay object and the 100 (height, theta) pairs to an Irregular2DSet constructor, constructing a FlatField of this withradius values in the range, then resmapling this to a Gridded2DSet. You can pull values out of the resampled
FlatField to construct a Gridded3DSet with manifild dimension = 2. I am -->very rusty<-- at all this stuff, so caveat emptor. Good luck, Bill
visad
archives: