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 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, Bill 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 > [NSSL-WRDD/SWATN] http://www.cimms.ou.edu/~kmanross > > "My opinions are my own and not representative of CIMMS, NSSL, > NOAA or any affiliates" > +------------------------------------------------------------+ > >
visad
archives: