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.

Re: Beginner question

Hi Carsten,

You are right. The default for a topographical type
display is to texture map the colors onto a reduced
resolution surface geometry. The purpose is efficiency.
You can prevent this by:

  dispGMC.setTextureEnable(false);

Good luck,
Bill

On Mon, 10 Jul 2006, Carsten Friedrich wrote:

> Hi,
>
> I'm trying to display a field of data samples (x,y)->z in 3D, pretty much
> like the tutorial section 4. My field is a bit bigger, not unrealistically
> big though: 365 x 100 samples.
>
> When I try to render this, some of the peaks are missing. It seems to me
> like the renderer constructs the surface using only every n-th data point
> from my field and interpolates the rest (although actual values would
> exist). This assumption is supported by the program below which fills the
> field with random data: If every peak was drawn correctly no peak would have
> several colour patches in it.
>
> How can I get every peak drawn? (Btw iso-contour map achieves this, but
> limits me in other respects).
>
> Thanks for your help
>
> Carsten
>
> Sample program (contains some unnecessary code, please ignore that):
>
> /*
>  VisAD Tutorial
>  Copyright (C) 2000 Ugo Taddei
>  */
>
> package tutorial.s4;
>
> // Import needed classes
>
> import java.awt.*;
> import java.rmi.*;
> import java.sql.*;
>
> import javax.swing.*;
>
> import com.dtecht.server.database.*;
>
> import visad.*;
> import visad.java3d.*;
> import visad.util.*;
>
> /**
>  * VisAD Tutorial example 4_01 Like example 4_02 but using a ContourWidget
> We
>  * have the functions altitude = h(latitude, longitude) temperature
>  * f(latitude, longitude)
>  *
>  * represented by the MathType ( (latitude, longitude) -> (altitude,
> temperature ) )
>  * Map the altitude to ZAxis and temperature to RGB Run program with "java
>  * P4_02"
>  */
>
> public class P4_02_1 {
>
>
>       // The ContourWidget
>       public P4_02_1(String[] args) throws RemoteException,
> VisADException,
>                       SQLException {
>
>               RealType day = //RealType.getRealType("day");//
>                       RealType.getRealType("day",SI.meter,null);
>
>               RealType age = RealType.getRealType("age",SI.meter,null);
>
>               RealTupleType domain_tuple = new RealTupleType(day, age);
>
>               RealType stddev
> RealType.getRealType("stddev",SI.meter,null);
>               RealType avg = RealType.getRealType("avg",SI.meter,null);
>
>               RealTupleType range_tuple = new RealTupleType(avg, stddev);
>
>               // Create a FunctionType (domain_tuple -> range_tuple )
>               // Use FunctionType(MathType domain, MathType range)
>
>               FunctionType func_domain_range = new
> FunctionType(domain_tuple, range_tuple);
>
>               int NCOLS = 100;
>               int NROWS = 365;
>
>               float[][] flat_samples = new float[2][NCOLS * NROWS];
>
>               for(int i=0; i< NCOLS*NROWS;i++) {
>                       flat_samples[0][i]= (float) Math.random();
>                       flat_samples[1][i]= flat_samples[0][i];
>               }
>
>               // Create Display and its maps
>
>               // A 2D display
>
>               DisplayImplJ3D display = new DisplayImplJ3D("display1");
>
>               // Get display's graphics mode control and draw scales
>
>               GraphicsModeControl dispGMC = (GraphicsModeControl) display
>                               .getGraphicsModeControl();
>               dispGMC.setScaleEnable(true);
>
>               // Create the ScalarMaps: latitude to YAxis, longitude to
> XAxis and
>               // altitude to ZAxis and temperature to RGB
>               // Use ScalarMap(ScalarType scalar, DisplayRealType
> display_scalar)
>
>               ScalarMap latMap = new ScalarMap(day, Display.YAxis);
>               ScalarMap lonMap = new ScalarMap(age, Display.XAxis);
>
>               // Add maps to display
>
>               display.addMap(latMap);
>               display.addMap(lonMap);
>
>               // altitude to z-axis and temperature to color
>
>               ScalarMap altZMap = new ScalarMap(avg, Display.ZAxis);
>               display.addMap(altZMap);
>
>               ScalarMap tempRGBMap = new ScalarMap(stddev, Display.RGB);
>               display.addMap(tempRGBMap);
>
>
>
>               Set domain_set = new Integer2DSet(domain_tuple, NROWS,
> NCOLS);
>       //      Set domain_set = new Linear2DSet(domain_tuple, 0, 364,
> NROWS, 0, 99, NCOLS);
>               FlatField vals_ff = new FlatField(func_domain_range,
> 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 a data reference and set the FlatField as our data
>
>               DataReferenceImpl data_ref = new
> DataReferenceImpl("data_ref");
>
>               data_ref.setData(vals_ff);
>
>               // Add reference to display
>
>               display.addReference(data_ref);
>
>               // Create application window and add display to window
>
>               JFrame jframe = new JFrame("VisAD Tutorial example 4_02");
>               jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>               jframe.getContentPane().setLayout(new BorderLayout());
>               jframe.getContentPane().add(display.getComponent(),
> BorderLayout.CENTER);
>
>               jframe.setSize(1200, 800);
>               jframe.setVisible(true);
>
>       }
>
>       public static void main(String[] args) throws RemoteException,
> VisADException {
>               try {
>                       new P4_02_1(args);
>               } catch (SQLException e) {
>                       // TODO Auto-generated catch block
>                       e.printStackTrace();
>               }
>       }
>
> } // end of Visad Tutorial Program 4_01
>
> --
> Carsten Friedrich
> Dtecht Pty Limited
> Suite 1303, 33 Bligh Street, Sydney NSW 2000
> Tel: +61 2 9220 8204
> Fax: +61 2 9238 0044   http://www.dtecht.com
>
> Dtecht Pty Ltd - Confidential Communication The information contained in
> this e-mail is confidential.  It is intended solely for the addressee. If
> you receive this e-mail by mistake please promptly inform us by reply e-mail
> and then delete the e-mail and destroy any printed copy. You must not
> disclose or use in any way the information in the e-mail. There is no
> warranty that this e-mail is error or virus free. It may be a private
> communication, and if so, does not represent the views of Dtecht and its
> associates.
>
>
>
>
> ==============================================================================
> To unsubscribe visad, visit:
> http://www.unidata.ucar.edu/mailing-list-delete-form.html
> ==============================================================================
>
>

==============================================================================
To unsubscribe visad, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================


  • 2006 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: