Hi-
I'm trying to use the GridCoordinateSystem class to support
a domain with a time and space varying vertical coordinate.
I have a domain:
(lon, lat, s_rho)
where s_rho is dependent on some other variables. I wanted
to create a CoordinateSystem which would transform
(lon, lat, s_rho) <-> (Longtitude, Latitude, Altitude).
My idea was to create a new domain with at RealTupleType
of (lon,lat, s_rho) and a GridCoordinateSystem to tranform
to (Longitude, Latitude, Altitude). To create the
GridCoordinateSystem, I created a new Gridded3DSet, replacing
the s_rho values with the Altitude values at each point:
GriddedSet defaultSet = createLonLatSRho();
RealTupleType setType = ((SetType)defaultSet.getType()).getDomain();
float[][] samples = defaultSet.getSamples();
samples[2] = getAltitudeValuesAtEachPoint();
RealType[] types = setType.getRealComponents();
RealTupleType newDomainType
new RealTupleType(types[0], types[1], RealType.Altitude)
int[] lengths = defaultSet.getLengths();
Unit[] newDomainUnits = newDomainType.getDefaultUnits();
newDomainUnits[2] = CommonUnit.meters;
Gridded3DSet newDomain = new Gridded3DSet(
newDomainType, samples, lengths[0], lengths[1], lengths[2],
null, newDomainUnits, null, false, false);
CoordinateSystem gcs = new GridCoordinateSystem(newDomain);
RealTupleType newSetType
new RealTupleType(setType.getRealComponents(), gcs, null);
defaultSet = new Gridded3DSet(newSetType, defaultSet.getSamples(),
lengths[0], lengths[1], lengths[2],
null, dset.getSetUnits(), oldErrors, false);
(not sure if the above compiles, just more of a guide to what
I'm trying to do).
What I get is an Exception in RealTupleType:
visad.UnitException: RealTupleType: CoordinateSystem Units must be
convertable with default Units
at visad.RealTupleType.<init>(RealTupleType.java:183)
because in GridCoordinateSystem, the default units are set to
null in the constructor and the DefaultUnits of the set are
(degree, degree, "").
Am I going about this all wrong? Should I use an EmpericalCS
instead?
Don
--
*************************************************************
Don Murray UCAR Unidata Program
dmurray@xxxxxxxxxxxxxxxx P.O. Box 3000
(303) 497-8628 Boulder, CO 80307
http://www.unidata.ucar.edu/staff/donm
"There's someone in my head, but it's not me" Roger Waters
*************************************************************