def vadere_output_from(self, run_dir, is_abs=False): if is_abs: return ScenarioOutput.create_output_from_project_output(run_dir) g = glob.glob(self._root.join(run_dir, "**/*.scenario")) if len(g) != 1: raise ValueError( f"expected a single scenario file got: {'/n'.join(g)}") vout_dir = os.path.dirname(g[0]) return ScenarioOutput.create_output_from_project_output(vout_dir)
def test_output_dir(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertEqual( out.output_dir, self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117"), )
def test_settattr_works(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertTrue("df_overlapCount_txt" in dir(out.named_files)) self.assertTrue("df_overlaps_csv" in dir(out.named_files)) self.assertTrue("df_postvis_trajectories" in dir(out.named_files)) self.assertTrue("info_overlapCount_txt" in dir(out.named_files)) self.assertTrue("info_overlaps_csv" in dir(out.named_files)) self.assertTrue("info_postvis_trajectories" in dir(out.named_files))
def get_origin_deviation_data(self): # Create ScenarioOutput object out_0_origin = ScenarioOutput(self.output_pair[0]) out_offset_origin = ScenarioOutput(self.output_pair[1]) if self.name == "": self.name = (out_0_origin.output_dir_name + "---" + out_offset_origin.output_dir_name) # Load trajectories and offset trajectory_0_orign = out_0_origin.files["postvis.trajectories"]() trajectory_offset_orign = out_offset_origin.files[ "postvis.trajectories"]() offset = out_offset_origin.get_bound_offset() # Merge data frames and calculate differences after reverting offset transformation df = pd.merge( trajectory_0_orign, trajectory_offset_orign, on=["timeStep", "pedestrianId"], suffixes=["_0", "_offset"], ) df["x_trans"] = np.abs(df["x_offset"] - offset[0]) df["y_trans"] = np.abs(df["y_offset"] - offset[1]) df["x_diff"] = np.abs(df["x_0"] - (df["x_offset"] - offset[0])) df["y_diff"] = np.abs(df["y_0"] - (df["y_offset"] - offset[1])) df["diff"] = np.abs( np.sqrt(df.x_0**2 + df.y_0**2) - (np.sqrt(df.x_trans**2 + df.y_trans**2))) # find maximal difference for each pedestrian in postvis.trajectories. # df_max_diff_per_pedId contains one row per pedestrian df_max_diff = df.loc[df.groupby("pedestrianId")["diff"].idxmax(), ] df_start_diff = df.loc[ df.groupby("pedestrianId")["timeStep"].idxmin(), ] return df, df_max_diff, df_start_diff
def test_scenario_md5sum(self): out_1 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) out_2 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-57-42.894")) out_3 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-43-08.160")) out_4 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-57-58.997")) out_5 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-46-13.488")) out_6 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-01-07.289")) out_7 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-49-31.248")) out_8 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-04-19.882")) out_9 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-49-48.269")) out_11 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-04-35.721")) out_12 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-53-04.555")) out_13 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-08-14.82")) out_14 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-56-18.210")) out_15 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-11-36.817")) out_16 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-56-34.297")) out_17 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-11-53.469")) out_18 = ScenarioOutput.create_output_from_project_output( self.abs_path( "testData/s2ucre/output/empty_2018-11-16_13-56-50.397")) out_19 = ScenarioOutput.create_output_from_project_output( self.abs_path( "testData/s2ucre/output/empty_2018-11-16_14-12-09.609")) self.assertEqual("774fc8aaaf93ee003709626bb4c0db1f", out_1.scenario_hash) self.assertEqual("774fc8aaaf93ee003709626bb4c0db1f", out_2.scenario_hash) self.assertEqual("7be534d60a54f00afa1f9244466e8dcf", out_3.scenario_hash) self.assertEqual("7be534d60a54f00afa1f9244466e8dcf", out_4.scenario_hash) self.assertEqual("2b706a0ed12842f7ecfcc1b966b2edcc", out_5.scenario_hash) self.assertEqual("2b706a0ed12842f7ecfcc1b966b2edcc", out_6.scenario_hash) self.assertEqual("925007d0e16f698f404ede36528bbf49", out_7.scenario_hash) self.assertEqual("925007d0e16f698f404ede36528bbf49", out_8.scenario_hash) self.assertEqual("dce2cc64adbcd4520b5217afb64061e8", out_9.scenario_hash) self.assertEqual("dce2cc64adbcd4520b5217afb64061e8", out_11.scenario_hash) self.assertEqual("9bd23355bdc8e34e6766894bca2b469c", out_12.scenario_hash) self.assertEqual("9bd23355bdc8e34e6766894bca2b469c", out_13.scenario_hash) self.assertEqual("737fc0ed9b1ff0281043facf5d5a26da", out_14.scenario_hash) self.assertEqual("737fc0ed9b1ff0281043facf5d5a26da", out_15.scenario_hash) self.assertEqual("3405c30c7449d7b48d1ca21947433960", out_16.scenario_hash) self.assertEqual("3405c30c7449d7b48d1ca21947433960", out_17.scenario_hash) self.assertEqual("cd909753844587db821d1222e31d80d1", out_18.scenario_hash) self.assertEqual("cd909753844587db821d1222e31d80d1", out_19.scenario_hash)
def test_get_scenario_name(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertEqual("bridge_coordinates_kai", out.get_scenario_name())
def test_offset(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertEqual([564280.0, 5933391.0], out.get_bound_offset())
def test_df_wrapper(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertTrue("df_postvis_trajectories" in dir(out.named_files)) df = out.named_files.df_postvis_trajectories.df() self.assertEqual(len(df), 20)
def test_scenario_output_dict(self): out = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) self.assertEqual(len(out.files), 3)
def test_trajectories_md5sum(self): out_1 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-42-54.117")) out_2 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-57-42.894")) out_3 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-43-08.160")) out_4 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-57-58.997")) out_5 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-46-13.488")) out_6 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-01-07.289")) out_7 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-49-31.248")) out_8 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-04-19.882")) out_9 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-49-48.269")) out_11 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-04-35.721")) out_12 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-53-04.555")) out_13 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-08-14.82")) out_14 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-56-18.210")) out_15 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-11-36.817")) out_16 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_13-56-34.297")) out_17 = ScenarioOutput.create_output_from_project_output( self.abs_path("testData/s2ucre/output/b_2018-11-16_14-11-53.469")) out_18 = ScenarioOutput.create_output_from_project_output( self.abs_path( "testData/s2ucre/output/empty_2018-11-16_13-56-50.397")) out_19 = ScenarioOutput.create_output_from_project_output( self.abs_path( "testData/s2ucre/output/empty_2018-11-16_14-12-09.609")) self.assertEqual("fca32f3f98ac8c3ffb111cac28f9b9a4", out_1.trajectories_hash) self.assertEqual("fca32f3f98ac8c3ffb111cac28f9b9a4", out_2.trajectories_hash) self.assertEqual("7d128fe3cfe7f4a35709ce88cd86d58f", out_3.trajectories_hash) self.assertEqual("7d128fe3cfe7f4a35709ce88cd86d58f", out_4.trajectories_hash) self.assertEqual("592ad7b457fe7eca015093e04cddeafe", out_5.trajectories_hash) self.assertEqual("592ad7b457fe7eca015093e04cddeafe", out_6.trajectories_hash) self.assertEqual("f648ce3e4373f931bfc77131364e892c", out_7.trajectories_hash) self.assertEqual("f648ce3e4373f931bfc77131364e892c", out_8.trajectories_hash) self.assertEqual("a161272d2b5bd59d744048a60543e082", out_9.trajectories_hash) self.assertEqual("a161272d2b5bd59d744048a60543e082", out_11.trajectories_hash) self.assertEqual("16f901700235eb9954a217619c505065", out_12.trajectories_hash) self.assertEqual("16f901700235eb9954a217619c505065", out_13.trajectories_hash) self.assertEqual("fc770fb2b6d3656ce0a21a9745f8f6ea", out_14.trajectories_hash) self.assertEqual("fc770fb2b6d3656ce0a21a9745f8f6ea", out_15.trajectories_hash) self.assertEqual("c1322a79513671d2fd70b1dfbebf0247", out_16.trajectories_hash) self.assertEqual("c1322a79513671d2fd70b1dfbebf0247", out_17.trajectories_hash) self.assertEqual("6f077db2b6af4e022f970cbe4ff3b1f8", out_18.trajectories_hash) self.assertEqual("6f077db2b6af4e022f970cbe4ff3b1f8", out_19.trajectories_hash)