15 KiB
PBF Step Record
Last Updated: 2026-04-01
Repo: /root/sourceserver/pbf
Remote: ssh://git@nas:2222/tei/pbf.git
Active Baseline
当前唯一固定使用的视觉审计页面:
http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html
当前页面版本体系:
HTML: compare-r16-20260401-1734
当前页面支持 2 个 profile,但仍是同一张 HTML:
-
唐津 20 海里
Style: karatsu-final-style-r12-20260401-1746 (style.navsea-delivery-karatsu-20nm-final.json)PBF: karatsu-final-pbf-20nm-20260401-0248 (pbf-delivery-karatsu-20nm-final)
-
九州
Style: kyushu-style-r1-20260331-2205 (style.navsea-delivery-kyushu.json)PBF: kyushu-pbf-reencoded-20260325-1105 (pbf-delivery-kyushu-reencoded)
访问方式:
- 默认唐津:
http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html
- 九州模式:
http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=kyushu
工作规则:
- 不再新增 compare 页面
- 视觉确认统一只看这一个 URL
- 页面必须保持:
- 左右联动
- 点击拾取
- HTML / Style / PBF 三层版本可见
- 页面现在还支持 URL 相机参数,便于同一张页面切到热点区做自动截图:
?profile=karatsu20¢er=130.335,33.6385&zoom=12.2
- 页面现在还支持纯地图审计模式:
?profile=karatsu20&audit=1¢er=130.335,33.6385&zoom=12.2- 会隐藏 pane tag / inspect panel / status / 地图控件,避免截图被页面 UI 污染
Current Truth
当前继续收敛的主 style 文件:
src/pbf/style.navsea-delivery-karatsu-10nm.jsonsrc/pbf/style.navsea-delivery-karatsu-20nm-final.json
当前九州 delivery style:
关于当前问题,已经确认:
20nm pbf本身最近没有被重建改坏- 鱼礁、灯塔、灯台等对象在
20nm pbf里仍然存在 - 当前 compare 页右侧使用的是
20nm final PBF,不是旧的20nm delivery - 当前“看起来又丢了”的主因优先判断为:
- style 表达式 / icon 选择问题
- 图层叠放和 icon-size 导致的近距离互相遮挡
- 不是 compare HTML 切错
- 也不是 20nm pbf 最近重建坏了对象
当前新增结论:
- compare 页已经支持热点定位参数,strict audit 现在可以在同一张页里切到博多港自动截图
20nm final的对象保真审计已扩到 5 组:p航行危険障害物 -> navigation_hazard_pointp投錨注意障害物 -> anchor_caution_hazard_pointp航路標識群 -> navigation_marksp施設・境界線等 -> facility_boundary_pointP航路ククリ -> route_outline
- 扩层后的结论:
- 旧
delivery_20nm:4165/4165identifier lost - 当前
final_20nm:4165/4165preserved
- 旧
- 也就是说:
- 现在危险物、航标、设施点、航路线这 5 组在 final PBF 里都没有丢对象
- 后续主问题继续收敛在
style
- 博多港这轮已补回:
route_outline紫色虚线facility_boundary_point的 class-based 图标505 -> symbol-daytime-505510 -> symbol-daytime-505520 -> symbol-daytime-520530 -> symbol-daytime-530550 -> symbol-daytime-550
- 设施点文字层做过一次试验版
r10,但博多港 AOI 截图差异变大,已回退;当前保留的有效版本是style-r11
一句话判断:
- 当前
20nm final这条线,危险物对象保真已经过关 - 当前主矛盾是
style - 当前又补了一条危险物样式纠偏:
測定済みの沈船 / 船体露出沈船 / 危険全沈没船这类沉船对象不能继续走泛化wreck=429或hazard_mark=428- 当前 compare 页里,
anchor_caution_hazard_point已改成:- 有
class_code时只走 class-specific 图标层
- 有
- 这次修正的直接目的就是避免“沉船被画成鱼礁/眼形符号”
Object Preservation Audit
当前已经新增并扩展了一条专门的对象保真审计:
- 脚本:
- 报告:
当前结论非常明确:
delivery_20nm- raw objects:
4165 - preserved:
0 - identifier lost:
4165
- raw objects:
final_20nm- raw objects:
4165 - preserved:
4165 - missing object:
0 - identifier lost:
0
- raw objects:
重点含义:
- 旧
20nm delivery不只是危险物,连航标、设施点、航路线的识别字段也都没保住 - 当前
20nm final里,这 5 组对象的细分类 / 显示码已经完整保留下来 - 当前对象保真审计已经能先把“东西丢了”这类严重问题挡在最前面
Final Release Candidate
当前已经产出一版 20nm final release 候选:
- 输出目录:
/home/wwwroot/pbf-delivery-karatsu-20nm-final
- 当前在线对比页:
http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html
- 当前候选 style:
当前候选的生成方式:
- 以当前稳定
/home/wwwroot/pbf-delivery-karatsu-20nm为输入 - 使用 protobuf 层属性裁剪脚本生成
- 脚本:
当前 final candidate 只保留 20 个字段:
canonical_object_typeclass_codechart_fill_patternchart_fill_stylechart_icon_imagechart_label_position_codechart_label_subtextchart_label_textchart_line_colorchart_line_widthchart_symbol_codechart_text_colorchart_text_styledepth_value_mdisplay_codeleast_depth_mlight_color_codelight_sector_modename_japlace_name_en
当前 final candidate 量化结果:
- feature instances:
269883
- distinct
canonical_object_type:137
- 原始
20nm delivery大小:29,527,981bytes
- final candidate 大小:
24,470,260bytes
- 压缩幅度约:
17.1%
当前判断:
- 这版已经满足“字段显著裁剪”
- 为了恢复危险物和灯标/浮标细节,重新带回了:
class_codedisplay_code
r4已补上:navigation_hazard_point按class_code选 icon
- 之前
r3已把危险物和航标 icon-size 收回旧版默认尺度,优先减轻危险物与灯标互相遮挡 - 但当前 AOI 图像审计仍显示大差异
- 所以它目前只能算
final release candidate - 还不能直接认定为稳定最终版
Audit Method
当前认可的可信审计方法:
20nm compare肉眼审图object preservation audit- 小范围 AOI 图像对比
- compare 页点击拾取
10nm rerun对象级 backend audit
当前小范围试验方法文档:
当前 pilot 热点配置:
当前 pilot 报告:
report/strict_audit_pilot/strict_audit_summary.mdreport/strict_audit_pilot/strict_audit_summary.jsonreport/strict_audit_20nm_hakata_r9/strict_audit_summary.mdreport/strict_audit_20nm_hakata_r11/strict_audit_summary.md
当前结论:
- 不再只看整屏 diff
- 不再只看
20nmbackend 总量数字 20nmbackend 仍不适合当严格对象级审计- 博多港 AOI 现在也已经纳入固定截图审计
r10的设施文字层试验让热点差异变大,已回退;当前线上保留r11r12开始改用audit=1纯地图截图:- overall changed ratio:
0.604496 hakata_central_passage_marks:0.822115hakata_route_outline_facility:0.741461hakata_inner_harbor_facilities:0.697737
- overall changed ratio:
- 这说明此前
r9/r11的0.80级别差异里,有相当一部分是页面 UI 噪音,不是地图本体差异 - 进一步把相机收紧到博多港热点后:
- zoom13:
- overall:
0.429551 hakata_central_passage_marks:0.581055hakata_route_outline_facility:0.499826hakata_inner_harbor_facilities:0.390278
- overall:
- zoom14:
- overall:
0.218561 hakata_central_passage_marks:0.313041hakata_route_outline_facility:0.297666hakata_inner_harbor_facilities:0.170868
- overall:
- zoom13:
- 当前观察结论:
- 放大后,博多港中央航路、航路边界、内港设施三块已经基本贴近
- 当前剩余差异更多是陆域底色/标签细部,不再是对象丢失或明显错图标
- 当前正式审计顺序已经明确为:
- 先
object preservation audit - 再
render audit - 最后
AOI / visual audit
- 先
- 其中
20nm的危险物对象保真,当前已经有专门脚本和报告,不再只靠 render audit 猜
Current Audit Status
20nm Visual Pilot
当前新版 r14 / style-r4 strict audit:
report/strict_audit_final_20nm_r4/strict_audit_summary.md- changed ratio:
0.916883
当前 3 个热点:
takashima_main_harbor_marks- changed ratio:
0.800170
- changed ratio:
takashima_inner_nearshore_hazards- changed ratio:
0.711509
- changed ratio:
east_breakwater_marks- changed ratio:
0.999713
- changed ratio:
这说明:
- 视觉仍然没有收敛到“可推广”状态
- 主港航标区仍是第一优先级观察点
- 近岸碍航与鱼礁区有一点改善,但离稳定还远
10nm Object-Level Backend Audit
当前最可信的对象级 backend 审计报告:
NavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.mdNavSea_Original_vs_Delivery_Render_Audit_Karatsu_10nm_2026-03-31.rerun.json
当前结果:
exact_match = 121855mismatch = 12912missing_in_engineering = 5
这说明:
- 当前 10nm 已经不是“对象大面积丢失/多出”的阶段
- 现在主要是 visual / semantic mismatch 修复
当前 mismatch 最大几组:
P基本線ククリ = 7873P基本線 = 2876L基本線 = 619p航路標識群 = 574p投錨注意障害物 = 374p航行危険障害物 = 296
Delivery Field Policy
总目标:
尽可能减少日文
当前字段处置规则:
-
canonical_family- 保留
- 已经是英文
-
canonical_object_type- 不直接删除
- 改成稳定英文值
-
semantic_key- 正式 release PBF 直接删除
- audit 版若保留,可以继续保留现有值
- 当前不强制改英文
-
detection_key- 正式 release PBF 直接删除
- audit 版若保留,可以继续保留现有值
- 当前不强制改英文
具体到这类对象:
-
canonical_object_type = 漁業協同組合- 不直接删除
- 改成稳定英文值
- 当前建议:
fisheries_cooperative
-
canonical_family = symbol- 保留
-
semantic_key = symbol:漁業協同組合- release PBF 直接删除
- audit 版若保留,可以继续保留:
symbol:漁業協同組合
-
detection_key = symbol:漁業協同組合- release PBF 直接删除
- audit 版若保留,可以继续保留:
symbol:漁業協同組合
一句话:
- 业务语义字段英文化
- 审计追踪字段从正式交付版尽量移除
当前对 /home/wwwroot/pbf-delivery-karatsu-20nm 的全量扫描结果:
- 日文字段名:
0
- 但含日文值的核心字段仍很多
当前最主要的残留字段:
canonical_object_type235688
semantic_key235688
detection_key235688
chart_label_text3338
place_name_ja2552
name_ja803
name_subtext_ja18
说明:
- 当前已经基本摆脱“日文键名”
- 但还远没有摆脱“日文语义值”
- 最大头仍然是:
canonical_object_type
当前关于 canonical_object_type 的快速基线:
- 当前
/home/wwwroot/pbf-delivery-karatsu-20nm成品 PBF 中- 实际出现的 distinct
canonical_object_type一共有137种
- 实际出现的 distinct
- 数据库中可以直接查
- 主表:
pbf_relayer_candidates - 字段:
canonical_object_type - 已有索引:
idx_navsea_object (canonical_object_type, geom_type)
- 主表:
- 当前数据库表规模:
pbf_relayer_candidates约6,664,855行
- 说明:
PBF里的 distinct 数 = 当前这批成品实际输出了多少种数据库里的 distinct 数 = 候选对象全集范围,通常会大于等于当前成品 PBFsemantic_keydetection_key
Current Priority
当前继续修的优先顺序:
- 鱼礁 / 障害点 icon 表达
- 灯 / 灯台 / flare 表达
baseline相关 mismatch- 九州沿用同一张 compare 页后的热点审计
如果 style 修到一定程度仍然不对,再回到 builder 看:
- 是否需要补更细的 delivery 语义字段
Key Files
AGENTS.mdSTEP_RECORD.mdsrc/pbf/navsea-compare-karatsu-20nm.htmlsrc/pbf/style.navsea-delivery-karatsu-10nm.jsonsrc/pbf/style.navsea-delivery-kyushu.jsonNavSea_20nm_Small_Scope_Audit_Method.md
Quick Resume Prompt
继续围绕同一个 compare 页 navsea-compare-karatsu-20nm.html 修 delivery style。默认先看唐津 profile,按 pilot 热点先修鱼礁和灯标;需要看九州时就在同一张页面切到 kyushu profile。视觉确认用 20nm compare,严格对象级 backend 审计看 10nm rerun。