def compute_speed(self, row):
     pt0 = row['prev_pt']
     pt1 = row['geometry']
     if type(pt0) != Point:
         return 0.0
     if pt0 == pt1:
         return 0.0
     if self.crs == '4326':
         dist_meters = measure_distance_spherical(pt0, pt1)
     else:  # The following distance will be in CRS units that might not be meters!
         dist_meters = measure_distance_euclidean(pt0, pt1)
     return dist_meters / row['delta_t'].total_seconds()
 def _compute_distance(self, row):
     pt0 = row['prev_pt']
     pt1 = row['geometry']
     if type(pt0) != Point:
         return 0.0
     if pt0 == pt1:
         return 0.0
     if self.is_latlon():
         dist_meters = measure_distance_spherical(pt0, pt1)
     else:  # The following distance will be in CRS units that might not be meters!
         dist_meters = measure_distance_euclidean(pt0, pt1)
     return dist_meters
Exemple #3
0
 def _compute_speed(self, row):
     pt0 = row['prev_pt']
     pt1 = row['geometry']
     if type(pt0) != Point:
         return 0.0
     if type(pt1) != Point:
         raise ValueError('Invalid trajectory! Got {} instead of point!'.format(pt1))
     if pt0 == pt1:
         return 0.0
     if self.is_latlon():
         dist_meters = measure_distance_spherical(pt0, pt1)
     else: # The following distance will be in CRS units that might not be meters!
         dist_meters = measure_distance_euclidean(pt0, pt1)
     return dist_meters / row['delta_t'].total_seconds()
Exemple #4
0
 def get_distance_error(self):
     if self.input_crs.is_latlong():
         return measure_distance_spherical(self.truth, self.prediction)
     else:
         return measure_distance_euclidean(self.truth, self.prediction)