object IterativeViewshed
A Spark-enabled implementation of R2 [1] viewshed.
1. Franklin, Wm Randolph, and Clark Ray. "Higher isn’t necessarily better: Visibility algorithms and experiments." Advances in GIS research: sixth international symposium on spatial data handling. Vol. 2. Taylor & Francis Edinburgh, 1994.
- Alphabetic
- By Inheritance
- IterativeViewshed
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
def
apply[K, V](elevation: RDD[(K, V)] with Metadata[TileLayerMetadata[K]], ps: Seq[Viewpoint], maxDistance: Double, curvature: Boolean = true, operator: AggregationOperator = Or, epsilon: Double = 1/math.Pi, scatter: Boolean = true)(implicit arg0: (K) ⇒ SpatialKey, arg1: ClassTag[K], arg2: (V) ⇒ Tile): RDD[(K, Tile)] with Metadata[TileLayerMetadata[K]]
The main entry-point for the iterative viewshed implementation.
The main entry-point for the iterative viewshed implementation. Takes a layer, some source points, and other ancillary information and produces a viewshed layer.
Parameters given in units of meters interact with the layer (approximate) layer resolution, which is computed in this function. That approximation is done by reprojecting keys to EPSG:4326, then converting degrees to meters, then dividing the number of meters by the number of pixels.
- elevation
The elevation layer; pixel values are interpreted as being in units of "meters"
- ps
Viewshed source points; their construction and interpretation is described above
- maxDistance
The maximum distance that rays are allowed to travel; a lower number reduces computational cost. This is given in units of meters.
- curvature
Whether or not to take the curvature of the Earth into account
- operator
The aggregation operator to use (e.g. Or)
- epsilon
Rays within this many radians of horizontal (vertical) are considered to be horizontal (vertical)
- scatter
Whether to allow light to move (one pixel) normal to the ray
- implicit def coordinatesToPoints(points: Seq[Coordinate]): Seq[Viewpoint]