def fix_trajectory_timezone(filename, folder_to_put, change_filename=True): ''' Add timezone to the trajectory ''' # http://www.saltycrane.com/blog/2009/05/converting-time-zones-datetime-objects-python/ traj = read_compressed_trajectory(filename, with_timezone=False) tz = timezone('US/Pacific') for i in range(traj.shape[0]): d = num2date(traj[i, 0]) d = d.replace(tzinfo = None) d = tz.localize(d) traj[i, 0] = date2num(d) result_filename = os.path.split(filename)[-1] if change_filename: file_date = num2date(date_str_to_num_converter_no_timezone(result_filename)) file_date = file_date.replace(tzinfo = None) file_date = tz.localize(file_date) result_filename = num_to_date_str_converter(date2num(file_date), with_timezone=True) resulting_path = os.path.join(folder_to_put, result_filename) write_compressed_trajectory(traj, os.path.join(folder_to_put, result_filename), with_timezone=True) return resulting_path
def test_trajectory_reader_2(): folder = tempfile.mkdtemp() s3 = S3('driverpete-storage') filename = s3.download("_testing/testing_raw_0", folder) trajectory = read_compressed_trajectory(filename) write_compressed_trajectory(trajectory, os.path.join(folder, 'trajectory_copy')) trajectory_copy = read_compressed_trajectory(os.path.join(folder, 'trajectory_copy')) assert((trajectory == trajectory_copy).all())
def merge_trajectories(raw_trajectories_folder, results_file): onlyfiles = [f for f in os.listdir(raw_trajectories_folder) if os.path.isfile(os.path.join(raw_trajectories_folder, f))] contents = [] for name in onlyfiles: full_name = os.path.join(raw_trajectories_folder, name) contents.append(read_compressed_trajectory(full_name)) contents.sort(key=lambda p: p[0, 0], reverse=False) merged_traj = np.vstack(contents) merged_traj = apply_filter(merged_traj, DuplicateTimeFilter()) dt = extract_delta_time(merged_traj) assert((dt > 0).all()) write_compressed_trajectory(merged_traj, results_file)