I have been working on generalizing a module that I developed a couple of
years ago in order to add it to OpenDX. The much improved version is about
ready to go, but a couple of questions came up before adding it to CVS.

1) Should the same license agreement be put at the top of the code? Can
I just replace the IBM Copyright with my name?

2) How can I create a help file?  I have not really looked into this, but
any pointers would helpful.

3) What to name the module?  (description below).

4) Anything else that needs to be considered?

Jeff


Scatter2Grid - 

I developed this module when a client had a 136x188x39 grid (nearly 1
million points), but since all the grid points did not contain a
data value, he output 153,000 data values as scattered data.  Attempts to
use the Regrid module on a multiprocessor SGI (Onyx?) were very slow
especially considering that the data originated on a grid. So I developed
a module to look at each scattered postion and put its data value into the
grid data array, with a null value assigned to those grid points without a
data point. Thus I called the module Scatter2Grid. For this data
set I estimated this module ran on the order of 1 million times faster
than using the Regird module.

The first version was rather crude, but I have added several features
through the years, which include:

1) Position and connection dependent grid option
2) Binning - if more than one value are located in the same cell, then the
average value is computed.
3) Vector data and all data types but double can now be used, originally
just scalar float data worked.

The module does not do any interpolation, so if there is no data value
within 1/2 delta length of the position (or within a cell for connection
dependent grid) then a null value is assigned. Thus it does not work for
sparse data, but in that case the Regird module should work fine. It only
works for grids with element type quads or cubes.

Currently, I have two alogorithms to convert the scattered positions into
grid data array index number. The current version does not work with a
skew grid (e.g. delta {[5,-5],[1,8]}). The other algorithm does not allow
the z axis to vary from vertical, i.e. the delta must be of the form
{[a.x,a.y,0],[b.x,b.y,0],[0,0,z]}, but it works for x,y skew grids. 

How important is working with skew grids?

I am currently looking at extending the second algorithm. Otherwise some
simple tests can be used to determine which method to use.

Any comments would be appreciated.





Reply via email to