Re: Which "Set"?

Hi Kevin,

You can combine ((r, e) -> h) and ((r, e, h) -> s) into one
field with MathType:

  ((r, e) -> (h, s))

You could compute this as a FlatField over some sampling that
covers the range of r and e values at an appropriate resolution.

When the user fixes an e0 value, construct a Gridded2DSet with
manifold dimension = 1, over domain (r, e). Basically, this
would be a set of (r, e0) for a sequence of r values. Then
resample your FlatField ((r, e) -> (h, s)) to this Gridded2DSet,
and display the FlatField returned by this call to resample().

With ScalarMaps h -> YAxis and s -> XAxis, you'll get a scatter
diagram. Given that h and s are both dependent variables with
no simple functional dependency between them, in general this
must be a scatter diagram rather than a line graph. If you have
prior knowledge that there is some simple graph relation between
them, you can extract their values from the resampled FlatField
and construct a FlatField with MathType (h -> s) or (s -> h)
and appropriate topology.

Note in your code 'new Irregular1DSet(h, h_vals )' can be a
Gridded1DSet as long as the h_vals array is sorted (can be
either ascending or descending).

Good luck,

On Wed, 23 Jul 2003, Kevin Manross wrote:

> I have a rather convoluted relationship between the following variables
> independent: range r
> dependent: height h, slantRange s
> "quasi-independent" elevation e (user input)
> h = f(r, e) or in VisAD notation: ( (r, e) -> h )
> s = g(r, e, h), i.e. ( (r,e,h) -> s)
> [so technically, s = g(r, e, f(r, e)) or ( (r, e, (r, e)) -> s )]
> If you are still following this...
> I am using r as any 1D Set and e is user input.
> I want to plot h (YAxis) vs. s (XAxis).
> When the user changes e, I want to recalculate h and s and update the
> 2-Dimensional output (a curve)
> Currently I am able to do everything but update h using the following:
>      r = RealType.getRealType("R", SI.meter, null);
>      (^^^ Just realized that I don't use this, but instead I use:)
>      r_set = new Linear1DSet(0.0, 400.0, LENGTH);
>      h = RealType.getRealType("Height", SI.meter, null);
>      s = RealType.getRealType("SlantRange", SI.meter, null);
>      double e;
>      float[][] h_vals = new float[1][LENGTH];
>      float[][] s_vals = new float[1][LENGTH];
>      (h_vals and s_vals are calculated by r_set)
>      func_h_s = new FunctionType(h, s);
>      h_setI = new Irregular1DSet(h, h_vals );
>      vals_ff_I = new FlatField(func_h_s, h_setI);
>      vals_ff_I.setSamples(s_vals);
>      xMap = new ScalarMap(s, Display.XAxis);
>      yMap = new ScalarMap(h, Display.YAxis);
> These are snippets from my code that hopefully shows he relationship.  I
> can provide more if it would help clear up what I am trying to do.
> Should I arrange my data into Tuples?  Should I use a 2D set - and if I
> do, can I plot it as a curve? (the examples in the tutorial seem to show
> most things in a 2D set as contours of one type or another)
> Thank you very much for your help!!
> -kevin.
> --
> +------------------------------------------------------------+
> Kevin L. Manross      [KD5MYD]               (405)-366-0557
> CIMMS Research Associate               kevin.manross@xxxxxxxx
> "My opinions are my own and not representative of CIMMS, NSSL,
>   NOAA or any affiliates"
> +------------------------------------------------------------+