On Wed, 21 Aug 2002, V. Lakshmanan wrote:
> > I changed the MathType from
> > (radial,gate)->(x,y,z,gatevalue)
> > to:
> > (radial,gate) -> (x,y,z) -> (gatevalue)
> > and attached the x,y,z axes to the Display axes
> > and I do get filled pixels.
Actually, your new MathType is ((x,y,z) -> gatevalue).
A MathType of ((radial,gate) -> ((x,y,z) -> gatevalue))
would require a FieldImpl with FlatFields passed to
its setSamples() method.
> I spoke too soon ... there is still a problem.
> I do get filled pixels in the xy plane, but
> things are not filled along the surface of the
> cone ... instead I get rings.
> There is a snapshot and source code at:
Thanks for this very informative web page about your problem.
> a) I am using x,y,z as the domain, so why is
> the x-y direction working, but not the z-component?
> b) Is there a conical geometry in visad that
> I am overlooking here?
> c) How do I tell the display not to interpolate
> but use the nearest neighbor?
As you said in your previous email, the domain Set of your
FlatField is a Gridded3DSet with manifold dimension = 1.
The rings in your image are actually connected in one big
spiral (you can see the jogs in the spiral at about 2:30
o'clock in your image).
There are several possible ways to see the elevation of
your data. One way is to use your original MathType:
with ScalarMaps radial->Longitude and gate->Radius. Then
in your call to addReference() use the signature that takes
a DataReference and also a ConstantMap array. Pass in a
ConstantMap of your elevation value to Latitude.
If you want the elevation to be part of your data, use the
This is a Tuple combining a Real elevation with your
original FlatField. Then include ScalarMaps
radial->Longitude, gate->Radius and elevation->Latitude.
A different approach is to use the MathType of your
((x, y, z) -> gatevalue)
But use a Gridded3DSet with manfold dimension = 2.
In place of your constructor:
new Gridded3DSet( domainTuple, xyz, xyz.length )
new Gridded3DSet( domainTuple, xyz, num_radials, num_gates )