diff --git a/STEP_RECORD.md b/STEP_RECORD.md index bc1c760..6fadaba 100644 --- a/STEP_RECORD.md +++ b/STEP_RECORD.md @@ -12,12 +12,12 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前页面版本体系: -- `HTML: compare-r14-20260401-1523` +- `HTML: compare-r15-20260401-1705` 当前页面支持 2 个 profile,但仍是同一张 HTML: 1. 唐津 20 海里 - - `Style: karatsu-final-style-r5-20260401-1540 (style.navsea-delivery-karatsu-20nm-final.json)` + - `Style: karatsu-final-style-r11-20260401-1719 (style.navsea-delivery-karatsu-20nm-final.json)` - `PBF: karatsu-final-pbf-20nm-20260401-0248 (pbf-delivery-karatsu-20nm-final)` 2. 九州 @@ -39,6 +39,8 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` - 左右联动 - 点击拾取 - HTML / Style / PBF 三层版本可见 +- 页面现在还支持 URL 相机参数,便于同一张页面切到热点区做自动截图: + - `?profile=karatsu20¢er=130.335,33.6385&zoom=12.2` ## Current Truth @@ -64,24 +66,28 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前新增结论: -- 紫色大 `X` 对应的不是 `428` -- 在当前 sprite 体系里: - - `409 -> symbol-daytime-409` - - `429 -> symbol-daytime-429` -- `428` 更像鱼礁/椭圆眼形符号 -- 第二类“X 丢了”的问题,已经确认有一部分是危险物点与红绿小灯在近坐标重叠: - - 例如同一热点存在: - - `険悪物(class_code=420)` at `[3023,524]` - - red light `30600002` at `[3013,524]` - - green light `30600001` at `[3029,505]` -- 这类问题更像图层叠放和当前 icon-size 过大,不是 PBF 缺对象 -- `fid=13025299` 这类对象的最新结论已经纠正: - - 左侧原始版是 `p航行危険障害物 / 分類番号 409 / 孤立危険物` - - 当前 `20nm final` 后台对象保真审计显示这类 `409` 在 final 里是完整保留下来的 - - 当前问题已经收敛成: - - 旧 `20nm delivery` 没保留 `class_code` - - `20nm final style` 之前没有对 `navigation_hazard_point` 按 `class_code` 选 icon - - 也就是说,这批点现在的主问题是 `final style`,不是 `final PBF` 丢对象 +- compare 页已经支持热点定位参数,strict audit 现在可以在同一张页里切到博多港自动截图 +- `20nm final` 的对象保真审计已扩到 5 组: + - `p航行危険障害物 -> navigation_hazard_point` + - `p投錨注意障害物 -> anchor_caution_hazard_point` + - `p航路標識群 -> navigation_marks` + - `p施設・境界線等 -> facility_boundary_point` + - `P航路ククリ -> route_outline` +- 扩层后的结论: + - 旧 `delivery_20nm`:`4165/4165` identifier lost + - 当前 `final_20nm`:`4165/4165` preserved +- 也就是说: + - 现在危险物、航标、设施点、航路线这 5 组在 final PBF 里都没有丢对象 + - 后续主问题继续收敛在 `style` +- 博多港这轮已补回: + - `route_outline` 紫色虚线 + - `facility_boundary_point` 的 class-based 图标 + - `505 -> symbol-daytime-505` + - `510 -> symbol-daytime-505` + - `520 -> symbol-daytime-520` + - `530 -> symbol-daytime-530` + - `550 -> symbol-daytime-550` +- 设施点文字层做过一次试验版 `r10`,但博多港 AOI 截图差异变大,已回退;当前保留的有效版本是 `style-r11` 一句话判断: @@ -95,7 +101,7 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` ## Object Preservation Audit -当前已经新增一条专门的对象保真审计: +当前已经新增并扩展了一条专门的对象保真审计: - 脚本: - [`navsea_object_preservation_audit.py`](/root/sourceserver/pbf/navsea_object_preservation_audit.py) @@ -106,22 +112,20 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前结论非常明确: - `delivery_20nm` - - raw objects: `2090` + - raw objects: `4165` - preserved: `0` - - raw class lost: `2090` + - identifier lost: `4165` - `final_20nm` - - raw objects: `2090` - - preserved: `2090` + - raw objects: `4165` + - preserved: `4165` - missing object: `0` - - raw class lost: `0` + - identifier lost: `0` 重点含义: -- 旧 `20nm delivery` 的危险物细分类全部丢失 -- 当前 `20nm final` 的危险物细分类已经完整保留下来 -- `p航行危険障害物:409` 在 final 中是: - - raw=`25` - - preserved=`25` +- 旧 `20nm delivery` 不只是危险物,连航标、设施点、航路线的识别字段也都没保住 +- 当前 `20nm final` 里,这 5 组对象的细分类 / 显示码已经完整保留下来 +- 当前对象保真审计已经能先把“东西丢了”这类严重问题挡在最前面 ## Final Release Candidate @@ -195,9 +199,10 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前认可的可信审计方法: 1. `20nm compare` 肉眼审图 -2. 小范围 AOI 图像对比 -3. compare 页点击拾取 -4. `10nm rerun` 对象级 backend audit +2. `object preservation audit` +3. 小范围 AOI 图像对比 +4. compare 页点击拾取 +5. `10nm rerun` 对象级 backend audit 当前小范围试验方法文档: @@ -207,17 +212,22 @@ Remote: `ssh://git@nas:2222/tei/pbf.git` 当前 pilot 热点配置: - [`strict_audit_hotspots_20nm_pilot.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_pilot.json) +- [`strict_audit_hotspots_20nm_hakata.json`](/root/sourceserver/pbf/strict_audit_hotspots_20nm_hakata.json) 当前 pilot 报告: - [`report/strict_audit_pilot/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.md) - [`report/strict_audit_pilot/strict_audit_summary.json`](/root/sourceserver/pbf/report/strict_audit_pilot/strict_audit_summary.json) +- [`report/strict_audit_20nm_hakata_r9/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_20nm_hakata_r9/strict_audit_summary.md) +- [`report/strict_audit_20nm_hakata_r11/strict_audit_summary.md`](/root/sourceserver/pbf/report/strict_audit_20nm_hakata_r11/strict_audit_summary.md) 当前结论: - 不再只看整屏 diff - 不再只看 `20nm` backend 总量数字 - `20nm` backend 仍不适合当严格对象级审计 +- 博多港 AOI 现在也已经纳入固定截图审计 +- `r10` 的设施文字层试验让热点差异变大,已回退;当前线上保留 `r11` - 当前正式审计顺序已经明确为: - 先 `object preservation audit` - 再 `render audit` diff --git a/navsea_object_preservation_audit.py b/navsea_object_preservation_audit.py index 65f12da..43e0237 100644 --- a/navsea_object_preservation_audit.py +++ b/navsea_object_preservation_audit.py @@ -19,21 +19,42 @@ DEFAULT_DELIVERY_ROOT = Path("/home/wwwroot/pbf-delivery-karatsu-20nm") DEFAULT_FINAL_ROOT = Path("/home/wwwroot/pbf-delivery-karatsu-20nm-final") DEFAULT_REPORT_ROOT = Path("/root/sourceserver/pbf/report/object_preservation_20nm") -HAZARD_LAYER_RULES = ( +AUDIT_RULES = ( { "raw_layer": "p航行危険障害物", "delivery_layer": "navigation_hazard_point", - "raw_class_field": "分類番号", - "delivery_class_field": "class_code", + "raw_match_field": "分類番号", + "delivery_match_field": "class_code", "label": "navigation hazards", }, { "raw_layer": "p投錨注意障害物", "delivery_layer": "anchor_caution_hazard_point", - "raw_class_field": "分類番号", - "delivery_class_field": "class_code", + "raw_match_field": "分類番号", + "delivery_match_field": "class_code", "label": "anchor hazards", }, + { + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "delivery_match_field": "display_code", + "label": "navigation marks", + }, + { + "raw_layer": "p施設・境界線等", + "delivery_layer": "facility_boundary_point", + "raw_match_field": "分類番号", + "delivery_match_field": "class_code", + "label": "facility points", + }, + { + "raw_layer": "P航路ククリ", + "delivery_layer": "route_outline", + "raw_match_field": "分類番号", + "delivery_match_field": "class_code", + "label": "route outlines", + }, ) MAX_EXAMPLES = 20 @@ -109,19 +130,19 @@ def audit_one_target( x = int(rel.parts[1]) y = int(Path(rel.parts[2]).stem) tile = TileCoord(z=z, x=x, y=y) - raw_index = build_tile_index(raw_tile, HAZARD_LAYER_RULES) - target_index = build_tile_index(target_tile, HAZARD_LAYER_RULES) + raw_index = build_tile_index(raw_tile, AUDIT_RULES) + target_index = build_tile_index(target_tile, AUDIT_RULES) all_target_geoms: dict[str, list[tuple[str, dict[str, Any]]]] = defaultdict(list) - for rule in HAZARD_LAYER_RULES: + for rule in AUDIT_RULES: for feat in target_index[rule["delivery_layer"]]: all_target_geoms[geometry_signature(feat)].append((rule["delivery_layer"], feat)) - for rule in HAZARD_LAYER_RULES: + for rule in AUDIT_RULES: raw_layer = rule["raw_layer"] delivery_layer = rule["delivery_layer"] - raw_class_field = rule["raw_class_field"] - delivery_class_field = rule["delivery_class_field"] + raw_match_field = rule["raw_match_field"] + delivery_match_field = rule["delivery_match_field"] key = f"{raw_layer}->{delivery_layer}" target_by_geom: dict[str, list[dict[str, Any]]] = defaultdict(list) @@ -132,8 +153,8 @@ def audit_one_target( totals["raw_objects"] += 1 rule_stats[key]["raw_objects"] += 1 raw_props = raw_feat.get("properties", {}) - raw_class = raw_props.get(raw_class_field) - class_key = f"{raw_layer}:{raw_class}" + raw_match_value = raw_props.get(raw_match_field) + class_key = f"{raw_layer}:{raw_match_value}" geom_sig = geometry_signature(raw_feat) name = raw_props.get("名称") or parse_at_name(raw_props.get("at")) candidates = target_by_geom.get(geom_sig, []) @@ -155,11 +176,13 @@ def audit_one_target( "name": name, "raw_layer": raw_layer, "delivery_layer": delivery_layer, - "raw_class": raw_class, + "raw_match_field": raw_match_field, + "raw_match_value": raw_match_value, "other_layer_hits": [ { "delivery_layer": layer_name, - "delivery_class": feat.get("properties", {}).get(delivery_class_field), + "delivery_match_field": delivery_match_field, + "delivery_match_value": feat.get("properties", {}).get(delivery_match_field), "canonical_object_type": feat.get("properties", {}).get("canonical_object_type"), } for layer_name, feat in other_layer_hits[:5] @@ -170,7 +193,7 @@ def audit_one_target( for candidate in candidates: target_props = candidate.get("properties", {}) - if target_props.get(delivery_class_field) == raw_class: + if target_props.get(delivery_match_field) == raw_match_value: matched_class = True break @@ -180,10 +203,10 @@ def audit_one_target( class_stats[class_key]["preserved"] += 1 continue - if all(candidate.get("properties", {}).get(delivery_class_field) is None for candidate in candidates): - issue = "raw_class_lost" + if all(candidate.get("properties", {}).get(delivery_match_field) is None for candidate in candidates): + issue = "identifier_lost" else: - issue = "class_mismatch" + issue = "identifier_mismatch" totals[issue] += 1 rule_stats[key][issue] += 1 @@ -196,10 +219,12 @@ def audit_one_target( "name": name, "raw_layer": raw_layer, "delivery_layer": delivery_layer, - "raw_class": raw_class, + "raw_match_field": raw_match_field, + "raw_match_value": raw_match_value, "candidates": [ { - "delivery_class": candidate.get("properties", {}).get(delivery_class_field), + "delivery_match_field": delivery_match_field, + "delivery_match_value": candidate.get("properties", {}).get(delivery_match_field), "canonical_object_type": candidate.get("properties", {}).get("canonical_object_type"), "chart_symbol_code": candidate.get("properties", {}).get("chart_symbol_code"), "chart_icon_image": candidate.get("properties", {}).get("chart_icon_image"), @@ -218,13 +243,13 @@ def audit_one_target( "preserved": stats.get("preserved", 0), "missing_object": stats.get("missing_object", 0), "wrong_relayer": stats.get("wrong_relayer", 0), - "raw_class_lost": stats.get("raw_class_lost", 0), - "class_mismatch": stats.get("class_mismatch", 0), + "identifier_lost": stats.get("identifier_lost", 0), + "identifier_mismatch": stats.get("identifier_mismatch", 0), } ) top_class_issues.sort( key=lambda item: ( - item["missing_object"] + item["wrong_relayer"] + item["raw_class_lost"] + item["class_mismatch"], + item["missing_object"] + item["wrong_relayer"] + item["identifier_lost"] + item["identifier_mismatch"], item["raw_objects"], ), reverse=True, @@ -254,8 +279,8 @@ def audit_one_target( f"- preserved: `{totals.get('preserved', 0)}`", f"- missing object: `{totals.get('missing_object', 0)}`", f"- wrong relayer: `{totals.get('wrong_relayer', 0)}`", - f"- raw class lost: `{totals.get('raw_class_lost', 0)}`", - f"- class mismatch: `{totals.get('class_mismatch', 0)}`", + f"- identifier lost: `{totals.get('identifier_lost', 0)}`", + f"- identifier mismatch: `{totals.get('identifier_mismatch', 0)}`", "", "## Per Rule", "", @@ -269,8 +294,8 @@ def audit_one_target( f"- preserved: `{stats.get('preserved', 0)}`", f"- missing object: `{stats.get('missing_object', 0)}`", f"- wrong relayer: `{stats.get('wrong_relayer', 0)}`", - f"- raw class lost: `{stats.get('raw_class_lost', 0)}`", - f"- class mismatch: `{stats.get('class_mismatch', 0)}`", + f"- identifier lost: `{stats.get('identifier_lost', 0)}`", + f"- identifier mismatch: `{stats.get('identifier_mismatch', 0)}`", "", ] ) @@ -279,7 +304,7 @@ def audit_one_target( for item in top_class_issues[:12]: lines.append( "- `{class_key}` raw=`{raw_objects}` preserved=`{preserved}` missing=`{missing_object}` " - "wrong_relayer=`{wrong_relayer}` class_lost=`{raw_class_lost}` class_mismatch=`{class_mismatch}`".format( + "wrong_relayer=`{wrong_relayer}` identifier_lost=`{identifier_lost}` identifier_mismatch=`{identifier_mismatch}`".format( **item ) ) @@ -299,7 +324,7 @@ def audit_one_target( def parse_args() -> argparse.Namespace: parser = argparse.ArgumentParser( - description="Audit raw-object preservation for hazard layers between original and delivery/final PBFs." + description="Audit raw-object preservation for hazards, navigation marks, facility points, and route outlines between original and delivery/final PBFs." ) parser.add_argument("--raw-root", type=Path, default=DEFAULT_RAW_ROOT) parser.add_argument("--delivery-root", type=Path, default=DEFAULT_DELIVERY_ROOT) diff --git a/report/object_preservation_20nm/object_preservation_delivery_20nm.json b/report/object_preservation_20nm/object_preservation_delivery_20nm.json index 429a4f0..023f685 100644 --- a/report/object_preservation_20nm/object_preservation_delivery_20nm.json +++ b/report/object_preservation_20nm/object_preservation_delivery_20nm.json @@ -4,17 +4,29 @@ "target_root": "/home/wwwroot/pbf-delivery-karatsu-20nm", "totals": { "tiles_compared": 154, - "raw_objects": 2090, - "raw_class_lost": 2090 + "raw_objects": 4165, + "identifier_lost": 4165 }, "rule_stats": { + "P航路ククリ->route_outline": { + "raw_objects": 19, + "identifier_lost": 19 + }, "p投錨注意障害物->anchor_caution_hazard_point": { "raw_objects": 1426, - "raw_class_lost": 1426 + "identifier_lost": 1426 + }, + "p施設・境界線等->facility_boundary_point": { + "raw_objects": 171, + "identifier_lost": 171 }, "p航行危険障害物->navigation_hazard_point": { "raw_objects": 664, - "raw_class_lost": 664 + "identifier_lost": 664 + }, + "p航路標識群->navigation_marks": { + "raw_objects": 1885, + "identifier_lost": 1885 } }, "top_class_issues": [ @@ -24,8 +36,8 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 702, - "class_mismatch": 0 + "identifier_lost": 702, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:404", @@ -33,8 +45,8 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 413, - "class_mismatch": 0 + "identifier_lost": 413, + "identifier_mismatch": 0 }, { "class_key": "p投錨注意障害物:420", @@ -42,8 +54,8 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 355, - "class_mismatch": 0 + "identifier_lost": 355, + "identifier_mismatch": 0 }, { "class_key": "p投錨注意障害物:425", @@ -51,8 +63,53 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 255, - "class_mismatch": 0 + "identifier_lost": 255, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600003", + "raw_objects": 255, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 255, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31000000", + "raw_objects": 200, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 200, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600002", + "raw_objects": 191, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 191, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600001", + "raw_objects": 189, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 189, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30100004", + "raw_objects": 142, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 142, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:403", @@ -60,8 +117,80 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 128, - "class_mismatch": 0 + "identifier_lost": 128, + "identifier_mismatch": 0 + }, + { + "class_key": "p施設・境界線等:520", + "raw_objects": 128, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 128, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31336300", + "raw_objects": 108, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 108, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30200002", + "raw_objects": 75, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 75, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31300003", + "raw_objects": 66, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 66, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600000", + "raw_objects": 60, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 60, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600004", + "raw_objects": 48, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 48, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31235102", + "raw_objects": 46, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 46, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30200001", + "raw_objects": 44, + "preserved": 0, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 44, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:432", @@ -69,535 +198,458 @@ "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 40, - "class_mismatch": 0 + "identifier_lost": 40, + "identifier_mismatch": 0 }, { - "class_key": "p投錨注意障害物:421", - "raw_objects": 32, + "class_key": "p航路標識群:31135102", + "raw_objects": 37, "preserved": 0, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 32, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:415", - "raw_objects": 25, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 25, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:413", - "raw_objects": 25, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 25, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:409", - "raw_objects": 25, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 25, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:431", - "raw_objects": 22, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 22, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:434", - "raw_objects": 18, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 18, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:433", - "raw_objects": 15, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 15, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:427", - "raw_objects": 9, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 9, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:405", - "raw_objects": 5, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 5, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:412", - "raw_objects": 5, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 5, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:422", - "raw_objects": 4, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 4, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:424", - "raw_objects": 3, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 3, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:402", - "raw_objects": 3, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 3, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:410", - "raw_objects": 3, - "preserved": 0, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 3, - "class_mismatch": 0 + "identifier_lost": 37, + "identifier_mismatch": 0 } ], "issue_examples": { - "raw_class_lost": [ + "identifier_lost": [ { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 409 ], - "fid": 13018869, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007768, + "name": "若宮灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30000004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "沿岸灯台 (15M over)", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 409 ], - "fid": 13018870, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007824, + "name": "壱岐長島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 409 ], - "fid": 13018918, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007921, + "name": "手長島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 409 ], - "fid": 13020459, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007971, + "name": "壱岐大瀬灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020673, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007773, + "name": "二神島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30000007", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "沿岸灯台 (15M over)", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020674, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007805, + "name": "的山大島曲り鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020675, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007823, + "name": "海豚鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020697, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007824, + "name": "壱岐長島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020698, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007836, + "name": "大碆鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13020699, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 428, + "fid": 12007880, + "name": "壱岐郷ノ瀬灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "魚礁", - "chart_symbol_code": "fish_reef", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13018650, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007885, + "name": "馬ノ頭鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13018651, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007886, + "name": "崎瀬鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 410 ], - "fid": 13018652, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007938, + "name": "的山大島長崎鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018653, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007795, + "name": "青砂埼灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018654, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007835, + "name": "生月長瀬鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018655, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007897, + "name": "平戸牛ケ首灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100005", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018656, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007919, + "name": "津崎鼻灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018657, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007939, + "name": "肥前横島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018658, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007940, + "name": "南風埼灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] }, { "tile": [ - 11, - 1761, - 819 + 10, + 880, + 411 ], - "fid": 13018659, - "name": null, - "raw_layer": "p投錨注意障害物", - "delivery_layer": "anchor_caution_hazard_point", - "raw_class": 425, + "fid": 12007941, + "name": "下枯木島灯台", + "raw_layer": "p航路標識群", + "delivery_layer": "navigation_marks", + "raw_match_field": "表示用番号", + "raw_match_value": "30100004", "candidates": [ { - "delivery_class": null, - "canonical_object_type": "海草", - "chart_symbol_code": "hazard_mark", - "chart_icon_image": "symbol-daytime-428" + "delivery_match_field": "display_code", + "delivery_match_value": null, + "canonical_object_type": "港湾灯台", + "chart_symbol_code": "lighthouse", + "chart_icon_image": "symbol-daytime-301" } ] } diff --git a/report/object_preservation_20nm/object_preservation_delivery_20nm.md b/report/object_preservation_20nm/object_preservation_delivery_20nm.md index c7e17ea..4f02df4 100644 --- a/report/object_preservation_20nm/object_preservation_delivery_20nm.md +++ b/report/object_preservation_20nm/object_preservation_delivery_20nm.md @@ -6,23 +6,41 @@ ## Totals - tiles compared: `154` -- raw objects: `2090` +- raw objects: `4165` - preserved: `0` - missing object: `0` - wrong relayer: `0` -- raw class lost: `2090` -- class mismatch: `0` +- identifier lost: `4165` +- identifier mismatch: `0` ## Per Rule +### `P航路ククリ->route_outline` + +- raw objects: `19` +- preserved: `0` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `19` +- identifier mismatch: `0` + ### `p投錨注意障害物->anchor_caution_hazard_point` - raw objects: `1426` - preserved: `0` - missing object: `0` - wrong relayer: `0` -- raw class lost: `1426` -- class mismatch: `0` +- identifier lost: `1426` +- identifier mismatch: `0` + +### `p施設・境界線等->facility_boundary_point` + +- raw objects: `171` +- preserved: `0` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `171` +- identifier mismatch: `0` ### `p航行危険障害物->navigation_hazard_point` @@ -30,43 +48,52 @@ - preserved: `0` - missing object: `0` - wrong relayer: `0` -- raw class lost: `664` -- class mismatch: `0` +- identifier lost: `664` +- identifier mismatch: `0` + +### `p航路標識群->navigation_marks` + +- raw objects: `1885` +- preserved: `0` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `1885` +- identifier mismatch: `0` ## Top Class Issues -- `p投錨注意障害物:428` raw=`702` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`702` class_mismatch=`0` -- `p航行危険障害物:404` raw=`413` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`413` class_mismatch=`0` -- `p投錨注意障害物:420` raw=`355` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`355` class_mismatch=`0` -- `p投錨注意障害物:425` raw=`255` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`255` class_mismatch=`0` -- `p航行危険障害物:403` raw=`128` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`128` class_mismatch=`0` -- `p航行危険障害物:432` raw=`40` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`40` class_mismatch=`0` -- `p投錨注意障害物:421` raw=`32` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`32` class_mismatch=`0` -- `p投錨注意障害物:415` raw=`25` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`25` class_mismatch=`0` -- `p投錨注意障害物:413` raw=`25` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`25` class_mismatch=`0` -- `p航行危険障害物:409` raw=`25` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`25` class_mismatch=`0` -- `p航行危険障害物:431` raw=`22` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`22` class_mismatch=`0` -- `p投錨注意障害物:434` raw=`18` preserved=`0` missing=`0` wrong_relayer=`0` class_lost=`18` class_mismatch=`0` +- `p投錨注意障害物:428` raw=`702` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`702` identifier_mismatch=`0` +- `p航行危険障害物:404` raw=`413` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`413` identifier_mismatch=`0` +- `p投錨注意障害物:420` raw=`355` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`355` identifier_mismatch=`0` +- `p投錨注意障害物:425` raw=`255` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`255` identifier_mismatch=`0` +- `p航路標識群:30600003` raw=`255` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`255` identifier_mismatch=`0` +- `p航路標識群:31000000` raw=`200` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`200` identifier_mismatch=`0` +- `p航路標識群:30600002` raw=`191` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`191` identifier_mismatch=`0` +- `p航路標識群:30600001` raw=`189` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`189` identifier_mismatch=`0` +- `p航路標識群:30100004` raw=`142` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`142` identifier_mismatch=`0` +- `p航行危険障害物:403` raw=`128` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`128` identifier_mismatch=`0` +- `p施設・境界線等:520` raw=`128` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`128` identifier_mismatch=`0` +- `p航路標識群:31336300` raw=`108` preserved=`0` missing=`0` wrong_relayer=`0` identifier_lost=`108` identifier_mismatch=`0` -## Examples: `raw_class_lost` +## Examples: `identifier_lost` -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018869,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018870,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018918,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020459,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020673,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020674,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020675,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020697,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020698,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"魚礁","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"fish_reef","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13020699,"name":null,"raw_class":428,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018650,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018651,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018652,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018653,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018654,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018655,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018656,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018657,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018658,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} -- {"candidates":[{"canonical_object_type":"海草","chart_icon_image":"symbol-daytime-428","chart_symbol_code":"hazard_mark","delivery_class":null}],"delivery_layer":"anchor_caution_hazard_point","fid":13018659,"name":null,"raw_class":425,"raw_layer":"p投錨注意障害物","tile":[11,1761,819]} +- {"candidates":[{"canonical_object_type":"沿岸灯台 (15M over)","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007768,"name":"若宮灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30000004","tile":[10,880,409]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007824,"name":"壱岐長島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,409]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007921,"name":"手長島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,409]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007971,"name":"壱岐大瀬灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,409]} +- {"candidates":[{"canonical_object_type":"沿岸灯台 (15M over)","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007773,"name":"二神島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30000007","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007805,"name":"的山大島曲り鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007823,"name":"海豚鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007824,"name":"壱岐長島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007836,"name":"大碆鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007880,"name":"壱岐郷ノ瀬灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007885,"name":"馬ノ頭鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007886,"name":"崎瀬鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007938,"name":"的山大島長崎鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,410]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007795,"name":"青砂埼灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007835,"name":"生月長瀬鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007897,"name":"平戸牛ケ首灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100005","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007919,"name":"津崎鼻灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007939,"name":"肥前横島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007940,"name":"南風埼灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} +- {"candidates":[{"canonical_object_type":"港湾灯台","chart_icon_image":"symbol-daytime-301","chart_symbol_code":"lighthouse","delivery_match_field":"display_code","delivery_match_value":null}],"delivery_layer":"navigation_marks","fid":12007941,"name":"下枯木島灯台","raw_layer":"p航路標識群","raw_match_field":"表示用番号","raw_match_value":"30100004","tile":[10,880,411]} diff --git a/report/object_preservation_20nm/object_preservation_final_20nm.json b/report/object_preservation_20nm/object_preservation_final_20nm.json index fc808d7..f45f9cc 100644 --- a/report/object_preservation_20nm/object_preservation_final_20nm.json +++ b/report/object_preservation_20nm/object_preservation_final_20nm.json @@ -4,17 +4,29 @@ "target_root": "/home/wwwroot/pbf-delivery-karatsu-20nm-final", "totals": { "tiles_compared": 154, - "raw_objects": 2090, - "preserved": 2090 + "raw_objects": 4165, + "preserved": 4165 }, "rule_stats": { + "P航路ククリ->route_outline": { + "raw_objects": 19, + "preserved": 19 + }, "p投錨注意障害物->anchor_caution_hazard_point": { "raw_objects": 1426, "preserved": 1426 }, + "p施設・境界線等->facility_boundary_point": { + "raw_objects": 171, + "preserved": 171 + }, "p航行危険障害物->navigation_hazard_point": { "raw_objects": 664, "preserved": 664 + }, + "p航路標識群->navigation_marks": { + "raw_objects": 1885, + "preserved": 1885 } }, "top_class_issues": [ @@ -24,8 +36,8 @@ "preserved": 702, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:404", @@ -33,8 +45,8 @@ "preserved": 413, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 }, { "class_key": "p投錨注意障害物:420", @@ -42,8 +54,8 @@ "preserved": 355, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 }, { "class_key": "p投錨注意障害物:425", @@ -51,8 +63,53 @@ "preserved": 255, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600003", + "raw_objects": 255, + "preserved": 255, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31000000", + "raw_objects": 200, + "preserved": 200, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600002", + "raw_objects": 191, + "preserved": 191, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600001", + "raw_objects": 189, + "preserved": 189, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30100004", + "raw_objects": 142, + "preserved": 142, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:403", @@ -60,8 +117,80 @@ "preserved": 128, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p施設・境界線等:520", + "raw_objects": 128, + "preserved": 128, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31336300", + "raw_objects": 108, + "preserved": 108, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30200002", + "raw_objects": 75, + "preserved": 75, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31300003", + "raw_objects": 66, + "preserved": 66, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600000", + "raw_objects": 60, + "preserved": 60, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30600004", + "raw_objects": 48, + "preserved": 48, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:31235102", + "raw_objects": 46, + "preserved": 46, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 + }, + { + "class_key": "p航路標識群:30200001", + "raw_objects": 44, + "preserved": 44, + "missing_object": 0, + "wrong_relayer": 0, + "identifier_lost": 0, + "identifier_mismatch": 0 }, { "class_key": "p航行危険障害物:432", @@ -69,134 +198,17 @@ "preserved": 40, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 }, { - "class_key": "p投錨注意障害物:421", - "raw_objects": 32, - "preserved": 32, + "class_key": "p航路標識群:31135102", + "raw_objects": 37, + "preserved": 37, "missing_object": 0, "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:415", - "raw_objects": 25, - "preserved": 25, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:413", - "raw_objects": 25, - "preserved": 25, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:409", - "raw_objects": 25, - "preserved": 25, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:431", - "raw_objects": 22, - "preserved": 22, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:434", - "raw_objects": 18, - "preserved": 18, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:433", - "raw_objects": 15, - "preserved": 15, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:427", - "raw_objects": 9, - "preserved": 9, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:405", - "raw_objects": 5, - "preserved": 5, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:412", - "raw_objects": 5, - "preserved": 5, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:422", - "raw_objects": 4, - "preserved": 4, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p投錨注意障害物:424", - "raw_objects": 3, - "preserved": 3, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:402", - "raw_objects": 3, - "preserved": 3, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 - }, - { - "class_key": "p航行危険障害物:410", - "raw_objects": 3, - "preserved": 3, - "missing_object": 0, - "wrong_relayer": 0, - "raw_class_lost": 0, - "class_mismatch": 0 + "identifier_lost": 0, + "identifier_mismatch": 0 } ], "issue_examples": {} diff --git a/report/object_preservation_20nm/object_preservation_final_20nm.md b/report/object_preservation_20nm/object_preservation_final_20nm.md index 4f4f48c..162e985 100644 --- a/report/object_preservation_20nm/object_preservation_final_20nm.md +++ b/report/object_preservation_20nm/object_preservation_final_20nm.md @@ -6,23 +6,41 @@ ## Totals - tiles compared: `154` -- raw objects: `2090` -- preserved: `2090` +- raw objects: `4165` +- preserved: `4165` - missing object: `0` - wrong relayer: `0` -- raw class lost: `0` -- class mismatch: `0` +- identifier lost: `0` +- identifier mismatch: `0` ## Per Rule +### `P航路ククリ->route_outline` + +- raw objects: `19` +- preserved: `19` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `0` +- identifier mismatch: `0` + ### `p投錨注意障害物->anchor_caution_hazard_point` - raw objects: `1426` - preserved: `1426` - missing object: `0` - wrong relayer: `0` -- raw class lost: `0` -- class mismatch: `0` +- identifier lost: `0` +- identifier mismatch: `0` + +### `p施設・境界線等->facility_boundary_point` + +- raw objects: `171` +- preserved: `171` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `0` +- identifier mismatch: `0` ### `p航行危険障害物->navigation_hazard_point` @@ -30,20 +48,29 @@ - preserved: `664` - missing object: `0` - wrong relayer: `0` -- raw class lost: `0` -- class mismatch: `0` +- identifier lost: `0` +- identifier mismatch: `0` + +### `p航路標識群->navigation_marks` + +- raw objects: `1885` +- preserved: `1885` +- missing object: `0` +- wrong relayer: `0` +- identifier lost: `0` +- identifier mismatch: `0` ## Top Class Issues -- `p投錨注意障害物:428` raw=`702` preserved=`702` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p航行危険障害物:404` raw=`413` preserved=`413` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:420` raw=`355` preserved=`355` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:425` raw=`255` preserved=`255` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p航行危険障害物:403` raw=`128` preserved=`128` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p航行危険障害物:432` raw=`40` preserved=`40` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:421` raw=`32` preserved=`32` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:415` raw=`25` preserved=`25` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:413` raw=`25` preserved=`25` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p航行危険障害物:409` raw=`25` preserved=`25` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p航行危険障害物:431` raw=`22` preserved=`22` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` -- `p投錨注意障害物:434` raw=`18` preserved=`18` missing=`0` wrong_relayer=`0` class_lost=`0` class_mismatch=`0` +- `p投錨注意障害物:428` raw=`702` preserved=`702` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航行危険障害物:404` raw=`413` preserved=`413` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p投錨注意障害物:420` raw=`355` preserved=`355` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p投錨注意障害物:425` raw=`255` preserved=`255` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:30600003` raw=`255` preserved=`255` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:31000000` raw=`200` preserved=`200` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:30600002` raw=`191` preserved=`191` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:30600001` raw=`189` preserved=`189` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:30100004` raw=`142` preserved=`142` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航行危険障害物:403` raw=`128` preserved=`128` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p施設・境界線等:520` raw=`128` preserved=`128` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` +- `p航路標識群:31336300` raw=`108` preserved=`108` missing=`0` wrong_relayer=`0` identifier_lost=`0` identifier_mismatch=`0` diff --git a/report/strict_audit_20nm_hakata_r11/strict_audit_summary.json b/report/strict_audit_20nm_hakata_r11/strict_audit_summary.json new file mode 100644 index 0000000..81eb915 --- /dev/null +++ b/report/strict_audit_20nm_hakata_r11/strict_audit_summary.json @@ -0,0 +1,325 @@ +{ + "compare_url": "http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20¢er=130.335,33.6385&zoom=12.2", + "compare_version": "compare-r15-20260401-1705", + "backend_audit_json": "/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json", + "visual_metrics": { + "image_width": 640, + "image_height": 400, + "total_pixels": 256000, + "changed_pixels": 204870, + "changed_ratio": 0.800273, + "mean_abs_rgb": [ + 35.246, + 30.4837, + 37.2849 + ], + "rms_rgb": [ + 63.4187, + 58.8447, + 61.8033 + ], + "diff_bbox": [ + 0, + 0, + 640, + 400 + ], + "full_crop_left": [ + 0, + 150, + 640, + 550 + ], + "full_crop_right": [ + 640, + 150, + 1280, + 550 + ], + "hotspots": [ + { + "image_width": 243, + "image_height": 160, + "total_pixels": 38880, + "changed_pixels": 36572, + "changed_ratio": 0.940638, + "mean_abs_rgb": [ + 56.5193, + 48.903, + 59.1648 + ], + "rms_rgb": [ + 80.9755, + 76.7491, + 82.393 + ], + "diff_bbox": [ + 0, + 0, + 243, + 160 + ], + "id": "hakata_inner_harbor_facilities", + "label": "博多港内港设施区", + "notes": "校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。", + "backend_focus": [ + "p施設・境界線等", + "facility_boundary_point", + "class_code" + ], + "pane_box_norm": [ + 0.48, + 0.36, + 0.86, + 0.76 + ], + "pane_box_pixels": [ + 307, + 144, + 550, + 304 + ], + "left_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_left.png", + "right_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_diff.png" + }, + { + "image_width": 269, + "image_height": 128, + "total_pixels": 34432, + "changed_pixels": 27307, + "changed_ratio": 0.79307, + "mean_abs_rgb": [ + 26.1097, + 26.7583, + 39.4596 + ], + "rms_rgb": [ + 47.3354, + 47.654, + 59.348 + ], + "diff_bbox": [ + 0, + 0, + 269, + 128 + ], + "id": "hakata_route_outline_facility", + "label": "博多港航路边界与设施点区", + "notes": "校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。", + "backend_focus": [ + "P航路ククリ", + "p施設・境界線等", + "route_outline", + "facility_boundary_point" + ], + "pane_box_norm": [ + 0.2, + 0.2, + 0.62, + 0.52 + ], + "pane_box_pixels": [ + 128, + 80, + 397, + 208 + ], + "left_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_left.png", + "right_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_diff.png" + }, + { + "image_width": 256, + "image_height": 104, + "total_pixels": 26624, + "changed_pixels": 20980, + "changed_ratio": 0.788011, + "mean_abs_rgb": [ + 28.3871, + 26.5249, + 30.4682 + ], + "rms_rgb": [ + 54.1879, + 52.0871, + 54.2968 + ], + "diff_bbox": [ + 0, + 0, + 256, + 104 + ], + "id": "hakata_central_passage_marks", + "label": "博多港中央航路灯标区", + "notes": "校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。", + "backend_focus": [ + "p航路標識群", + "navigation_marks", + "display_code" + ], + "pane_box_norm": [ + 0.02, + 0.1, + 0.42, + 0.36 + ], + "pane_box_pixels": [ + 13, + 40, + 269, + 144 + ], + "left_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_left.png", + "right_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_diff.png" + } + ] + }, + "backend_summary": { + "original_feature_instances": 258317, + "engineering_feature_instances": 258317, + "result_count": 516634, + "status_counts": { + "extra_in_engineering": 258317, + "missing_in_engineering": 258317 + }, + "top_annotation_issues": [ + { + "issue": "extra_text_in_engineering", + "source_layer": "bathymetry_line", + "count": 24168 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "depth_contour", + "count": 11929 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "seabed_text_point", + "count": 4499 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p底質", + "count": 4499 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "navigation_marks", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p航路標識群", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p地名", + "count": 1444 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "place_label_sea", + "count": 1444 + } + ], + "top_style_semantic_issues": [ + { + "issue": "depth_numeric_missing", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "safety_icon_missing", + "source_layer": "p航路標識群", + "count": 1885 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L概略等深線", + "count": 350 + }, + { + "issue": "clearance_numeric_missing", + "source_layer": "p高さ制限", + "count": 33 + } + ], + "top_source_layer_issues": [ + { + "status": "extra_in_engineering", + "source_layer": "baseline_outline", + "count": 87709 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線ククリ", + "count": 87709 + }, + { + "status": "extra_in_engineering", + "source_layer": "baseline_area", + "count": 50421 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線", + "count": 50421 + }, + { + "status": "extra_in_engineering", + "source_layer": "depth_contour", + "count": 36460 + }, + { + "status": "missing_in_engineering", + "source_layer": "L等深線", + "count": 36460 + }, + { + "status": "extra_in_engineering", + "source_layer": "bathymetry_line", + "count": 35940 + }, + { + "status": "missing_in_engineering", + "source_layer": "L海底地形", + "count": 35940 + }, + { + "status": "extra_in_engineering", + "source_layer": "onshore_structure_line", + "count": 10544 + }, + { + "status": "missing_in_engineering", + "source_layer": "L陸上構造物陸", + "count": 10544 + } + ] + }, + "notes": [ + "Visual metrics are browser-rendered screenshot diff metrics from the fixed compare page.", + "Backend metrics are current render-audit summary metrics and may remain blind to sprite-load failures." + ] +} \ No newline at end of file diff --git a/report/strict_audit_20nm_hakata_r11/strict_audit_summary.md b/report/strict_audit_20nm_hakata_r11/strict_audit_summary.md new file mode 100644 index 0000000..6fe0ccd --- /dev/null +++ b/report/strict_audit_20nm_hakata_r11/strict_audit_summary.md @@ -0,0 +1,104 @@ +# NavSea Strict Audit Summary + +## Scope + +- Compare page: `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20¢er=130.335,33.6385&zoom=12.2` +- Compare version: `compare-r15-20260401-1705` +- Backend render audit: `/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json` + +## Visual Audit + +- changed pixels: `204870` / `256000` +- changed ratio: `0.800273` +- mean abs rgb: `[35.246, 30.4837, 37.2849]` +- rms rgb: `[63.4187, 58.8447, 61.8033]` +- left crop: `[0, 150, 640, 550]` +- right crop: `[640, 150, 1280, 550]` + +Artifacts: + +- `report/strict_audit_20nm_hakata_r11/compare_full.png` +- `report/strict_audit_20nm_hakata_r11/compare_left.png` +- `report/strict_audit_20nm_hakata_r11/compare_right.png` +- `report/strict_audit_20nm_hakata_r11/compare_diff.png` + +## Hotspot AOI Audit + +### 博多港内港设施区 + +- id: `hakata_inner_harbor_facilities` +- notes: `校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。` +- backend focus: `['p施設・境界線等', 'facility_boundary_point', 'class_code']` +- changed pixels: `36572` / `38880` +- changed ratio: `0.940638` +- mean abs rgb: `[56.5193, 48.903, 59.1648]` +- pane box norm: `[0.48, 0.36, 0.86, 0.76]` +- pane box pixels: `[307, 144, 550, 304]` +- left image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_left.png` +- right image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_right.png` +- diff image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_inner_harbor_facilities_diff.png` + +### 博多港航路边界与设施点区 + +- id: `hakata_route_outline_facility` +- notes: `校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。` +- backend focus: `['P航路ククリ', 'p施設・境界線等', 'route_outline', 'facility_boundary_point']` +- changed pixels: `27307` / `34432` +- changed ratio: `0.79307` +- mean abs rgb: `[26.1097, 26.7583, 39.4596]` +- pane box norm: `[0.2, 0.2, 0.62, 0.52]` +- pane box pixels: `[128, 80, 397, 208]` +- left image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_left.png` +- right image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_right.png` +- diff image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_route_outline_facility_diff.png` + +### 博多港中央航路灯标区 + +- id: `hakata_central_passage_marks` +- notes: `校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。` +- backend focus: `['p航路標識群', 'navigation_marks', 'display_code']` +- changed pixels: `20980` / `26624` +- changed ratio: `0.788011` +- mean abs rgb: `[28.3871, 26.5249, 30.4682]` +- pane box norm: `[0.02, 0.1, 0.42, 0.36]` +- pane box pixels: `[13, 40, 269, 144]` +- left image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_left.png` +- right image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_right.png` +- diff image: `report/strict_audit_20nm_hakata_r11/hotspots/hakata_central_passage_marks_diff.png` + +## Backend Render Audit + +- original feature instances: `258317` +- delivery feature instances: `258317` +- result count: `516634` + +Status counts: + +- `extra_in_engineering`: `258317` +- `missing_in_engineering`: `258317` + +Top annotation issues: + +- `extra_text_in_engineering` | `bathymetry_line` | `24168` +- `text_missing_in_engineering` | `L海底地形` | `24168` +- `extra_text_in_engineering` | `depth_contour` | `11929` +- `text_missing_in_engineering` | `L等深線` | `11929` +- `extra_text_in_engineering` | `seabed_text_point` | `4499` +- `text_missing_in_engineering` | `p底質` | `4499` +- `extra_text_in_engineering` | `navigation_marks` | `1516` +- `text_missing_in_engineering` | `p航路標識群` | `1516` +- `text_missing_in_engineering` | `p地名` | `1444` +- `extra_text_in_engineering` | `place_label_sea` | `1444` + +Top style semantic issues: + +- `depth_numeric_missing` | `L海底地形` | `24168` +- `depth_numeric_missing` | `L等深線` | `11929` +- `safety_icon_missing` | `p航路標識群` | `1885` +- `depth_numeric_missing` | `L概略等深線` | `350` +- `clearance_numeric_missing` | `p高さ制限` | `33` + +## Interpretation + +- This report intentionally puts browser-rendered visual output and backend render-audit summary in one place. +- If the browser screenshot improves but backend counts do not, the current backend audit is likely blind to a browser/runtime issue such as sprite resolution. diff --git a/report/strict_audit_20nm_hakata_r9/strict_audit_summary.json b/report/strict_audit_20nm_hakata_r9/strict_audit_summary.json new file mode 100644 index 0000000..99ab255 --- /dev/null +++ b/report/strict_audit_20nm_hakata_r9/strict_audit_summary.json @@ -0,0 +1,325 @@ +{ + "compare_url": "http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20¢er=130.335,33.6385&zoom=12.2", + "compare_version": "compare-r15-20260401-1705", + "backend_audit_json": "/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json", + "visual_metrics": { + "image_width": 640, + "image_height": 400, + "total_pixels": 256000, + "changed_pixels": 204833, + "changed_ratio": 0.800129, + "mean_abs_rgb": [ + 35.2451, + 30.4831, + 37.2841 + ], + "rms_rgb": [ + 63.4189, + 58.8449, + 61.8034 + ], + "diff_bbox": [ + 0, + 0, + 640, + 400 + ], + "full_crop_left": [ + 0, + 150, + 640, + 550 + ], + "full_crop_right": [ + 640, + 150, + 1280, + 550 + ], + "hotspots": [ + { + "image_width": 243, + "image_height": 160, + "total_pixels": 38880, + "changed_pixels": 36572, + "changed_ratio": 0.940638, + "mean_abs_rgb": [ + 56.5193, + 48.903, + 59.1648 + ], + "rms_rgb": [ + 80.9755, + 76.7491, + 82.393 + ], + "diff_bbox": [ + 0, + 0, + 243, + 160 + ], + "id": "hakata_inner_harbor_facilities", + "label": "博多港内港设施区", + "notes": "校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。", + "backend_focus": [ + "p施設・境界線等", + "facility_boundary_point", + "class_code" + ], + "pane_box_norm": [ + 0.48, + 0.36, + 0.86, + 0.76 + ], + "pane_box_pixels": [ + 307, + 144, + 550, + 304 + ], + "left_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_left.png", + "right_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_diff.png" + }, + { + "image_width": 269, + "image_height": 128, + "total_pixels": 34432, + "changed_pixels": 27307, + "changed_ratio": 0.79307, + "mean_abs_rgb": [ + 26.1097, + 26.7583, + 39.4596 + ], + "rms_rgb": [ + 47.3354, + 47.654, + 59.348 + ], + "diff_bbox": [ + 0, + 0, + 269, + 128 + ], + "id": "hakata_route_outline_facility", + "label": "博多港航路边界与设施点区", + "notes": "校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。", + "backend_focus": [ + "P航路ククリ", + "p施設・境界線等", + "route_outline", + "facility_boundary_point" + ], + "pane_box_norm": [ + 0.2, + 0.2, + 0.62, + 0.52 + ], + "pane_box_pixels": [ + 128, + 80, + 397, + 208 + ], + "left_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_left.png", + "right_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_diff.png" + }, + { + "image_width": 256, + "image_height": 104, + "total_pixels": 26624, + "changed_pixels": 20980, + "changed_ratio": 0.788011, + "mean_abs_rgb": [ + 28.3871, + 26.5249, + 30.4682 + ], + "rms_rgb": [ + 54.1879, + 52.0871, + 54.2968 + ], + "diff_bbox": [ + 0, + 0, + 256, + 104 + ], + "id": "hakata_central_passage_marks", + "label": "博多港中央航路灯标区", + "notes": "校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。", + "backend_focus": [ + "p航路標識群", + "navigation_marks", + "display_code" + ], + "pane_box_norm": [ + 0.02, + 0.1, + 0.42, + 0.36 + ], + "pane_box_pixels": [ + 13, + 40, + 269, + 144 + ], + "left_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_left.png", + "right_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_right.png", + "diff_image": "report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_diff.png" + } + ] + }, + "backend_summary": { + "original_feature_instances": 258317, + "engineering_feature_instances": 258317, + "result_count": 516634, + "status_counts": { + "extra_in_engineering": 258317, + "missing_in_engineering": 258317 + }, + "top_annotation_issues": [ + { + "issue": "extra_text_in_engineering", + "source_layer": "bathymetry_line", + "count": 24168 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "depth_contour", + "count": 11929 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "seabed_text_point", + "count": 4499 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p底質", + "count": 4499 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "navigation_marks", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p航路標識群", + "count": 1516 + }, + { + "issue": "text_missing_in_engineering", + "source_layer": "p地名", + "count": 1444 + }, + { + "issue": "extra_text_in_engineering", + "source_layer": "place_label_sea", + "count": 1444 + } + ], + "top_style_semantic_issues": [ + { + "issue": "depth_numeric_missing", + "source_layer": "L海底地形", + "count": 24168 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L等深線", + "count": 11929 + }, + { + "issue": "safety_icon_missing", + "source_layer": "p航路標識群", + "count": 1885 + }, + { + "issue": "depth_numeric_missing", + "source_layer": "L概略等深線", + "count": 350 + }, + { + "issue": "clearance_numeric_missing", + "source_layer": "p高さ制限", + "count": 33 + } + ], + "top_source_layer_issues": [ + { + "status": "extra_in_engineering", + "source_layer": "baseline_outline", + "count": 87709 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線ククリ", + "count": 87709 + }, + { + "status": "extra_in_engineering", + "source_layer": "baseline_area", + "count": 50421 + }, + { + "status": "missing_in_engineering", + "source_layer": "P基本線", + "count": 50421 + }, + { + "status": "extra_in_engineering", + "source_layer": "depth_contour", + "count": 36460 + }, + { + "status": "missing_in_engineering", + "source_layer": "L等深線", + "count": 36460 + }, + { + "status": "extra_in_engineering", + "source_layer": "bathymetry_line", + "count": 35940 + }, + { + "status": "missing_in_engineering", + "source_layer": "L海底地形", + "count": 35940 + }, + { + "status": "extra_in_engineering", + "source_layer": "onshore_structure_line", + "count": 10544 + }, + { + "status": "missing_in_engineering", + "source_layer": "L陸上構造物陸", + "count": 10544 + } + ] + }, + "notes": [ + "Visual metrics are browser-rendered screenshot diff metrics from the fixed compare page.", + "Backend metrics are current render-audit summary metrics and may remain blind to sprite-load failures." + ] +} \ No newline at end of file diff --git a/report/strict_audit_20nm_hakata_r9/strict_audit_summary.md b/report/strict_audit_20nm_hakata_r9/strict_audit_summary.md new file mode 100644 index 0000000..6166e4f --- /dev/null +++ b/report/strict_audit_20nm_hakata_r9/strict_audit_summary.md @@ -0,0 +1,104 @@ +# NavSea Strict Audit Summary + +## Scope + +- Compare page: `http://192.168.200.184/newpec/navsea-compare-karatsu-20nm.html?profile=karatsu20¢er=130.335,33.6385&zoom=12.2` +- Compare version: `compare-r15-20260401-1705` +- Backend render audit: `/root/sourceserver/pbf/NavSea_Original_vs_Delivery_Render_Audit_Karatsu_20nm_2026-03-31.r7.json` + +## Visual Audit + +- changed pixels: `204833` / `256000` +- changed ratio: `0.800129` +- mean abs rgb: `[35.2451, 30.4831, 37.2841]` +- rms rgb: `[63.4189, 58.8449, 61.8034]` +- left crop: `[0, 150, 640, 550]` +- right crop: `[640, 150, 1280, 550]` + +Artifacts: + +- `report/strict_audit_20nm_hakata_r9/compare_full.png` +- `report/strict_audit_20nm_hakata_r9/compare_left.png` +- `report/strict_audit_20nm_hakata_r9/compare_right.png` +- `report/strict_audit_20nm_hakata_r9/compare_diff.png` + +## Hotspot AOI Audit + +### 博多港内港设施区 + +- id: `hakata_inner_harbor_facilities` +- notes: `校验港湾、渔港、海之驿、码头设施点是否保留细分类图标。` +- backend focus: `['p施設・境界線等', 'facility_boundary_point', 'class_code']` +- changed pixels: `36572` / `38880` +- changed ratio: `0.940638` +- mean abs rgb: `[56.5193, 48.903, 59.1648]` +- pane box norm: `[0.48, 0.36, 0.86, 0.76]` +- pane box pixels: `[307, 144, 550, 304]` +- left image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_left.png` +- right image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_right.png` +- diff image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_inner_harbor_facilities_diff.png` + +### 博多港航路边界与设施点区 + +- id: `hakata_route_outline_facility` +- notes: `校验紫色航路虚线是否存在,以及 class 505/520/530/550 设施点是否不再被画成通用图标。` +- backend focus: `['P航路ククリ', 'p施設・境界線等', 'route_outline', 'facility_boundary_point']` +- changed pixels: `27307` / `34432` +- changed ratio: `0.79307` +- mean abs rgb: `[26.1097, 26.7583, 39.4596]` +- pane box norm: `[0.2, 0.2, 0.62, 0.52]` +- pane box pixels: `[128, 80, 397, 208]` +- left image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_left.png` +- right image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_right.png` +- diff image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_route_outline_facility_diff.png` + +### 博多港中央航路灯标区 + +- id: `hakata_central_passage_marks` +- notes: `校验 31135x 灯标、红绿小灯和航路文字是否仍然可见。` +- backend focus: `['p航路標識群', 'navigation_marks', 'display_code']` +- changed pixels: `20980` / `26624` +- changed ratio: `0.788011` +- mean abs rgb: `[28.3871, 26.5249, 30.4682]` +- pane box norm: `[0.02, 0.1, 0.42, 0.36]` +- pane box pixels: `[13, 40, 269, 144]` +- left image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_left.png` +- right image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_right.png` +- diff image: `report/strict_audit_20nm_hakata_r9/hotspots/hakata_central_passage_marks_diff.png` + +## Backend Render Audit + +- original feature instances: `258317` +- delivery feature instances: `258317` +- result count: `516634` + +Status counts: + +- `extra_in_engineering`: `258317` +- `missing_in_engineering`: `258317` + +Top annotation issues: + +- `extra_text_in_engineering` | `bathymetry_line` | `24168` +- `text_missing_in_engineering` | `L海底地形` | `24168` +- `extra_text_in_engineering` | `depth_contour` | `11929` +- `text_missing_in_engineering` | `L等深線` | `11929` +- `extra_text_in_engineering` | `seabed_text_point` | `4499` +- `text_missing_in_engineering` | `p底質` | `4499` +- `extra_text_in_engineering` | `navigation_marks` | `1516` +- `text_missing_in_engineering` | `p航路標識群` | `1516` +- `text_missing_in_engineering` | `p地名` | `1444` +- `extra_text_in_engineering` | `place_label_sea` | `1444` + +Top style semantic issues: + +- `depth_numeric_missing` | `L海底地形` | `24168` +- `depth_numeric_missing` | `L等深線` | `11929` +- `safety_icon_missing` | `p航路標識群` | `1885` +- `depth_numeric_missing` | `L概略等深線` | `350` +- `clearance_numeric_missing` | `p高さ制限` | `33` + +## Interpretation + +- This report intentionally puts browser-rendered visual output and backend render-audit summary in one place. +- If the browser screenshot improves but backend counts do not, the current backend audit is likely blind to a browser/runtime issue such as sprite resolution. diff --git a/src/pbf/navsea-compare-karatsu-20nm.html b/src/pbf/navsea-compare-karatsu-20nm.html index 9c2ea5c..307ef2c 100644 --- a/src/pbf/navsea-compare-karatsu-20nm.html +++ b/src/pbf/navsea-compare-karatsu-20nm.html @@ -314,7 +314,7 @@