I'm doing a multi-point viewshed analysis for an urban site in GrassGIS based on a LIDAR DSM raster maps, to test for a series of proposed buildings. The site has existing building on them.

Is there way of "levelling" the site to the surrounding ground level itself, so that the calculated height would be that of "proposed building above ground", not proposed building above existing buildings would be used?

In my ignorance I have tried to export the DSM to PNG, then then painted the site in in Photoshop, with the colour of the surrounding terrain, hoping that I could re-import it and use it as a basis for viewshed. On import, the PNG is broken into r. g. b . channels, not giving me one map.

I have access to Autocad,so I was hoping there would be a way of drawing up the site boundary as a vector, and using that as a boundary to redefine the level inside the site. Or any other approaches inside of GrassGIS that achieve the same result.

  • Set buildings to Nan/Nodata, fill no data
    – BERA
    Jul 17, 2020 at 10:14
  • @BERA Could you explain how to do that, or point to a tutorial? Jul 17, 2020 at 10:53
  • Just digitize the building footprint and make this a no-data area (combine two maps with r.patch).
    – markusN
    Jul 19, 2020 at 21:18

1 Answer 1


So taking @markusN s hint I figured out how to do what I needed to get done.

  1. Draw up the site boundary in AutoCad, and import as DXF.
  2. Use r.mask vector=v-map-name to create a raster mask from the site boundary.
  3. Use r.patch input=DSM_Map,Site_boundary, combining the DSM with the mask.
  4. Set computational region to the mask (required to avoid accidental level change elsewhere).
  5. Use r.null setnull=0 (the colour of the masked area is set to 0m) to cut out the boundary.
  6. Use r.null null=14.5 (14.5m being the terrain level) to fill the site boundary.
  7. reset boundary and g.rename/g.remove the mask.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.