Provided by: grass-doc_6.4.3-3_all bug

NAME

       r.horizon  - Horizon angle computation from a digital elevation model.
       Computes horizon angle height from a digital elevation model. The module has two different
       modes of  operation:   1.  Computes  the  entire  horizon  around  a  single  point  whose
       coordinates  are  given  with  the  'coord'  option.  The  horizon height (in radians). 2.
       Computes one or more raster maps of the horizon height in a single direction.   The  input
       for  this  is  the  angle  (in  degrees), which is measured  counterclockwise with east=0,
       north=90 etc. The output is the horizon height in radians.

KEYWORDS

       raster, sun position

SYNOPSIS

       r.horizon
       r.horizon help
       r.horizon [-d] elevin=string  [direction=float]   [horizonstep=float]   [bufferzone=float]
       [e_buff=float]    [w_buff=float]    [n_buff=float]    [s_buff=float]   [maxdistance=float]
       [horizon=string]   [coord=east,north]   [dist=float]   [--verbose]  [--quiet]

   Flags:
       -d
           Write output in degrees (default is radians)

       --verbose
           Verbose module output

       --quiet
           Quiet module output

   Parameters:
       elevin=string
           Name of the input elevation raster map [meters]

       direction=float
           Direction in which you want to know the horizon height

       horizonstep=float
           Angle step size for multidirectional horizon [degrees]

       bufferzone=float
           For horizon rasters, read from the DEM an extra buffer around the present region

       e_buff=float
           For horizon rasters, read from the DEM an extra buffer eastward the present region

       w_buff=float
           For horizon rasters, read from the DEM an extra buffer westward the present region

       n_buff=float
           For horizon rasters, read from the DEM an extra buffer northward the present region

       s_buff=float
           For horizon rasters, read from the DEM an extra buffer southward the present region

       maxdistance=float
           The maximum distance to consider when finding the horizon height

       horizon=string
           Prefix of the horizon raster output maps

       coord=east,north
           Coordinate for which you want to calculate the horizon

       dist=float
           Sampling distance step coefficient (0.5-1.5)
           Default: 1.0

DESCRIPTION

       r.horizon computes the angular height of terrain horizon in radians. It reads a raster  of
       elevation data and outputs the horizon outline in one of two modes:

                      single  point:  as  a series of horizon heights in the specified directions
                     from the given point. The results are written to the stdout.

                      raster: in this case the output is one or more rasters, with each point  in
                     a  raster  giving  the horizon height in a specific direction. One raster is
                     created for each direction.

       The directions are given as azimuthal angles (in degrees), with the angle starting with  0
       towards  East  and moving counterclockwise (North is 90, etc.). The calculation takes into
       account the actual projection, so the  angles  are  corrected  for  direction  distortions
       imposed  by  it. The directions are thus aligned to those of the geographic projection and
       not the coordinate system given by the rows and columns of the raster map. This correction
       implies  that  the  resulting  cardinal  directions represent true orientation towards the
       East, North, West and South. The only exception of  this  feature  is  LOCATION  with  x,y
       coordinate system, where this correction is not applied.

   Flags:
       -d
              Output horizon height in degrees (the default is radians)

   Input parameters:
       The elevin parameter is an input elevation raster map. If the buffer options are used (see
       below), this raster should extend over the area that  accommodate  the  presently  defined
       region plus defined buffer zones.

       The  horizonstep  parameter gives the angle step (in degrees) between successive azimuthal
       directions for the calculation of the horizon. Thus, a value of 5 for the horizonstep will
       give a total of 360/5=72 directions (72 rasters if used in the raster mode).

       The  direction  parameter  gives the initial direction of the first output. This parameter
       acts as an direction angle offset. For example, if you want  to  get  horizon  angles  for
       directions  45  and 225 degrees, the direction should be set to 45 and horizonstep to 180.
       If you only want one single direction, use this parameter to specify desired direction  of
       horizon angle, and set the horizonstep size to 0 degrees.

       The  dist  controls  the  sampling distance step size for the search for horizon along the
       line of sight. The default value is 1.0 meaning that the step size will be taken from  the
       raster  resolution.   Setting  the  value  below  1.0  might  slightly improve results for
       directions apart from the cardinal ones, but increasing the processing load of the  search
       algorithm.

       The maxdistance value gives a maximum distance to move away from the origin along the line
       of sight in order to search for the horizon height. The smaller this value the faster  the
       calculation  but  the  higher  the  risk  that  you  may  miss  a terrain feature that can
       contribute significantly to the horizon outline.

       The coord parameter takes a pair of easting-northing  values  in  the  current  coordinate
       system  and  calculates  the values of angular height of the horizon around this point. To
       achieve the consistency of the results, the point coordinate is aligned to the midpoint of
       the closest elevation raster cell.

       If  an  analyzed  point (or raster cell) lies close to the edge of the defined region, the
       horizon calculation may not be realistic, since it may not see  some  significant  terrain
       features  which  could have contributed to the horizon, because these features are outside
       the region. There are to options how to set the  size  of  the  buffer  that  is  used  to
       increase  the area of the horizon analysis. The bufferzone parameter allows you to specify
       the same size of buffer for all cardinal directions and  the  parameters  e_buff,  n_buff,
       s_buff,  and  w_buff  allow you to specify a buffer size individually for each of the four
       directions. The buffer parameters influence only size of the read elevation map, while the
       analysis in the raster mode will be done only for the area specified by the current region
       definition.

       The horizon parameter gives the prefix of the output horizon raster maps. The raster  name
       of  each  horizon  direction  raster will be constructed as horizon_NNN , where NNN counts
       upwards from 0 to total number of directions. If you use r.horizon  in  the  single  point
       mode this option will be ignored.

       At  the  moment the elevation and maximum distance must be measured in meters, even if you
       use geographical coordinates (longitude/latitude). If your projection is based on distance
       (easting  and northing), these too must be in meters. The buffer parameters must be in the
       same units as the raster coordinates.

