Thanks for the help, but still no luck. I ran as you suggested:
GRASS 6.4> g.region res=1 res3=1 t=75 b=0 tbres=1 GRASS 6.4> r.mapcalc "one = 1" GRASS 6.4> r.mapcalc "two = 2" GRASS 6.4> r.to.rast3elev -l input=one,two elevation=contours,bottom_2 output=volumemap Creating 3D raster map 100% 100% GRASS 6.4> r3.out.vtk input=volumemap output=/tmp/volumemap.vtk 100% GRASS 6.4> Note, I used just the 1-foot grid (it is a US State Plane coordinate system) which perhaps is too fine, but I have a relatively small area (800 x 900 ft) and only need to evaluate 75 feet in thickness and it still works (just slow). It gave me a 3D raster: GRASS 6.4> r3.univar input=volumemap total null and non-null cells: 54000000 total null cells: 40596983 Of the non-null cells: ---------------------- n: 13403017 minimum: 1 maximum: 2 range: 1 mean: 1.51073 mean of absolute values: 1.51073 standard deviation: 0.499885 variance: 0.249885 variation coefficient: 33.089 % sum: 20248304 100% ---------------------- The overall volume (which would be the number of non-null cells, in cubic feet) looks a bit high, but may be correct. However, nothing shows up in paraview or nviz. Screenshot: http://public.sundquist.imapmail.org/paraview-1.png It's a pretty by vtk file (~1 GB), but that shouldn't matter. In paraview, the "Filter" menu is greyed out. I went to tools>create custom filter but there were no "objects" or "properties" to select. I am not too familiar with paraview. Thanks again for the help. J.S. On Mon, 21 Feb 2011 15:57:59 +0100, "Soeren Gebbert" <[email protected]> said: > Hi, > make sure your 3d region is set correctly, like: > > g.region res=200 res3=200 t=2000 b=0 tbres=20 > > This will set a region with a 2d/3d resolution of 200m, the top at > 2000m, the bottom at 0m and a top-bottom-resolution of 20m. > > In this case you will have 100 layer. > > Now fill the voxel cells below your surface and bottom with different > values, first we > create two helper maps which represent the values below the elevation > maps. > > r.mapcalc "one = 1" > r.mapcalc "two = 2" > > Now start the module and set the elevation maps from top to bottom, > the flag -l will fill the cells below the elevation maps with the > assigned values. > > r.to.rast3elev -l input=one,two elevation=surface,bottom output=volumemap > > Your region of interest in the output volume map should have value 1. > > You can use paraview to visualize the voxel map. Use r3.out.vtk to > export the voxel map. > Use the threshold filter in paraview to extract all cells with value 1. > > Example: > r3.out.vtk input=volumemap output=/tmp/volumemap.vtk > paraview --data=/tmp/volumemap.vtk > > Here are two (a bit old) presentations about 3d data handling with > grass and paraview: > http://www-pool.math.tu-berlin.de/~soeren/grass/files/LausanneConferencePresent_soeren_handouts.pdf > http://www-pool.math.tu-berlin.de/~soeren/grass/files/3DWorkshop_soeren_handouts.pdf > > Best regards > Soeren > > 2011/2/21 <[email protected]>: > > I admit I am not a pro (but I have devoured both the 2nd and 3rd > > editions of "the book", and have been using GRASS on and of for about 5 > > years now), but I am lost on this command. > > > > Here is part of what I am trying to do: Let's try showing just a 3D > > raster of the space between the ground surface and the bottom (I have a > > few otehr more intersting applications, too, but this is the simplest). > > > > I put GTiff exports of these files here: > > http://public.sundquist.imapmail.org/bottom_2.tif and > > http://public.sundquist.imapmail.org/ground_surface.tif > > > > I want to generate a 3D raster showing the space between these two > > surfaces. > > > > I tried running this command: > > > > r.to.rast3elev input=ground_surface,AREA_DSM > > elevation=ground_surface,AREA_DSM output=3d1 > > > > and got no errors but got essentially nothing: > > > > r3.univar input=3d1@PERMANENT > > total null and non-null cells: 546 > > total null cells: 469 > > Of the non-null cells: > > ---------------------- > > n: 77 > > minimum: 1 > > maximum: 1 > > range: 0 > > mean: 1 > > mean of absolute values: 1 > > standard deviation: 0 > > variance: 0 > > variation coefficient: 0 % > > sum: 77 > > > > I added to input files because when I tried just one, it said the number > > of input and elevation files must match. Note, I do not care about the > > actual values in the 3D raster, just whether they are null or not. > > > > Sorry if this is a basic question, but if I can get this generated, it > > would be very helpful for explaining something to a client. > > > > Thanks. > > > > J.S. > > > > On Mon, 21 Feb 2011 06:06:37 +0100, "Soeren Gebbert" > > <[email protected]> said: > >> Hi, > >> You can try r.to.rast3elev which will do exactly what you need. > >> > >> Best > >> Soeren > >> > >> Am 21.02.2011 02:38 schrieb <[email protected]>: > >> > Hamish: > >> > > >> > I looked at that before and the only thing I could think of was to use > >> > r.to.rast3 by first generating a whole series of horizontal surfaces > >> > with r.mapcalc, one for each foot of elevation, with each cell getting a > >> > value of "1" if the "elevation" for that particular new surface lied > >> > between the corresponding cell values of the top and bottom surfaces. > >> > Then taking those whole bunch of surfaces and feeding them to > >> > r.to.rast3. But that seemed pretty inelegant. But it may be only way > >> > to do it. I would only be about 25 rasters to generate and then merge. > >> > > >> > J.S. > >> > > >> > On Sun, 20 Feb 2011 17:14:39 -0800 (PST), "Hamish" <[email protected]> > >> > said: > >> >> J.S. wrote: > >> >> > I want to generate a 3D raster (and display in nviz) that is > >> >> > the volume between two 2D elevation rasters. The application > >> >> > is to visualize the subsuraface area that will be subject to > >> >> > environmental remediation. > >> >> > >> >> maybe this summary helps, > >> >> http://grass.osgeo.org/wiki/Help_with_3D > >> >> > >> >> > >> >> Hamish > >> >> > >> >> > >> >> > >> >> > >> > _______________________________________________ > >> > grass-user mailing list > >> > [email protected] > >> > http://lists.osgeo.org/mailman/listinfo/grass-user > > _______________________________________________ > > grass-user mailing list > > [email protected] > > http://lists.osgeo.org/mailman/listinfo/grass-user > > > _______________________________________________ > grass-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/grass-user _______________________________________________ grass-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-user
