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.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped