Re: LinearNDSet - update

Hi,

Due to a caught yet unhandled Exception, my stack traces were a bit
misleading. 

The problem is that the NetCDF stuff seems to create a RealType with the
name "Temperature" although I have no Temperature field in my file. 

My class which defines a static Domain4D RealTupleType also defines a
static Temperature RealType also called "Temperature" which is
apparently constructed when Domain4D is referenced by the LinearNDSet
constructor, thus a "visad.TypeException: ScalarType: name already
used".

I suppose a solution to this would be an agreed upon set of static
RealTypes and RealTupleTypes (like Longitude...) for things like
Temperature. Oh, God, not another convention! :-) Any other ideas for
avoiding the "name already used" problem?

Doug


Doug Lindholm wrote:
> 
> Hi,
> 
> Before I bang my head against the wall any more on this, does anyone
> know why I might be having a problem using a LinearNDSet for one field
> and using visad.data.netcdf.Plain.open to create another?
> 
> I have terrain: (Longitude, Latitude) -> Elevation  read from a netCDF
> file.
> 
> I have model data: (Longitude, Latitude, Altitude, Time) -> Temperature
> for which I construct a LinearNDSet for the 4D domain.
> 
> If I make the terrain data first, when I make the Set I get:
> 
> java.lang.reflect.InvocationTargetException: visad.TypeException: Set:
> Type must be SetType, RealTupleType or RealType
>         at visad.Set.adjustType(Set.java:198)
>         at visad.LinearNDSet.get_linear1d_array(LinearNDSet.java:136)
>         at visad.LinearNDSet.<init>(LinearNDSet.java:56)
>         at vmet.MM5Data.makeData(MM5Data.java:56)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at vmet.VMETServer.makeData(VMETServer.java:121)
>         at vmet.VMETServer.makeData(VMETServer.java:92)
>         at vmet.VMETServer.start(VMETServer.java:67)
>         at vmet.VMETControl.main(VMETControl.java:50)
> 
> If I make the Set first, when I make the terrain I get:
> 
> Couldn't initialize class QuantityDBManager
> java.lang.reflect.InvocationTargetException:
> java.lang.NullPointerException
>         at visad.data.netcdf.in.Util.<init>(Util.java:122)
>         at visad.data.netcdf.in.Util.newUtil(Util.java:146)
>         at visad.data.netcdf.in.DefaultView.<init>(DefaultView.java:55)
>         at
> visad.data.netcdf.in.NetcdfAdapter.<init>(NetcdfAdapter.java:58)
>         at visad.data.netcdf.Plain.open(Plain.java:153)
>         at vmet.TerrainData.makeData(TerrainData.java:37)
>         at java.lang.reflect.Method.invoke(Native Method)
>         at vmet.VMETServer.makeData(VMETServer.java:121)
>         at vmet.VMETServer.makeData(VMETServer.java:92)
>         at vmet.VMETServer.start(VMETServer.java:67)
>         at vmet.VMETControl.main(VMETControl.java:50)
> 
> Either one works fine when the other is not around.
> 
> Any ideas?
> 
> Thanks,
> Doug
> 
> --
> *----------------------------------------------------------------------*
> | Doug Lindholm, Software Engineer          |  E-mail: lind@xxxxxxxx   |
> | Research Applications Program             |   Phone: 303-497-8374    |
> | National Center for Atmospheric Research  |                          |
> | P.O. Box 3000                             |     There's no place     |
> | Boulder, Colorado 80307-3000              |        like $HOME        |
> *----------------------------------------------------------------------*

-- 
*----------------------------------------------------------------------*
| Doug Lindholm, Software Engineer          |  E-mail: lind@xxxxxxxx   |
| Research Applications Program             |   Phone: 303-497-8374    |
| National Center for Atmospheric Research  |                          |
| P.O. Box 3000                             |     There's no place     |
| Boulder, Colorado 80307-3000              |        like $HOME        |
*----------------------------------------------------------------------*