METHOD

       The calculation method is based on the method used  in  r.sun  to  calculate  shadows.  It
       starts  at  a  very  shallow angle and walks along the line of sight and asks at each step
       whether the line of sight "hits" the terrain. If so, the angle is increased to  allow  the
       line  of  sight to pass just above the terrain at that point.  This is continued until the
       line of sight reaches a height that is higher than any point in the  region  or  until  it
       reaches  the  border  of  the  region (see also the bufferzone,e_buff, n_buff, s_buff, and
       w_buff). The the number of lines of sight (azimuth  directions)  is  determined  from  the
       direction  and  horizonstep parameters. The method takes into account the curvature of the
       Earth whereby remote features will seem to be  lower  than  they  actually  are.  It  also
       accounts  for  the  changes of angles towards cardinal directions caused by the projection
       (see above).

EXAMPLE

       Single point mode:
       r.horizon elevin=DEM horizonstep=30 direction=15 bufferzone=200 \
           coord=47.302,7.365 dist=0.7 > horizon.out
        Raster map mode (for r.sun):
       # we put a bufferzone of 10% of maxdistance around the study area
       r.horizon elevin=DEM horizonstep=30 bufferzone=200 horizon=horangle \
           dist=0.7 maxdistance=2000

SEE ALSO

        r.sun, r.sunmask, r.los

REFERENCES

       Hofierka J., 1997. Direct solar  radiation  modelling  within  an  open  GIS  environment.
       Proceedings of JEC-GI'97 conference in Vienna, Austria, IOS Press Amsterdam, 575-584

       Hofierka  J.,  Huld T., Cebecauer T., Suri M., 2007. Open Source Solar Radiation Tools for
       Environmental and Renewable Energy Applications, International Symposium on  Environmental
       Software Systems, Prague, 2007

       Neteler  M., Mitasova H., 2004. Open Source GIS: A GRASS GIS Approach, Springer, New York.
       ISBN: 1-4020-8064-6, 2nd Edition 2004 (reprinted 2005), 424 pages

       Project PVGIS, European Commission, DG Joint Research Centre 2001-2007

       Suri M., Hofierka J., 2004.  A New GIS-based Solar Radiation Model and Its Application for
       Photovoltaic Assessments. Transactions in GIS, 8(2), 175-190

AUTHORS

       Thomas Huld, Joint Research Centre of the European Commission, Ispra, Italy
       Tomas Cebecauer, Joint Research Centre of the European Commission, Ispra, Italy
       Jaroslav Hofierka, GeoModel s.r.o., Bratislava, Slovakia
       Marcel Suri, Joint Research Centre of the European Commission, Ispra, Italy © 2007, Thomas
       Huld,   Tomas   Cebecauer,   Jaroslav    Hofierka,    Marcel    Suri    Thomas.Huld@jrc.it
       Tomas.Cebecauer@jrc.it hofierka@geomodel.sk Marcel.Suri@jrc.it

       Last changed: $Date: 2011-11-08 03:29:50 -0800 (Tue, 08 Nov 2011) $

       Full index

       © 2003-2013 GRASS Development Team