Packages

class DistributedClustering[GeolocatedItem] extends Serializable

Performs distributed clustering on a given collection of GeolocatedItem events.

The clustering is performed using a DBSCAN algorithm on each tile with a buffer zone of specified size. The clusters whose center lies on the buffer zone are rejected (as they are included in the output for a different tile).

Limitations:

  • Due to the distribution scheme, this implementation returns incorrect results if there are clusters larger than the buffer zone.
  • DBSCAN identifies clusters by density, so the algorithm works best if all clusters have approximately the same spatial density.
Linear Supertypes
Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DistributedClustering
  2. Serializable
  3. Serializable
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DistributedClustering(neighborhoodRadiusInMeters: Double, minNeighbors: Int, partitionBufferZoneInMeters: Double, partitionTileLevel: HereTileLevel = HereTileLevel(10))(implicit arg0: GeoCoordinateOperations[GeolocatedItem])

    neighborhoodRadiusInMeters

    The radius within which the algorithm searches for the neighboring events

    minNeighbors

    Minimal number of neighbors required to add the event to a cluster

    partitionBufferZoneInMeters

    Width of the zone that extends around each tile in order to support clusters spanning across the tile borders The buffer zone should be set to a larger size than the expected size of clusters

    partitionTileLevel

    The level of tiles used to distribute the clustering

Type Members

  1. type ClusterType = Cluster[GeolocatedItem]

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. def apply(events: RDD[GeolocatedItem])(implicit classTag: ClassTag[GeolocatedItem]): RDD[ClusterType]

    Apply clustering to the given events.

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