The missing data problem was the first one I actually ran into when
started using VisAD. Our main application generates a 3D display of a
digital elevation model (generally of a river catchment). Missing data
occurs as points which are outside the river catchment, but, so far,
never on the actual surface.
> I have changed the way that VisAD handles missing data and data
> excluded by SelectRange. Specifically, it no longer destroys
> topology unless there are actually missing values for RealTypes
> mapped to spatial DisplayRealTypes (e.g., XAxis, YAxis & ZAxis).
> Instead, missing or de-selected values now force color=black.
> This is ambigous with the situation that color is actually black,
> but I think that users would prefer that ambiguity to displays
> turning into isolated sets of points. I welcome feedback on
> this, if anyone disagrees. You can see the change by running
> 'java DisplayTest 21' in the visad/examples directory.
The other problem of colouring them black, is that they are still there,
and may shade the axis. Furthermore, colouring them black at a user
level would mean the need of a colour table with black.
My approach was the to create another array (as big as the number of
points) and set the elements to null, if the point is a missing one, or
1, if it's a "normal" point. This array is then linked to the Alpha
Map, so that the points outside (those with null) are transparent (i.e.,
The result achieved was the expected. We have the catchment as a
continuous surface. I even managed to have a "surface with holes", by
setting some points inside the surface to null.
While this works, is certainly not the best alternative, because another
array is needed.
I am aware that I might have the same results by using another type of
Set (but I haven't tried it yet).
Perhaps setting internally the missing points to alpha would be a
By the way, a screenshot of the DEM, with missing points mapped to
transparent can be seen at