chore: gitignore 忽略 test/ 与 temp/,新增本地测试数据抽取工具说明

This commit is contained in:
2026-06-26 13:26:05 +08:00
parent 5701e60f7f
commit 93e836147c
2 changed files with 12 additions and 0 deletions
+4
View File
@@ -69,6 +69,10 @@ api_tokens.json
*.xls
*.csv
# Test data tooling and generated test data (local only)
test/
temp/
# IDE and OS
.claude/
.vscode/
+8
View File
@@ -1015,6 +1015,14 @@ CellData 处理日志细化(`app/services/cell_data.py`):
- 准确率(MCP 实测,重叠 66001):网络 100%、制式 97.88%(排除 3DMM 即 100%)、频段 97.6%、带宽 99.75%、站型 99.94%、**物理站 99.59%、扇区 99.20%**;残差为不可还原的人工差异(室分多载波编号、700M 个别人工编号、源数据制表符等)。详见 `docs/sector_inference_research.md`。
- 关键坑:MySQL 字符串字面量会吞掉未知转义的反斜杠,正则字面量需写 `\\(`(.sql 文件)/ JSON 调用需 `\\\\(`;ICU 正则字符类内的 `[ ]` 易误判,统一把名称中的 `[]` 转 `()` 后只处理圆括号。
## 2026-06-26:测试数据抽取工具(本地 test/,已 gitignore)
- `.gitignore` 新增忽略 `test/` 与 `temp/`(生成的测试数据)。`test/` 目录及其脚本不入库,仅本地用。
- `test/make_test_data.py`:交互式从完整 CapacityReportData 源目录抽小样本,输出到 `<仓库>/temp/CapacityReport`(结构同源 4G/5G/RJ,每次生成前先清空)。启动询问「源目录」「每频段数量(默认500)」。
- 抽取规则:按数据文件夹为单位,4G 主文件按 `制式` 列拆 TD-LTE(TDD)/LTE FDD(FDD) 各取数量;每频段 = `test/dump.csv` 清单中属于该频段的小区(优先全保留) + 指定数量其他小区;保留全部列与时序仅删行;RJ 日均流量整体原样复制。小区主键 4G=eNodeBId-cellId、5G/RJ=网元ID-cellId(注意 4G CSV 同时含网元ID,需以 eNodeBId 为准并保留制式拆分)。
- `test/dump.csv`:每行一个 CGI/NCGI(自动去 PLMN 前缀匹配),# 注释;用于固定保留高负荷等特定小区。
- 实测:源 673MB→样本(500/频段) 约 34MB;优先小区与制式拆分均验证正确。
## 2026-06-26:容量处理无条件同步 CellData→容量库(覆盖手动上传场景)
- 问题:原 `_try_refresh_cell_data`(tasks.py / remote.py)首行 `if not cell_data.remote_data.enabled: return`,把「远程拉取 + 执行 CellData.sql + `copy_celldata_tables_to_capacity`」整体锁在 FTP/SFTP 开关后。手动上传 CellData 入库(无 FTP)时,容量处理不会把 celldata 的 cellinfo/sector 复制到 capacityreport,导致 ReportScript 富集用的是旧/缺失数据(celldata 与容量为不同库时)。