trait GridVisitor[-T <: Grid[Int], +R] extends Serializable
Visitor used to reduce values in a two-dimensional grid T to a single result R
The user should implement concrete subclasses that update the value of result
as
necessary on each call to visit(raster: T, col: Int, row: Int)
.
- Note
Be sure to handle the empty state. This could occur if no points in T are ever visited.
,User implementations intended to be used with
geotrellis.spark.summary.polygonal.RDDPolygonalSummary
must have a zero argument constructor so that new instances can be instantiated automatically. GridVisitor is contravariant in T and covariant in R in the same fashion as Function1. This allows more generic concrete Visitor class implementations to satisfy type constraints for T at the call site, and the inverse is true for R. As a contrived example using GeoTrellis types, where Raster is a subtype of CellGrid: val DoubleVisitor: GridVisitor[CellGrid[Int], Double] = ??? def usesRaster(visitor: GridVisitor[Raster[Tile]], Any]): Unit = ??? usesRaster(DoubleVisitor) will compile. For an alternate explanation on covariance and contravariance that might help to clarify this, see: - https://stackoverflow.com/a/10604305 - https://stackoverflow.com/a/38577878
- Alphabetic
- By Inheritance
- GridVisitor
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
result: R
Called when a result is desired by the parent implementation.
Called when a result is desired by the parent implementation.
No guarantees are made that this will only be called after all visitation is complete. As a result, this should return an iterative result as cells are visited for full compatibility.
- returns
R
-
abstract
def
visit(grid: T, col: Int, row: Int): Unit
Called when the visitor requests a unit of computation for the given col and row.
Called when the visitor requests a unit of computation for the given col and row.
The visitor result should be updated within this method as appropriate for the implementation.
- grid
The grid being visited
- col
The column in the grid being visited
- row
The row in the grid being visited
- See also
polygonal.visitors.TileCombineVisitor and polygonal.visitors.MaxVisitor for an example concrete implementation.