-
Notifications
You must be signed in to change notification settings - Fork 147
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
r.viewshed.exposure: Version for GRASS 7 (#720)
Co-authored-by: zofie-cimburova <zofie.cimburova@ningis03.nina.no>
- Loading branch information
1 parent
e0d664f
commit 7708cf7
Showing
7 changed files
with
1,932 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
MODULE_TOPDIR = ../.. | ||
|
||
PGM = r.viewshed.exposure | ||
|
||
include $(MODULE_TOPDIR)/include/Make/Script.make | ||
|
||
default: script |
220 changes: 220 additions & 0 deletions
220
src/raster/r.viewshed.exposure/r.viewshed.exposure.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,220 @@ | ||
<h2>DESCRIPTION</h2> | ||
|
||
<em>r.viewshed.exposure</em> computes visual exposure to given exposure | ||
source(s) using weighted (optional) parametrised (optional) cumulative viewshed. | ||
|
||
<h3>The algorithm</h3> | ||
The processing workflow of the module consists of five steps: | ||
<ol> | ||
<li>Random sampling of exposure source raster map with vector points, | ||
</li> | ||
<li>Calculating binary viewshed for each exposure source point,</li> | ||
<li>Optional parametrisation of the binary viewshed,</li> | ||
<li>Optional weighting of the (parametrised) viewshed,</li> | ||
<li>Cumulating the (weighted) (parametrised) viewsheds.</li> | ||
</ol> | ||
|
||
<div align="center" style="margin: 10px"> | ||
<a href="r_viewshed_exposure_workflow.png"> | ||
<img src="r_viewshed_exposure_workflow.png" width="489" height="545" alt="r.viewshed.exposure workflow" border="0"> | ||
</a><br> | ||
<i>Processing workflow</i> | ||
</div> | ||
|
||
<h4>1. Random sampling of exposure source raster map with vector points</h4> | ||
To improve computational efficiency, the exposure source raster map is | ||
randomly sampled with defined density (0-100%; option <b>sample_density</b>). | ||
In general, lower sampling densities lead to lower | ||
accuracy, higher uncertainty of the result and lower processing time, | ||
while higher sampling densities lead to higher accuracy, lower uncertainty of | ||
the result and longer processing time. Alternatively, it is possible to replace | ||
the exposure source raster map with own vector map of exposure source points | ||
(option <b>sampling_points</b>). | ||
|
||
|
||
<h4>2. Binary viewshed for each exposure source point</h4> | ||
A binary viewshed for each exposure source point is calculated using | ||
<a href="r.viewshed.html">r.viewshed</a> module. The height of exposure | ||
source point above the surface is 0m. The height of observer point (exposure | ||
receiver) above the surface is specified by option <b>observer_elevation</b>. | ||
Viewshed radius (range of visual exposure) is specified by option | ||
<b>max_distance</b>. | ||
|
||
|
||
<h4>3. (optional) Parametrisation of the binary viewshed</h4> | ||
The module supports different parametrization functions to better reflect | ||
human visual perspective by accounting for the | ||
variable contribution of the exposure source pixels to visual | ||
exposure depending on their distance, slope and aspect relative to the observer | ||
(option <b>function</b>). | ||
Four parametrisation functions are implemented: | ||
<i>distance decay function</i>, <i>fuzzy viewshed function</i>, | ||
<i>visual magnitude function</i> and <i>solid angle function</i>. | ||
<p> | ||
|
||
In <i>distance decay function</i>, the contribution of an exposure source pixel | ||
<i>xi</i> to visual exposure at the observer pixel decreases in proportion to | ||
the square of distance between the exposure source pixel and the observer: | ||
<i>D(xi) = A/v<sup>2</sup></i>; <i>A</i> is the area of the exposure source | ||
pixel, <i>v</i> is the distance between the exposure source pixel and | ||
the observer. | ||
See Grêt-Regamey et al. (2007) and Chamberlain and Meitner (2013) for more | ||
details. | ||
<p> | ||
|
||
In <i>fuzzy viewshed function</i>, the contribution of an exposure source pixel | ||
<i>xi</i> to visual exposure at the observer pixel depends on the distance | ||
between the exposure source pixel and the observer and the radius of perfect | ||
clarity. | ||
See Fisher (1994) and Ogburn (2006) for more details. | ||
<p> | ||
|
||
In <i>visual magnitude function</i>, the contribution of an exposure source pixel | ||
<i>xi</i> to visual exposure at the observer pixel depends on the pixel's slope, | ||
aspect and distance relative to the observer. | ||
See Chamberlain and Meitner (2013) for more details. | ||
<p> | ||
|
||
In <i>solid angle function</i>, the contribution of an exposure source pixel | ||
<i>xi</i> to visual exposure at the observer pixel is calculated as a solid | ||
angle, i.e. the area (in sterradians) of the observer's eye retina covered by | ||
the exposure source pixel. | ||
See Domingo-Santos et al. (2011) for more details. | ||
|
||
|
||
<h4>4. (optional) Weighting of the (parametrised) viewshed</h4> | ||
Weighting of the individual (parametrised) viewsheds enables modelling | ||
variable intensities of the exposure sources. The individual viewsheds are | ||
multiplied by values extracted from the weights raster map | ||
(option <b>weights</b>) at the exposure source points. | ||
|
||
|
||
<h4>5. Cumulating the (weighted) (parametrised) viewsheds</h4> | ||
After each iteration, the partial viewsheds are cumulated (added), | ||
resulting in a raster of (weighted) (parametrised) cumulative viewshed. | ||
This raster represents visual exposure to the exposure source. | ||
|
||
|
||
<h3>Memory and parallel processing</h3> | ||
Options <b>memory</b> specifies the amount of memory allocated for | ||
viewshed computation. Option <b>nprocs</b> specifies the number of cores used in | ||
parallel processing. In parallel processing, the computation of individual | ||
viewsheds is randomly distributed across the specified cores. | ||
|
||
|
||
<h2>EXAMPLES</h2> | ||
Computation of visual exposure to major roads in South-West Wake county, | ||
North Carolina. Input data are a terrain model and a raster map of major roads | ||
from NC dataset. Viewshed parametrisation function is set to none (example 1) | ||
and solid angle (example 2). Sampling density is set to 50%, | ||
exposure range to 2km. | ||
|
||
<div class="code"><pre> | ||
# set computation region to terrain model | ||
g.region raster=elevation@PERMANENT | ||
|
||
# calculate visual exposure | ||
# no viewshed parametrisation function (binary viewshed) | ||
r.viewshed.exposure input=elevation@PERMANENT | ||
output=exposure_roadsmajor_b | ||
source=roadsmajor@PERMANENT | ||
observer_elevation=1.50 | ||
max_distance=2000 | ||
sample_density=50 memory=5000 nprocs=25 | ||
|
||
# calculate visual exposure | ||
# solid anfle viewshed parametrisation function | ||
r.viewshed.exposure input=elevation@PERMANENT | ||
output=exposure_roadsmajor_s | ||
source=roadsmajor@PERMANENT | ||
observer_elevation=1.50 | ||
max_distance=2000 | ||
function=solid_angle | ||
sample_density=50 memory=5000 nprocs=25 | ||
|
||
# scale solid angle values for visualisation purposes | ||
# (see Domingo-Santos et al., 2011) | ||
r.mapcalc expression=exposure_roadsmajor_s_rescaled = | ||
if(exposure_roadsmajor_s@user1>=0.2*3.1416,1,1/ | ||
(-1* log(exposure_roadsmajor_s@user1 /(2*3.1416)))) | ||
|
||
</pre></div> | ||
|
||
<div align="center" style="margin: 10px"> | ||
<a href="r_viewshed_exposure_example_binary.png"> | ||
<img src="r_viewshed_exposure_example_binary.png" | ||
width="601" height="747" | ||
alt="Example of r.viewshed.exposure (1)" border="0"> | ||
</a><br> | ||
<i>Example of r.viewshed.exposure (1)</i> | ||
</div> | ||
|
||
<div align="center" style="margin: 10px"> | ||
<a href="r_viewshed_exposure_example_solid_angle.png"> | ||
<img src="r_viewshed_exposure_example_solid_angle.png" | ||
width="601" height="747" | ||
alt="Example of r.viewshed.exposure (2)" border="0"> | ||
</a><br> | ||
<i>Example of r.viewshed.exposure (2)</i> | ||
</div> | ||
|
||
<h2>TODO</h2> | ||
<ul> | ||
<li>Implement variable exposure source height.</li> | ||
<li>Implement possibility to switch between absolute and relative values | ||
of visual exposure (now absolute).</li> | ||
</ul> | ||
|
||
<h2>REFERENCES</h2> | ||
|
||
<ul> | ||
<li>Cimburova, Z., Blumentrath, S., 2022. | ||
Viewshed-based modelling of visual exposure to urban greenery - | ||
an efficient GIS tool for practical applications. | ||
<i>Landscape and Urban Planning</i> 222, 104395. | ||
<a href="https://doi.org/10.1016/j.landurbplan.2022.104395"> | ||
https://doi.org/10.1016/j.landurbplan.2022.104395 </a> </li> | ||
</li> | ||
<li>Chamberlain, B.C., Meitner, M.J., 2013. | ||
A route-based visibility analysis for landscape management. | ||
<i>Landscape and Urban Planning</i> 111, 13-24. | ||
<a href="https://doi.org/10.1016/j.landurbplan.2012.12.004"> | ||
https://doi.org/10.1016/j.landurbplan.2012.12.004 </a> </li> | ||
<li>Domingo-Santos, J.M., de Villarán, R.F., Rapp-Arrarás, Í., de Provens, | ||
E.C.-P., 2011. | ||
The visual exposure in forest and rural landscapes: | ||
An algorithm and a GIS tool. | ||
<i>Landscape and Urban Planning</i> 101, 52-58. | ||
<a href="https://doi.org/10.1016/j.landurbplan.2010.11.018"> | ||
https://doi.org/10.1016/j.landurbplan.2010.11.018</a></li> | ||
<li>Fisher, P., 1994. | ||
Probable and fuzzy models of the viewshed operation, | ||
in: Worboys, M.F. (Ed.), <i>Innovations in GIS</i>. | ||
Taylor & Francis, London, pp. 161-176.</li> | ||
<li>Grêt-Regamey, A., Bishop, I.D., Bebi, P., 2007. | ||
Predicting the scenic beauty value of mapped landscape changes | ||
in a mountainous region through the use of GIS. | ||
<i>Environment and Planning B: Planning and Design</i> 34, 50-67. | ||
<a href="https://doi.org/10.1068/b32051"> | ||
https://doi.org/10.1068/b32051</a></li> | ||
<li>Ogburn, D.E., 2006. | ||
Assessing the level of visibility of cultural objects in past landscapes. | ||
<i>Journal of Archaeological Science</i> 33, 405-413. | ||
<a href="https://doi.org/10.1016/j.jas.2005.08.005"> | ||
https://doi.org/10.1016/j.jas.2005.08.005</a></li> | ||
</ul> | ||
|
||
|
||
<h2>SEE ALSO</h2> | ||
|
||
<em> | ||
<a href="r.viewshed.html">r.viewshed</a>, | ||
<a href="r.viewshed.cva.html">r.viewshed.cva</a> | ||
<a href="r.survey.html">r.survey</a> | ||
</em> | ||
|
||
|
||
<h2>AUTHORS</h2> | ||
|
||
Zofie Cimburova, <a href="https://www.nina.no">NINA</a><br> | ||
Stefan Blumentrath, <a href="https://www.nina.no">NINA</a> |
Oops, something went wrong.