[GRASS-user] 3D Buildings

I am trying to generate a model very much like the screenshot of Trento on the Grass home page using data for the city of Seattle. I have building outlines and heights in a vector map and accurate elevation data in a raster file. I have used v.extrude to construct the buildings. When I try to plot them in nviz, I get odd disjointed floating surfaces rather than the solid looking 3D objects objects in the Trento example. The extruded vector coverage has only faces, no lines, areas, or centroids. Is that normal? I tried extruding both with and without the "trace" flag set.

What commands were used to create the beautiful model of Trento? Was it something other than v.extrude and nviz?

Hi,

cheg01@comcast.net píše v Pá 19. 10. 2007 v 00:43 +0000:

I am trying to generate a model very much like the screenshot of Trento
on the Grass home page using data for the city of Seattle. I have
building outlines and heights in a vector map and accurate elevation
data in a raster file. I have used v.extrude to construct the
buildings. When I try to plot them in nviz, I get odd disjointed
floating surfaces rather than the solid looking 3D objects objects in
the Trento example.

note: NVIZ has problems with concave shapes, like

+--+ +--+
| | | |
| +--+ |
+--------+

you can use paraview for 3D data displaying as well

The extruded vector coverage has only faces, no
lines, areas, or centroids. Is that normal?

faces are to be understood as "3D areas", their centroids are "kernels".
yes, v.extrude generates only faces

I tried extruding both
with and without the "trace" flag set.

this only causes, that the "roofs" of building will "copy" the
elevation. Otherwise, they remain flat.

What commands were used to create the beautiful model of Trento? Was it something other than v.extrude and nviz?

Markus knows more ..
but I would say, something like

1 - prepare map with areas (no lines) of building footprints
2 - each area has to have centroid
3 - update building height in the map attribute table
4 - run v.extrude like

v.extrude in=building_areas out=builidngs3D elevation=your_dem
hcolumn=height_column_in_attribute_table

hope it helps

Jachym
--
Jachym Cepicky
e-mail: jachym.cepicky@gmail.com
URL: http://les-ejk.cz
GPG: http://www.les-ejk.cz/pgp/jachym_cepicky-gpg.pub

cheg01 wrote:

faces are to be understood as "3D areas", their centroids are "kernels".
yes, v.extrude generates only faces

One thing I have never understood: do kernels live on the surface of a 2D plane
in 3D space (so 6 per cube), or inside a volume (the center of a sphere)?

> I tried extruding both
> with and without the "trace" flag set.

Jachym wrote:

this only causes, that the "roofs" of building will "copy" the
elevation. Otherwise, they remain flat.

going back to the earlier thread, I had an idea to remove buildings from the
LIDAR raster data. Make a slope map, set anything with >60-80 degree slope as
NULL. (take away the walls) Next use r.cost starting on known land to isolate
the roofs which do not touch the land, use the cost map as a MASK and make a
layer with only land. Then use r.fillnulls or similar to interpolate over the
holes leaving a elevation surface with no buildings.

?

Hamish

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

The following is what Markus wrote on May 18, 2006:

That's pretty easy:

- get 2D building polygons with heights as attribute column (v.in.ogr)
- get DEM (r.in.gdal)
- get orthophoto (r.in.gdal)
- interpolate dem to highres (I used 2m pixels) with r.surf.rst
- extrude 2D buildings to 3D (v.extrude, give building heights attribute
  column as option and 2m DEM as elevation)
- start nviz with nviz dem2m vect=buildings3d col=orthophoto

that's it!

> If not, is it > possible to use the Trento dataset to create one? One possible use ? if > other details can be worked out ? is to create maps of flood inundation > to show buildings affected by flooding.
  
OK, I couldn't resist :slight_smile:

http://mpa.itc.it/markus/grass61/demos/rlake/
-> see at bottom for new screenshot with flooding
    (needs r.lake which is still not in CVS...)

> I understand one must have the > building data (how was *that* obtained?).
  
The Trento municipality was going out and digitizing all builings.
Another option is to digitize building footprints from orthophoto
(v.digit) and assign a typical height to each building.

If you are lucky, get 3D DXF buildings and import them with
the recently updated v.in.dxf.

> This type of presentation is > very effective in capturing the imagination (as it were) of those > possibly affected by flooding.
  
Fully agreed and done. Except for r.lake everything is in
6.1-CVS.

Only the merge of the flood map with orthophoto could be better
(r.mapcalc will kill the color table, r.patch as well). In February
I did a trick in nviz (see earlier flood screenshots) which I
don't remember today (maybe I loaded the DEM twice or so).

Best,

Markus

I hope this helps!

Tom

cheg01@comcast.net wrote:

I am trying to generate a model very much like the screenshot of Trento on the Grass home page using data for the city of Seattle. I have building outlines and heights in a vector map and accurate elevation data in a raster file. I have used v.extrude to construct the buildings. When I try to plot them in nviz, I get odd disjointed floating surfaces rather than the solid looking 3D objects objects in the Trento example. The extruded vector coverage has only faces, no lines, areas, or centroids. Is that normal? I tried extruding both with and without the "trace" flag set.

What commands were used to create the beautiful model of Trento? Was it something other than v.extrude and nviz?

_______________________________________________
grassuser mailing list
grassuser@grass.itc.it
http://grass.itc.it/mailman/listinfo/grassuser
  
--
Thomas E Adams
National Weather Service
Ohio River Forecast Center
1901 South State Route 134
Wilmington, OH 45177

EMAIL: thomas.adams@noaa.gov

VOICE: 937-383-0528
FAX: 937-383-0033