Files
pbf/tasks/pbf/OutPbf.md
2026-03-17 19:48:15 +08:00

4.3 KiB

NavSea Codex Task

Karatsu AOI Vector Tile Build

Architecture: NavSea V11 / Codex6 Scope: Server Side Tile Build


Task Name

NavSea_Karatsu_AOI_PBF_Builder


Task Goal

Generate a NavSea Vector Tile dataset for the area surrounding Karatsu City (唐津市).

The tile build must cover approximately:

10 nautical mile radius
centered on Karatsu city

The tiles must be generated for all zoom levels supported by NavSea.

The generated tiles will be used to validate:

  • semantic overlay
  • render compatibility
  • navigation object detection
  • tile density behavior
  • style compatibility

Output Location

Tiles must be written to:

/home/wwwroot/pbf

Directory structure must follow standard vector tile layout:

/home/wwwroot/pbf/{z}/{x}/{y}.pbf

Example:

/home/wwwroot/pbf/10/864/440.pbf

Existing files in the directory may be overwritten.


AOI Definition

Center location:

Karatsu City
Japan

Recommended reference coordinate:

Lat: 33.4425
Lon: 129.9697

Coverage radius:

10 nautical miles
≈ 18.52 km

Codex may implement this AOI using one of the following:

1 center point + radius
2 bounding box derived from radius
3 tile range approximation

The resulting tiles must fully cover the requested radius.


Zoom Levels

Tiles must be generated for:

z = 0 → 14

(Or the maximum zoom available in the dataset.)


Data Sources

Tile features must be built from the validated NavSea semantic dataset.

Primary semantic source:

pbf_relayer_candidates

Additional required tables:

features
properties
at_attributes
feature_semantic

These tables must be joined to reconstruct the full feature.


Feature Reconstruction Rules

Each output tile feature must include:

Geometry

From:

features

Fields:

z
x
y
geom_type

The geometry encoding must match the original vector tile geometry.


Original Attributes

All original attributes from:

properties

must be preserved.

Examples include:

class
shape
name
symbol
depth
category

These attributes must not be removed or renamed.


Semantic Attributes

Additional semantic fields must be included from:

pbf_relayer_candidates

Including:

canonical_object_type
canonical_family
semantic_key
detection_key
render_layer

These fields must be added, not replacing original fields.


Feature Selection

Features must be selected based on tile coordinates intersecting the AOI.

Selection process:

1 determine tile range covering AOI
2 select features matching tile coordinates
3 group features by tile
4 encode each tile

Tile Encoding

Each tile must be encoded as a Mapbox Vector Tile (MVT).

Encoding rules:

Layer name = render_layer

If render_layer is null, fallback to:

source_layer

Geometry must be encoded according to:

geom_type

Performance Requirements

The tile builder must:

avoid full-table scans where possible
use tile coordinate filtering
process tiles incrementally

The builder must not attempt to load the entire dataset into memory.


Build Script

Codex must implement a script:

navsea_tile_builder.py

Capabilities required:

AOI tile calculation
database feature extraction
tile grouping
vector tile encoding
parallel tile generation
filesystem output

Suggested Execution

The build script should be executable as:

python navsea_tile_builder.py \
--center-lat 33.4425 \
--center-lon 129.9697 \
--radius-nm 10 \
--zmin 0 \
--zmax 14 \
--output /home/wwwroot/pbf

Expected Result

After the build completes, the directory should contain:

/home/wwwroot/pbf/
 ├─ 0/
 ├─ 1/
 ├─ 2/
 ├─ ...
 └─ 14/

Each containing:

{x}/{y}.pbf

The tiles must render correctly in MapLibre / OpenCPN / tile viewers.


Verification

After build, the following checks should pass:

tiles exist for requested AOI
tile hierarchy is correct
vector tiles decode successfully
original attributes preserved
semantic fields present

Example feature should resemble:

{
  "class": "灯",
  "shape": "灯標",
  "name": "唐津灯台",

  "canonical_object_type": "navigation_light",
  "canonical_family": "navigation_aid",
  "detection_key": "nav_light"
}

End Task