> > I'm assuming that I want to use DataVisitor to suss out exactly what > > the Data object holds. Is this correct? > > Maybe not. ... > Take a look at visad.data.netcdf.DataAdapter ... > The end result is that I'm using the Builder design pattern rather than > the Visitor design pattern. I'll check this out tomorrow. > I'm not sure. Thinking about VisAD data objects as arrays might be too > limiting. For example, VisAD Fields can be arbitrarily nested: > > time -> (y -> (x -> z) ) This could be thought of as a 4-dimensional array... > My solution was to define an object that knows how to access the VisAD > data at each level and then to link them together from the innermost > level to the outermost level. See visad.data.netcdf.*Accessor. Once > I've reach a leaf node of the VisAD data object, I then define a netCDF > variable that uses the chain of DataAccessors to access the data values. This won't necessarily work for me; FITS objects can't really be that complicated. The "time -> (y -> (x -> z))" example would probably need to be written as either a bunch of 3-dimensional images or an even larger bunch of 2-dimensional images.