geopro/tools/radar_convert/README.md

4.1 KiB
Raw Blame History

radar_convert — 雷达原始数据 → 规范化格式 转换插件(本地原型)

把厂商原始雷达数据转换成客户端规范化格式 .head / .data / .cor (/.index),供三维雷达 渲染器消费。本目录是未来"服务端下发转换插件"的本地原型:今天的 Python 工具实现的 convert 契约,将来由客户端按设备型号拉取对应插件执行,接口不变。

当前实现型号:RADAR_TYPE_MALAMIRAMala Mira rSlicer.rad + .rd3|.rd7 + _G01.pos)。


插件契约(本地工具 = 未来插件,接口一致)

plugin_id           : RADAR_TYPE_MALAMIRA
supports(fileset)   -> bool                       # 据文件组成判断是否本插件可处理
convert(lineDir, prefix, outDir) -> {head,data,cor}
  • 输入:一条测线三件套 {prefix}.rad + {prefix}.rd3|.rd7 + {prefix}_G01.pos(轨迹可选)。
  • 输出:规范化目录 {prefix}.head + {prefix}.data + {prefix}.cor
  • 映射规则源自客户《雷达业务开发说明》§3.3.rad→.head/ §3.5.rd3→.data/ §2.2.2.pos→.cor

用法

# 1) 列出目录内测线 + 维度一致性校验(不写文件)
python tools/radar_convert/malamira.py info  <lineDir>

# 2) 转换(--prefix 省略=全部测线)
python tools/radar_convert/malamira.py convert <lineDir> --out <outDir> [--prefix 南同大道_000]

# 3) probe出图核对 .rd3 数据体主序(写一张 PNG 到 --out
python tools/radar_convert/malamira.py probe <lineDir> --prefix 南同大道_000 --out <dir>

数据体维度与排列(★渲染器必读,已用真实数据核对)

  • 体维度:K(道/切片,沿运动) × M(通道) × N(采样/深度)。
    • M = NUMBER_OF_CHN = SAMPLESK = LAST_TRACE / NUMBER_OF_CH
    • .radLAST TRACE总扫描数=K×M不是道数 K。.head 原样透传该值, 渲染器按 K = LAST_TRACE / NUMBER_OF_CH 求道数。
  • .data 主序 = position-major已 probe 核对MALA南同大道_000 磁盘扫描顺序 = (道0: 通道0..M-1)(道1: 通道0..M-1)…,每个 sweep 内 N 个采样连续。 即 flat.reshape(K, M, N)[道][通道][采样]
    • 直接对应 geopro 体轴 X=道(nx=K)Y=通道(ny=M)Z=采样(nz=N)无需转置
    • 反例错误主序channel-major reshape(M,K,N) 的 B-scan 呈竖条乱码——probe 已排除。
  • 数据类型:int16 小端(.rd3/ int32 小端(.rd7)。.rd3 中出现 -32768 为直达波饱和的真实值,非空值哨兵。

与客户文档的偏差(实现时的取舍,便于后端对齐)

# 文档 本工具 理由
1 BITS 计算 文件大小/LAST_TRACE/NUMBER_OF_CH×8 bytes = 文件大小/(LAST_TRACE×SAMPLES)×8并与扩展名(.rd3→16/.rd7→32)交叉校验 文档公式漏了 SAMPLES 维、量纲不符;本式对 6 条线均得 16文件大小==LAST_TRACE×SAMPLES×bytes 严格成立
2 ENDIAN_TYPE §3.3 表:"留空" 1(小端) 同节要点 1 明确"通常小端即 1";渲染需确定字节序
3 WHEEL_CALIBRATION §3.3 表:"留空" 透传 .rad 实际值 .rad 有该字段,透传更忠实(不影响渲染)
4 .cor 坐标 北→纬度 / 东→经度 同文档直映N/E/M 为占位标识,解状态=4 .pos 是本地投影坐标(米)、非经纬度CRS 未知。单线渲染不依赖 .cor 配准,多线阶段再处理
5 .index 可选打标文件 本数据集无打标 → 不产出 该目录仅有 FCODES.TXT(编码字典),无 .index 源

已验证MALA南同大道_rSlicer6 条测线2026-06-29

  • info6 条线全部通过 文件大小 == LAST_TRACE×SAMPLES×bytes 校验。 K∈[2333,3778]M=16N=516bits=16距离模式dx≈0.0950.099m,时窗 96.42ns,均含轨迹。
  • convert6 条线 .head/.data/.cor 全部产出;.data 与源 .rd3 字节数严格一致。
  • probeposition-major B-scan 出现连续直达波 + 地层 + 双曲线绕射 → 主序确认。