Skip to content

Preparing a simple sand model

Anna Petrasova edited this page Oct 1, 2019 · 4 revisions

Preparing a simple sand model

To start simply, we will show how to prepare a simple model for our first Tangible Landscape application.

  1. Prepare a box such as the one on the picture. Smaller size is better to start with, in our example we have 0.3 x 0.4 m (12 x 16 inch) sized box.

Simple cardboard box

  1. You will need at least 5kg (11 pounds) of kinetic sand, but more is better.

Simple cardboard box with sand

  1. Now we need to make some GIS preparations so that Tangible Landscape knows how to properly georeference the model. There are more ways to do this, we will show one example.

  2. Start GRASS GIS and load a desired DEM, in our case we will use elevation raster from the NC sample dataset. See DEM preparation for ways to bring in your DEM.

  3. Move Map Display to a screen which is being projected on the model and match the size of the window to the model.

  4. Zoom in or out and pan to the desired area and then find and select on the toolbar Various Zoom Options - Set computational region extent from display.

  5. To clip the DEM to match our selected area, run in command console:

    r.mapcalc "dem = elevation"
    
  6. Now we have a new raster dem. Let's compute contour lines to project them on the model (select contour interval, e.g. 1 m):

    r.contour input=dem output=contours step=1
    r.colors map=dem color=elevation
    
  7. If we want to, we can now build the model by hand using the projected colors and contours. In order to know what should be the height difference between the lowest and highest part of our model, we need to compute scale and then scale the elevation difference of the dem. Use Python tab in Layer Manager to compute it (paste line by line):

    model_size = 0.4  # longer side of the model in m, adjust based on your model
    scale = (grass.region()['e'] - grass.region()['w']) / model_size
    diff = (grass.raster_info('dem')['max'] - grass.raster_info('dem')['min']) / scale
    

    The resulting diff is in meters, in our case it's around 15 mm. We will vertically exaggerate the model 2x, so the difference between the lowest and highest point on the model should be 3 cm.

  8. Finally try to build up your model based on the projection. For more automated ways to build models, see Model making.

Model of our DEM