Hi Steve,
> The data points are organized by increasing z. For each z value there
> are a varying number of points ordered by increasing theta. The theta
> values are irregular, the z-values could be easily "adjusted" to be at
> regular intervals. (z is along the long axis of the log, theta measures
> around the ring of a fixed z from a moving center, (x, y, z) are the
> "real" location of the data.)
>
> What I want to see are contour graphs of the p_i's on a 2D surface in
> 3-space, at least initially.
>
> My first guess would be to do an organization like
> ((theta,z)->((x,y,z),(p_1,p_2,p_3))) and having (theta, z) an irregular
> 2D structure. But since the z data could be a regular 1D set, is there
> any advantage to try and exploit this? Currently the number of theta's
> vary from z to z.
I assume you want displays in (x, y, z) space. If you want
contour iso-surfaces of the p_i's then you could use the
MathType you describe, with the ScalarMaps x -> XAxis,
y -> YAxis, z -> ZAxis and p_i -> IsoContour. But this
will involve a 3-D Delaunay tetrahedralization on 125 * 330
points, which will be very slow. As you describe, you might
exploit the z factorization (z sampling need not be uniform)
by reampling on each z slice to a regular grid in (x, y), then
construct a Gridded3DSet in (x, y, z). If you resample to
a relatively high res, the resampling won't lose precision.
Use the MathType:
((x, y, z) -> (theta, p_1, p_2, p_3))
In fact, I'd recommend that MathType even if you don't
resample - it gets rid of the redundant z's in domain
and range, and then you'd only compute the 3-D Delaunay
once, during data construction, rather than every time
you recompute iso-surfaces.
However, if you want contour lines embedded on particular
z slices, you could use the MathType:
(z -> ((x, y) -> (theta, p_1, p_2, p_3)))
with the ScalarMaps x -> XAxis, y -> YAxis, z -> ZAxis,
p_i -> IsoContour, and possibly z-> SelectValue.
Cheers,
Bill