
//
// SimpleTime.java
//

import java.io.IOException;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.rmi.RemoteException;
import visad.*;
import visad.util.*;
import visad.java2d.*;

public class SimpleTime {
  public SimpleTime()
         throws VisADException, RemoteException {
    RealType[] rtaRange = new RealType[] {RealType.Latitude, RealType.Longitude};
    RealTupleType rttRange = new RealTupleType(rtaRange);
    RealTupleType rttTime = new RealTupleType(new RealType[] {RealType.Time});
    FunctionType function = new FunctionType(rttTime, rttRange);

    double[][] daaTimes = new double[][] {{1.0d, 2.0d, 3.0d}};
    double[] daRange1 = new double[] {-20.0d, 150.0d};
    double[] daRange2 = new double[] {-21.0d, 151.0d};
    double[] daRange3 = new double[] {-22.0d, 152.0d};
              
    RealTuple rt1 = new RealTuple(rttRange, daRange1);
    RealTuple rt2 = new RealTuple(rttRange, daRange2);
    RealTuple rt3 = new RealTuple(rttRange, daRange3);
    
    Gridded1DSet set = new Gridded1DDoubleSet(rttTime, daaTimes, 3);
    
    FlatField  field = new FlatField(function, set);

    field.setSample(0, rt1);
    field.setSample(1, rt2);
    field.setSample(2, rt3);

    Real rTime = new Real(RealType.Time, 1.0d);
    Real[] raTime = new Real[] {rTime};
    RealTuple rtTime = new RealTuple(raTime);
    System.out.println("Time = " + rtTime);
    System.out.println(" evaluated time = " + field.evaluate(rtTime));
  }

  public static void main(String[] args) throws VisADException, RemoteException {
    SimpleTime st = new SimpleTime();
  }
}


     