Thanks very much.
That is just what I had in mind. Is it then possible to convert that to a raster elevation to use for some height calculations?
–Adam
-----Original Message-----
From: Anna Kratochvílová [kratochanna@gmail.com]
Sent: Saturday, March 02, 2013 09:12 AM Pacific Standard Time
To: Adam Dershowitz
Cc: GRASS user list
Subject: Re: [GRASS-user] 3-D plane workflow
On Wed, Feb 27, 2013 at 12:38 AM, Adam Dershowitz
adershowitz@exponent.com wrote:
I would like to be able to put some surfaces in the space over a DEM. In
other words, I have a DEM, and then I need to calculate some regions that
are “keep-out zones” in space above. I can calculate where these surfaces
are fairly easily in Python, for example. So the output of my calculation
would be some points. In the easiest example, it would just be 4 sets of
x,y,z that represent the four corners of a plane.
I would then like to be able to visually show this plane (or multiple
planes), over the DEM, and show that the DEM does, or doesn’t, penetrate
this surface. If it does penetrate, I would like to be able to calculate
the penetration height.The kind of thing that I would like to do, would end up looking like the
examples of Slovakia precipitation that Mitasova has done. Some of those
examples show a DEM, and then a surface that is being penetrated by the DEM.
I have been reading some of the examples for 3D visualization (such as here:
http://grasswiki.osgeo.org/wiki/Help_with_3D), but figured that a post here,
but might get me a little more guidance about a general suggested workflow.In those examples, are the isosurfaces does as 3D rasters? If I just want a
plane in space, and I have the four corner points, is a 3D raster seem like
the best way to draw it? Are those examples displayed with NVIZ or
paraview?Is the following a reasonable approach:
Calculate the surfaces in some code and export as faces:
F 4
0 100 10
50 50 80
0 0 10
0 100 10Then, import into Grass with v.in.ascii.
Next, I would have to convert to a raster: v.to.rast.
Then, I would have to convert to an elevation: r.to.rast3elev
Finally, I could export both the surfaces and the ground DEM with
r3.out.vtk, and visualize with paraview.Is this a reasonable workflow? If I just need a semitransparent surface, is
it necessary for it to be 3D, or can it be done with 2.5D (all I really need
is x,y and elevation, like a DEM). For, example, I might be able to just
skip the raster version and use v.out.vtk? Or maybe I can just use nviz
to visualize what I need, if I can get it to the right format.
If I do convert the plane to a raster, I suppose I can then use mapcalc to
calculate the height difference between the plane and the ground DEM?I am just looking for some general workflow guidance for a good overall
approach to get going. It seems like there are some things that are not as
clear about 3D work in GRASS, and I am just trying to get a reasonable
picture.
Any thoughts are greatly appreciate.Thanks much,
Hi Adam,
I am not sure if this is exactly what you want but have a look at the
attached screenshots. This is done in wxNviz. I created a plane (3
points) with
v.in.ascii -n input=inputFile.txt output=out format=standard separator=" " z=3
The file containes what you already used (F 4 …). Then you can
display it in 3D view. However, the transparency of the surface is not
working well together with the vector (note to developers: the same
issue is in old nviz). You can play with using wire style as in the
screenshot. If it is not clear, just ask for more details.
Regards,
Anna