NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
I've been wanting to get some data like (n)->(lat, lon, name) onto the screen, but I'm having trouble. I've observed that I can write a program with: 1. RealType->RealType it does work. 2. RealType->(RealType, RealType) it does not work! 3. RealType->(TextType, RealType) it does work. In all these cases the domain type is mapped to Display.XAxis and one of the range types is mapped to Display.Text Attached is my program that implements number 2 above, I would appreciate help getting this to work. The output looks like: java.lang.ClassCastException: visad.Tuple at visad.FieldImpl.getRangeCoordinateSystem(FieldImpl.java, Compiled Code) ... thanks, Andrew. -- Andrew Donaldson Email: A.Donaldson@xxxxxxxxxx Bureau of Meteorology Phone: +61 3 9669 4537 P.O. Box. 1289K/150 Lonsdale St, Fax: +61 3 9669 4128 Melbourne, Australia.
import visad.*; import visad.java2d.DisplayImplJ2D; import java.rmi.RemoteException; import java.awt.*; import javax.swing.*; public class simple { public simple (String []args) throws RemoteException, VisADException { RealType time = new RealType("time"); RealType height = new RealType("height"); DisplayImpl display = new DisplayImplJ2D("display1"); // Maps display.addMap(new ScalarMap(Display.Latitude, Display.XAxis)); display.addMap(new ScalarMap(Display.Longitude, Display.YAxis)); display.addMap(new ScalarMap(height, Display.Text)); /* * Load up the data */ RealType cnameType = height; RealType[] rangeTypes = { RealType.Latitude, RealType.Longitude, cnameType }; RealTupleType rangeTupleType = new RealTupleType(rangeTypes); FunctionType function = new FunctionType(time, rangeTupleType); // Domain int ntimes = 1; Set timeSet = new Linear1DSet(RealType.Generic, 0.0, (double) (ntimes - 1.0), ntimes); FieldImpl field = new FieldImpl(function, timeSet); // Store the range data Data[] data = { new Real(RealType.Latitude, 33.5), new Real(RealType.Longitude, 33.5), new Real(cnameType, 33.5) }; Tuple rangeTuple = new Tuple(rangeTupleType, data); field.setSample(0, rangeTuple); DataReferenceImpl data_ref = new DataReferenceImpl("data_ref"); data_ref.setData( field ); display.addReference( data_ref ); // Create application window, put display into it JFrame jframe = new JFrame("My first VisAD application"); jframe.getContentPane().add(display.getComponent()); // Set window size and make it visible jframe.setSize(300, 300); jframe.setVisible(true); } public static void main(String[] args) throws RemoteException, VisADException { new simple(args); } }
visad
archives: