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.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()