Re: strategy tips?

Hi John,

> I am trying to write an educational application using the VisAD
> spreadsheet.  As such I need to conceal some of the detail of generating
> visualizations with the spreadsheet, in order to let students focus on
> the lesson at hand.  At the same time, I need to allow the concealment
> to be "peeled away" later if the student wishes.

Sounds like a great project.

> At any rate, a typical problem I have is this:  In a lesson about
> climate, the student is initially presented with many datasets, each
> sampled over the same geographic region, perhaps at many times.  (i.e.
> temperature and precipitation in the United States, sampled monthly over
> a year.)  So they will start out seeing many cells showing these data as
> simple rasters.  I'd like to make a toggle button called "Drape," which,
> when pressed, switches the display of a cell from 2D raster, to a 3D
> depiction of the data draped over an elevation model.  Since every
> dataset will have the same elevation model associated with it, it seems
> redundant to include it in every cell, all the time.  On the other hand,
> if I keep the elevation dataset separate, until "Drape" is called, at
> which point I Combine the elevation data with the existing dataset, I
> may get bogged down having to perform all those Combines.  What's the
> best strategy?

If you were doing this in an application where you could control
the code, you could arrange for many FlatFields to share the same
memory storage for the elevation.  On Russ' mailing list archive
the message at:

  http://www.unidata.ucar.edu/staff/russ/visad/msg00466.html

gives the general pattern for doing this.  It is possible that
you might do this by customizing the SpreadSheet or by calling
custom functions in SpreadSheet formulas, as described in:

  http://www.unidata.ucar.edu/staff/russ/visad/msg00730.html

> An addendum to the above problem is this: I want students to be able to
> build some simple SpreadSheet functions - Subtract, Average, etc...  IF
> the elevation data WERE present in every cell, I would want to "ignore"
> it when these calculations were done.  That is, if a student wanted to
> subtract one cell from another, it would be pointless to do this to
> their elevation data (which would just produce a set of zeroes.)  So, I
> guess I would need to "intercept" the String containing the function and
> rebuild it so that the appropriate data are Extracted before the
> calculation, the re-Combined with elevation after the calculation, as
> in:
> 
> A1 - A2
> 
> becomes:
> 
> COMBINE( (EXTRACT(A1,0) - EXTRACT(A2,0)), EXTRACT(A1,1))
> 
> Is this what I really want to be doing, or is there a smarter way?  If
> this is how I should do it, at what stage should it happen, at the "top
> level" where the text is initially parsed by the GUI, or somewhere
> deeper?  Would it be better to just extend FancySSCell to somehow deal
> with this (as well as the first problem)?

I think that you can do this using custom functions in
SpreadSheet formulas.

Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html