CARLA ? C-Shenron based Simualtor for Sensor data generation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

39 lines
1.5 KiB

import numpy as np
import json
from pathlib import Path
def get_peak_tracking(session_path):
session_path = Path(session_path)
radar_types = ['awrl1432', 'radarbook']
results = {}
for r in radar_types:
rd_dir = session_path / r / "metrology" / "rd"
if not rd_dir.exists(): continue
frames = sorted(list(rd_dir.glob("*.npy")))
track = []
for f_path in frames:
rd = np.load(f_path)
# Find coordinates of the max energy
idx = np.unravel_index(np.argmax(rd), rd.shape)
val = 10 * np.log10(np.max(rd) + 1e-9)
track.append({"frame": f_path.stem, "range_bin": int(idx[0]), "doppler_bin": int(idx[1]), "db": float(val)})
results[r] = track
print("\n--- Peak Tracking Comparison (First 20 frames) ---")
header = f"{'Frame':<15} | {'1432 R-Bin':<12} | {'RB R-Bin':<12} | {'1432 dB':<10} | {'RB dB':<10}"
print(header)
print("-" * len(header))
for i in range(min(20, len(results.get('awrl1432', [])))):
f14 = results['awrl1432'][i]
frb = results['radarbook'][i]
print(f"{f14['frame']:<15} | {f14['range_bin']:<12} | {frb['range_bin']:<12} | {f14['db']:<10.1f} | {frb['db']:<10.1f}")
if __name__ == "__main__":
target_session = Path("data/braking_20260414_142359")
if target_session.exists():
get_peak_tracking(target_session)
else:
print(f"Session {target_session} not found.")