Trait/Object

geotrellis.raster.summary

GridVisitor

Related Docs: object GridVisitor | package summary

Permalink

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

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

,

Be sure to handle the empty state. This could occur if no points in T are ever visited.

Linear Supertypes
Serializable, Serializable, AnyRef, Any
Known Subclasses
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

    Permalink

    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

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped