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.
Hi Bill and others, due to your suggestion I tried to use Gridded2DSet. I am not sure if I am using it correctly: public void makeSurface() { eastValues = RealType.getRealType("eastValues"); northValues = RealType.getRealType("northValues"); heightValues = RealType.getRealType("heightValues"); try { domain_tuple = new RealTupleType(northValues,eastValues); // Create a FunctionType (domain_tuple -> range_tuple); func_en_h = new FunctionType(domain_tuple, heightValues); // in this case not rectangular // numsamples = linecounter domain_set = new Gridded2DDoubleSet(domain_tuple,coords,east.length); // Get the Set samples to facilitate the calculations //float[][] set_samples = domain_set.getSamples( true ); // We create another array, with the same number of elements of // altitude and temperature, but organized as float[][] flat_samples = new float[1][height.length]; for (int n=0;n<height.length;n++) { flat_samples[0][n]=height[n]; } // Create a FlatField // Use FlatField(FunctionType type, Set domain_set) vals_ff = new FlatField( func_en_h, domain_set); // ...and put the values above into it // Note the argument false, meaning that the array won't be copied vals_ff.setSamples( flat_samples , false ); // Create Display and its maps // A 2D display display = new DisplayImplJ3D("display1"); // Create the ScalarMaps: latitude to XAxis, longitude to YAxis and // altitude to RGB and temperature to IsoContour // Use ScalarMap(ScalarType scalar, DisplayRealType display_scalar) eastMap = new ScalarMap( eastValues, Display.YAxis ); northMap = new ScalarMap( northValues, Display.XAxis ); heightMap = new ScalarMap(heightValues,Display.ZAxis); eastMap.setRange(-1.0, 1.0); northMap.setRange(-1.0, 1.0); heightMap.setRange(-1.0, 1.0); // Add maps to display display.addMap( eastMap ); display.addMap( northMap ); display.addMap( heightMap ); // Create a data reference and set the FlatField as our data data_ref = new DataReferenceImpl("data_ref"); data_ref.setData( vals_ff ); renderer = new DefaultRendererJ3D(); // Add reference to display display.addReferences(renderer,data_ref); display.addDisplayListener(listener); // Create application window and add display to window /* JFrame jframe = new JFrame("VisAD Fenster"); jframe.getContentPane().add(display.getComponent()); // Set window size and make it visible jframe.setSize(300, 300); jframe.setVisible(true); */ // Change [Mon May 28 15:23:31 2001]hilbring: } catch (VisADException ve) { System.out.println("VisADException"); System.out.println(ve.getMessage()); } catch (RemoteException re) { System.out.println("RemoteExcpetion"); System.out.println(re.getMessage()); } } This codes results in an NullpointerException, which I can not find in my code: Loading DGM ... lc 25 hl 25 nCols 9 nRows 5 GIS3DService: DGM loaded successfully! java.lang.NullPointerException at visad.Unit.convertTuple(Unit.java:65) at visad.ShadowFunctionOrSetType.doTransform(ShadowFunctionOrSetType.jav a:1146) at visad.java3d.ShadowFunctionOrSetTypeJ3D.doTransform(ShadowFunctionOrS etTypeJ3D.java:101) at visad.java3d.DefaultRendererJ3D.doTransform(DefaultRendererJ3D.java:9 8) at visad.java3d.RendererJ3D.doAction(RendererJ3D.java:185) at visad.DisplayImpl.doAction(DisplayImpl.java:1006) at visad.ActionImpl.run(ActionImpl.java:225) at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:86) Thanks for your help in advance Desiree oooooooooooooooooooooooooooooooooooooooooooooooo Desiree Hilbring Institut fuer Photogrammetrie und Fernerkundung Universitaet Karlsruhe, Germany email: hilbring@xxxxxxxxxxxxxxxxxxxx # 0721 6083676 oooooooooooooooooooooooooooooooooooooooooooooooo
visad
archives: