Packages

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

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GridVisitor
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. 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

  2. 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.