Files
pbf/NavSea_全国三层数据生成与查看说明.md
2026-05-02 14:32:06 +08:00

7.2 KiB
Raw Permalink Blame History

NavSea 全国四脚本一页面数据生成与查看说明

本文说明全国版三层数据的重算、导出、整体密度图生成和页面查看方式。

当前统一数据库:

  • navsea_japan_coast_grid

当前全国三层:

  • coast_200m:全国海岸 200x200
  • fish_port_20m:全国渔港 20x20
  • hazard_50m:全国海上障碍 50x50

当前整体密度图:

  • density_overview:三档密度整体格子图

1. 生成顺序

建议按下面顺序重算:

  1. 先生成 200x200
  2. 再生成 20x20
  3. 最后生成 50x50
  4. 再导出全国静态 JSON 资产
  5. 最后查看整体密度图

这样可以先把底盘准备好,再做上层数据。

2. 200x200 全国海岸重算

脚本:

默认会写入:

  • 数据库:navsea_japan_coast_grid
  • 图层:coast_200m
  • 导出目录:out/coastline/japan_coast_grid_mysql

执行命令:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_japan_coast_grid_mysql.py

3. 20x20 全国渔港重算

脚本:

默认会写入:

  • 数据库:navsea_japan_coast_grid
  • 图层:fish_port_20m

推荐执行命令:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_fish_port_20m_full_mysql_resume.py \
  --resume \
  --max-scan-cells 200000

如果只想重算某个 PRC,可以显式指定,例如:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_fish_port_20m_full_mysql_resume.py \
  --prc 02 \
  --max-scan-cells 200000

如果只想重算某个具体渔港,可以直接用 FPC,例如:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_fish_port_20m_full_mysql_resume.py \
  --fpc 1210100 \
  --max-scan-cells 200000

说明:

  • PRC 需要按两位字符串理解,202 等价
  • FPC 是单个渔港的港码,脚本会先反查它所属的 PRC,再只重算这个港口
  • 单港口模式会在日志里同时输出:
    • 命中的 200x200 粗格数量
    • 最终写入的 20x20 格子数量
  • 默认先按渔港 bbox 找同区域 coast_200m 粗格,再把粗格切成 20x20
  • 默认不会再允许无边界整片扫描
  • 如果确实要回退旧行为,需要手动加脚本里提供的相应开关

4. 根据港名查 FPC

脚本:

用途:

  • 已知渔港名字时,先查出可能的 FPC
  • 这个脚本会扫描 coastline/C09-06.zip 里的渔港要素
  • 支持模糊匹配和精确匹配

推荐用法:

cd /root/sourceserver/pbf
./.venv/bin/python find_fpc_by_port_name.py 無垢島

如果你想只看精确命中:

cd /root/sourceserver/pbf
./.venv/bin/python find_fpc_by_port_name.py 無垢島 --exact

如果你想要 JSON 结果:

cd /root/sourceserver/pbf
./.venv/bin/python find_fpc_by_port_name.py 無垢島 --json

如果原始包里没有港名字段,建议改用港名对照表:

cd /root/sourceserver/pbf
./.venv/bin/python find_fpc_by_port_name.py 無垢島 --catalog out/port_name_catalog.csv

对照表最低需要这些列里的任意几列:

  • name / 港名 / 名称
  • FPC
  • 可选 PRC

说明:

  • 这份脚本主要查 C09-06.zip 里的渔港名称字段
  • 默认会把 NA2NA4FCF 等候选字段一起拿来比对
  • 输出里会给出:
    • FPC
    • PRC
    • 主名称
    • 辅助名称
    • 源记录 id
  • 如果原始包里没有这条名字,脚本会提示你改用 --catalog

5. 50x50 全国障碍重算

脚本:

默认会写入:

  • 数据库:navsea_japan_coast_grid
  • 图层:hazard_50m
  • PBF 根目录:/home/wwwroot/pbf-delivery-full-20260418-rebuild

执行命令:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_japan_hazard_50m_mysql.py

这个脚本当前会纳入:

  • navigation_hazard_area
  • fixed_fishing_gear_area
  • anchor_caution_hazard_area
  • navigation_hazard_point
  • anchor_caution_hazard_point
  • navigation_marks
  • baseline_areacanonical_object_type=breakwater

6. 全国三层静态 JSON 导出

脚本:

默认导出到:

  • src/pbf/coastline-mysql/japan_national/

执行命令:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/export_navgrid_mysql_assets.py \
  --db-name navsea_japan_coast_grid \
  --out-dir src/pbf/coastline-mysql/japan_national

导出结果包括:

  • coast_200m_grid.geojson
  • fish_port_20m_grid.geojson
  • hazard_50m_grid.geojson
  • density_overview_grid.geojson
  • manifest.json

说明:

  • density_overview_grid.geojson 是按密度优先级合并后的整体格子图
  • 同一区域如果存在更高密度格子,就优先保留更高密度
  • 当前密度优先级:
    • 20x20 = 高密度,淡绿色
    • 50x50 = 中密度,黄色
    • 200x200 = 低密度,淡红色

7. HTML 预览页面

当前全国预览页面:

  • http://192.168.200.184/newpec/navsea-coastline-fukuoka-saga-200m.html

说明:

  • 页面标题已经改成全国口径
  • 页面内有四个按钮:
    • 200x200
    • 20x20
    • 50x50
    • 整体密度

页面对应的本地文件:

页面加载的数据源:

  • ./coastline-mysql/japan_coast_200m/manifest.json
  • ./coastline-mysql/japan_coast_200m/coast_200m_grid.geojson
  • ./coastline-mysql/japan_national/manifest.json
  • ./coastline-mysql/japan_national/fish_port_20m_grid.geojson
  • ./coastline-mysql/japan_national/hazard_50m_grid.geojson
  • ./coastline-mysql/japan_national/density_overview_grid.geojson

8. 页面查看方式

如果只是看全国 200x200

  1. 打开页面
  2. 默认就是 200x200
  3. 页面会自动定位到全国底盘范围

如果想切换看渔港或障碍:

  1. 点击 20x20
  2. 点击 50x50
  3. 点击 整体密度

如果想强制刷新:

  1. 点击 重新加载

9. 线下同步到网页目录

如果你重新生成了静态资产,想让线上页面立即看到新内容,通常需要把生成结果同步到网页目录:

cp -r src/pbf/coastline-mysql/japan_national /mnt/sda1/www/newpec/
cp src/pbf/navsea-coastline-fukuoka-saga-200m.html /mnt/sda1/www/newpec/navsea-coastline-fukuoka-saga-200m.html

10. 一句话版

最常用的整套命令是:

cd /root/sourceserver/pbf
./.venv/bin/python coastline/build_japan_coast_grid_mysql.py
./.venv/bin/python coastline/build_fish_port_20m_full_mysql_resume.py --resume --max-scan-cells 200000
./.venv/bin/python coastline/build_japan_hazard_50m_mysql.py
./.venv/bin/python coastline/export_navgrid_mysql_assets.py --db-name navsea_japan_coast_grid --out-dir src/pbf/coastline-mysql/japan_national

然后打开:

  • http://192.168.200.184/newpec/navsea-coastline-fukuoka-saga-200m.html