Re: Gridded2DSet

Hi Ugo,

thanks for your answers I will think about them and try, but first can
yout clarify the difference between Gridded2DSet and Linear2DSet? 
I am not really sure which is better to use:

I do have a DEM with the constant distance of 1m between the points, but
it is not rectangular, it looks like this:

    . . .
  . . .
    . . . .
    . . .
    . .

So my first assumption was to use a Linea2DSet and fill the not used
points, which worked with Bills help.
Bill told me I could use Gridded2DSet as well, so I am trying this now.
I am not sure which one is better?
And the real problem, i did not mention before is the following:

I can load my dem into the ArcView 3D-Analyst which results in a rough DGM
and gets finer while zooming in.
The same dataset loaded into my application GISterm looks like the
resolution not that good as in ArcView, 
you can see the screenshots in my homepage:

http://www-ipf.bau-verm.uni-karlsruhe.de/Personen/hilbring/welcome.html

What can cause this effect?

Thanks Desiree

oooooooooooooooooooooooooooooooooooooooooooooooo
Desiree Hilbring

Institut fuer Photogrammetrie und Fernerkundung  
Universitaet Karlsruhe, Germany
email: hilbring@xxxxxxxxxxxxxxxxxxxx             
# 0721 6083676                                   
oooooooooooooooooooooooooooooooooooooooooooooooo


On Thu, 5 Jul 2001, Ugo Taddei wrote:

> Hi Desiree,
> 
> I'm not sure where your NullPointerExeption arises, but I want to make a
> point or 2 about your set, anyway.
> 
> I see you're using a Gridded2DDoubleSet, but with "manifold dimension
> 1". That really means a line in 2D and samples in double precision. I
> know you have a DEM, and this means a surface in 2D (forget for a moment
> that it is 3D, i.e. that you might want to depict your data in 3D; the
> height values will be given by the FlatField, as you know).
> 
> You should use a Gridded2DSet, with manifold dim = 2. That is, 
> 
> Gridded2DSet(MathType type,  float[][] samples, int lengthX, int
> lengthY) 
>          a 2-D set whose topology is a lengthX x lengthY
>          grid, with null errors, CoordinateSystem and Units are
>          defaults from type
> 
> (I'm supposing your x,y coords are floats; if not, stick to a
> Gridded2DDoubleSet, but use the constructor
> Gridded2DDoubleSet(MathType type, double[][] samples, int lengthX, int
> lengthY)
> 
> and not 
> 
> Gridded2DDoubleSet(MathType type, double[][] samples, int lengthX)
> )
> 
> That is, your DEM is organized in a grid, but the interval between
> adjacent points is not necessarily constant (if it were, than you could
> use a Linear2DSet. Your grid has LengthX samples in the x direction and
> LengthY samples in the y direction, i.e., those are the dimensions of
> your grid (your "nCols 9 nRows 5", as one sees from your code).
> 
> The MathType is composed of your eastValues and northValues; just make
> sure you've got them in the right order one constructing the 
> 
> domain_tuple = new RealTupleType(northValues,eastValues);
> 
> I'd personally do the other way around, first east (= x) then north (
> y) but this is arbitrary.
> 
> The "tricky" bit comes in the definition of float[][] samples. In this
> case, it is a float[2][ nCols * nRows ] array. (Remember, when manifold
> dim = 1, you have float[2][ lengthX ], which gives you enough values for
> a line, i.e. a path in 2D space.)
> 
> However, you want a DEM, a surface in 2d space. So you need to input
> LengthX * lengthY (= nRows * nCols) values. These are the
> (northValues,eastValues) coordinates of your DEM and are given by the
> array described above.
> 
> The x-values are in samples[0] and the y-values are in samples[1];
> 
> Let you DEM be
> 
>       3.3   x                x   
> north   2.7       x
> 
>       1.3   x          x     x 
>             0.2  0.3    1.1   1.2
>                    east
> 
> Sampled points are represented bx "x".
> 
> You've got lenX = 3, lenY = 2, and, thus, must input 6 pairs of
> coordinates.
> So, samples is (something like): samples[0]={0.2,1.1,1.2, 0.2,0.3,1.2};
> // east, or x values
>                           and  samples[1]={1.3,1.3,1.3, 3.3,2.7,3.3}; // 
> north, or y values
> 
> Well, to be honest I might have got confused with the ordering of the
> coords. This has not only to do with choosing whether EastValues comes
> before northValues in the RealTupleType, but also to do with the way
> VisAD organises the samples (it is the Fortran way). I'd have to hack a
> bit to get it right (sorry, I'm a mere mortal and errare humanun est ;-)
> so i'll leave that for you to do :-)=)
> 
> The basic ideas here are to choose a Gridded2DSet with lenX and lenY
> parameters, as this will construct the right topology (your DEM surface)
> and to get the samples[0] with the x-values and samples[1] with the
> y-values (or just the other way around ;-)
> 
> Final point is, your gridded set must correspond with a valid grid. Not
> something like you'd find in triangulated irregular network (TIN). For
> that you'd use an Irregular2DSet (and all those Delaunay objects), but I
> reckon, from the list, you know that.
> 
> I truly hope I managed help to clarify the issue a bit.
> 
> Cheers,
> 
> Ugo
> 
> 


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