67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
import random
|
||
|
||
def generate_radar_data(num_points=10):
|
||
# ================= 配置区域 (可根据需要修改) =================
|
||
|
||
# 1. 距离 (km) 设置: 模拟目标从 3.5km 处开始远离
|
||
start_dist = 3.520
|
||
dist_trend = 0.015 # 每次采样距离增加约 15米 (模拟速度)
|
||
dist_noise = 0.005 # 距离测量噪声 (±5m)
|
||
|
||
# 2. 方位 (度) 设置: 模拟目标在 45度 方向缓慢移动
|
||
start_az = 45.20
|
||
az_trend = 0.15 # 方位角每次变化
|
||
az_noise = 0.04 # 方位角抖动 (±0.04度)
|
||
|
||
# 3. 俯仰 (度) 设置: 模拟低空目标 (如无人机),高度基本保持
|
||
start_el = 2.50
|
||
el_trend = 0.01 # 俯仰角变化很小
|
||
el_noise = 0.05 # 俯仰角抖动
|
||
|
||
# ===========================================================
|
||
|
||
# 生成数据容器
|
||
az_data = []
|
||
el_data = []
|
||
dist_data = []
|
||
|
||
current_dist = start_dist
|
||
current_az = start_az
|
||
current_el = start_el
|
||
|
||
for i in range(num_points):
|
||
# 生成带噪声的距离 (保留3位小数, km)
|
||
d_val = current_dist + random.gauss(0, dist_noise)
|
||
dist_data.append(f"{d_val:.3f}")
|
||
|
||
# 生成带噪声的方位 (保留2位小数, 度)
|
||
az_val = current_az + random.gauss(0, az_noise)
|
||
az_data.append(f"{az_val:.2f}")
|
||
|
||
# 生成带噪声的俯仰 (保留2位小数, 度)
|
||
el_val = current_el + random.gauss(0, el_noise)
|
||
el_data.append(f"{el_val:.2f}")
|
||
|
||
# 更新下一时刻的基准值 (加上趋势)
|
||
current_dist += dist_trend
|
||
current_az += az_trend
|
||
current_el += el_trend
|
||
|
||
# ================= 输出打印 (Tab分隔,方便复制) =================
|
||
print("-" * 30)
|
||
print("生成结果 (复制下方内容到 Word 表格):")
|
||
print("-" * 30)
|
||
|
||
# 打印方位行
|
||
print("方位(°)\t" + "\t".join(az_data))
|
||
|
||
# 打印俯仰行
|
||
print("俯仰(°)\t" + "\t".join(el_data))
|
||
|
||
# 打印距离行
|
||
print("距离(km)\t" + "\t".join(dist_data))
|
||
print("-" * 30)
|
||
|
||
# 执行生成
|
||
if __name__ == "__main__":
|
||
generate_radar_data() |