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, I have a grid data set which is in McIDAS GRID format with 20 rows and 28 columns. Using the following codes, I got 4 displays shown at URL http://enso.larc.nasa.gov/~helen/. When rendering the displays in X_Y domain (case 'a' and 'c'), they looks similar using either DisplayImplJ2D or DisplayImplJ3D. But the displays in Lat_Lon domain (case 'b' and 'd') are shown differently in J2D and J3D. The display (case 'b') generated in DisplayImplJ2D and Lat_Lon domain looks very strange. Where and how do the triangles come from? In addition, the grids on the 4 edges and 4 corners (case 'd') are been trimmed, that is, only half grid or quarter of grid is displayed. How can I get a display, which is showing full grid on the edges, in LAT_LON domain? Thank you very much in advance. /Helen ---- java code to create the displays ------------------------ McIDASGridDirectory dir; // grid header (64 integers or words) double [ ] gd; // grid data 20 rows by 28 columns CoordinateSystem coordinateSystem = dir.getCoordinateSystem(); RealType Nx = RealType.getRealType("Nx"); RealType Ny = RealType.getRealType("Ny"); RealType value_type = RealType.getRealType("Grid"); RealType [] domain_components = {Nx,Ny}; RealTupleType grid_domain new RealTupleType(domain_components, coordinateSystem, null); Integer2DSet dom_set new Integer2DSet(grid_domain, dir.getColumns(), dir.getRows()); FunctionType grid_type = new FunctionType(grid_domain, value_type); FlatField vals_ff = new FlatField(grid_type, dom_set); double [][] gdata = new double[1][]; gdata[0] = gd; vals_ff.setSamples(gdata,false); DisplayImpl display; ScalarMap latMap; ScalarMap lonMap; ScalarMap rgbMap; char c; switch (c) { case 'a': display = new DisplayImplJ2D("thedisplay"); lonMap = new ScalarMap( Nx, Display.XAxis ); latMap = new ScalarMap( Ny, Display.YAxis ); break; case 'b': display = new DisplayImplJ2D("thedisplay"); lonMap = new ScalarMap(RealType.Longitude, Display.XAxis); latMap = new ScalarMap(RealType.Latitude, Display.YAxis); break; case 'c': display = new DisplayImplJ3D("thedisplay", new TwoDDisplayRendererJ3D()); lonMap = new ScalarMap( Nx, Display.XAxis ); latMap = new ScalarMap( Ny, Display.YAxis ); break; case 'd': display = new DisplayImplJ3D("thedisplay", new TwoDDisplayRendererJ3D()); lonMap = new ScalarMap(RealType.Longitude, Display.XAxis); latMap = new ScalarMap(RealType.Latitude, Display.YAxis); break; } rgbMap = new ScalarMap(value_type, Display.RGB); // Add maps to display display.addMap( lonMap ); display.addMap( latMap ); display.addMap( rgbMap ); GraphicsModeControl dispGMC = (GraphicsModeControl) display.getGraphicsModeControl(); dispGMC.setScaleEnable(true); // Create a data reference and set the FlatField as our data DataReferenceImpl data_ref = new DataReferenceImpl("data_ref"); data_ref.setData( vals_ff ); display.addReference( data_ref ); ------------ end of java code-------------------------------
visad
archives: