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 Desiree, Desiree Hilbring wrote: > > > 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 > > > > Hi Ugo, I am getting confused, I tried to implement the above, > > //double[][] coords = new double[2][east.length]; > coords[0] = new double[east.length]; > coords[1] = new double[north.length]; > for (int i=0;i<coords[0].length;i++) { > coords[0][i]=east[i]; > coords[1][i]=north[i]; > } > > for (int j=0;j<coords[0].length;j++) { > System.out.println("e "+coords[0][j]); > } > for (int j=0;j<coords[1].length;j++) { > System.out.println("n "+coords[1][j]); > } > > and they look like your samples[0] and samples[1] > > now you are saying i have an array double[2][east*north], that would be > 3*4 in your example? No, I'm not saying that. The values on the (imaginary) axes above DO NOT mean that there's necessarily more than one value sampled at that point. > How would I fill this array? Picture this (a line - or path - joining 3 points): 5| x 4| / north 3| / 2| x---x 1|____________ 001234567890 east How'd you describe this with a VisAD Data object? I'd say, the domain is 2D, and you'd hopefully agree with me. Then I'd say, it could be described with a Gridded2DSet with manifold dimension = 1. For that use a Gridded2DSet(MathType type, float[][] samples, int lengthX) where MathType is as usual, lengthX = 3 and samples is samples = new float[2][lengthX] which is samples = new float[][]{ {3, 7, 9}, // east {2, 2, 5}}; // north Is this clear? Now suppose you have a grid, which represents your DEM. Say, every point is 2 meters away from the next point in the x-direction and 3 meters away in the y-direction. That is in text mode ;-) 5| x-x-x 4| | | | north 3| | | | 2| x-x-x 1|____________ 001234567890 east This is obviously a Linear2DSet( domainType, 4, 8, 3, 2, 5, 2) X starts at 4, ends at 8 and has 3 samples in this direction. Y starts at 2, ends at 5 and has 2 samples. In total, 3 times 2 equals 6 samples. Yes, 6 points. You sould provide 6 values for x and 6 values for y. That's what you do in a Gridded set. Here, however, the Linear set does that for you. The same could be described by a Gridded2DSet( domainType, new float[][]{{4,4,6,6,8,8},{2,5,2,5,2,5}}, 3, 2); And this is no linear, but only a gridded set: 5| x-x--- x 4| | | / north 3| | | / 2| x-x-x 1|____________ 001234567890123 east Gridded2DSet( domainType, new float[][]{{4,4,6,6,8,11},{2,5,2,5,2,5}}, 3, 2); What about this? --x 5| x- ---| | 4| | x / north 3| | | / 2| x-x---x 1|_______________ 00123456789012345 east This is obviously a Gridded2DSet( domainType, new float[][]{{4,4,6,7,10,3},{2,5,2,4,2,6}}, 3, 2); (Please, note that the x's are connected forming a grid of rectangular topology but not geometry.) And this is an irregular 2d set x 5| x x 4| x x x x north 3| x 2| x x x 1|_______________ 00123456789012345 east > Sorry, I am just feeling stupid, I do not get that! > > Thanks Desiree I never claimed this is straight forward. Again, I hope it'll become clear to you. If still not, you should go out and enjoy this marvellous sunshine. Take a linear grill with you and while your barbecue isn't ready, think of what would happen if you were to warp the grid. You'd still have as many intersections (compare the lengthX and lengthY parameters in the gridded and linear set constructors), i.e. "number of points". Cheers, Ugo
visad
archives: