private Map<Integer, Set<DBSCANCluster>> toTemporalOrderMap(Iterable<DBSCANCluster> clusters) {
   Map<Integer, Set<DBSCANCluster>> result = new TreeMap<>();
   for (DBSCANCluster cur : clusters) {
     if (result.containsKey(cur.getTimeStamp())) result.get(cur.getTimeStamp()).add(cur);
     else {
       Set<DBSCANCluster> cls = new HashSet<>();
       cls.add(cur);
       result.put(cur.getTimeStamp(), cls);
     }
   }
   return result;
 }
 private boolean validateClusterDistance(DBSCANCluster c1, DBSCANCluster c2) {
   double dist = c1.centroid().distanceFrom(c2.centroid());
   return dist <= _distanceThreshold;
 }