def trajectory_point_to_str(data, index, with_address=True): coords = "%s, %s" % tuple(data[index][1:]) if with_address: geocoder = Geocoder() address = geocoder.reverse(coords, exactly_one = True).address else: address = None tz = pytz.timezone('US/Pacific') date = num2date(data[index][0], tz=tz) try: dt = (num2date(data[index+1][0]) - date).total_seconds() dist = distance(data[index], data[index+1]) v = ms_to_mph*dist/dt if dt!=0 else 0 if dt < 60: dt_str = "%ds" % dt elif dt < 60*60: dt_str = "%dmin" % (dt/60,) else: dt_str = "%.1fh" % (dt/60/60,) metrics = "%s; %.2fm; %.fmph" % (dt_str, dist, v) except IndexError: metrics = "NO DATA" return "Index:%s; Date:%s; Address:%s; Coords: %s; dt,ds,v:%s" % \ (index, date, address, coords, metrics)