Files
weather/tasks/NavSea_LandSeaMaskFoundation.md
OpenAI Codex c957fef15b Initial import
2026-03-17 19:52:51 +08:00

277 lines
6.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Task: NavSea_LandSeaMaskFoundation
Version: codex6
Architecture: NavSea V11
Domain: geo-mask
Status: planned
---
## 1. 任务名称
`NavSea_LandSeaMaskFoundation`
---
## 2. 任务目标
建立 NavSea 的 `land/sea mask` 基础能力,作为天气 Display Product 服务端生成链的独立地理基础层。
该任务的目标不是生成天气数据,而是建立一个可复用的海陆判定资产,使后续天气显示产品能够支持:
- 海域正常显示
- 陆地弱化或屏蔽
- 海岸过渡带处理
- 不同天气产品按海陆语义应用不同 compositing 规则
- 不同 zoom 下稳定一致的海陆判定
本任务必须明确:
- land/sea mask 是独立基础地理资产
- 不从天气 pbf 中反推海陆边界
- mask 需服务于 Display Product但不依附于某个天气产品
- mask 后续也可复用于其它海图/航海场景
---
## 3. 问题定义
当前 NavSea 天气显示层需要区分海域与陆地,否则会出现:
- 陆地区域被整体染色
- 底图地名和地形被压脏
- 海岸线附近视觉边界不干净
- wave/current 等本应海域专属的产品错误显示到陆地
- wind 等产品缺少“海域优先、陆地弱化”的语义控制
这些问题无法通过天气数据本身稳定解决。
因此必须建立独立 land/sea mask 基础层。
---
## 4. 核心原则
### 4.1 Mask 必须独立于天气产品
land/sea mask 不得从 weather pbf、weather raster、weather contour 结果中推断。
### 4.2 Mask 是基础地理资产
它应来源于独立海岸线、陆地面、水域面或底图地理数据。
### 4.3 Mask 必须可复用
同一套 mask 应可服务于:
- wind display
- wave display
- current display
- pressure display
- 后续其它海图叠加产品
### 4.4 产品规则独立于 mask 数据本身
mask 只回答“哪里是 land / sea / coast transition”
具体如何使用由各 weather product policy 决定。
---
## 5. 推荐数据来源方向
本任务允许并建议调研与选型以下来源:
### 5.1 日本本地官方方向
- 国土地理院GSI相关地理数据 / 地理院瓦片体系 / 可复用海岸线或陆地区域数据
### 5.2 全球通用基础源
- Natural Earth
- GSHHG
- OpenStreetMap 派生 coastline / land polygons / water polygons
### 5.3 复用现有底图数据
若 NavSea 当前底图体系已经具备:
- land polygon
- water polygon
- coastline vector data
则优先复用,不重复建设平行数据链。
建议按 OSM land polygons → GSHHG → GSI 来尝试模型。
---
## 6. 任务范围
本任务关注:
- land/sea mask 数据源选型
- mask 数据模型
- mask 生成规则
- mask tile / mask asset 组织方式
- coastline transition 基础能力
- mask 元数据定义
- 与 Display Product 的服务端对接边界
本任务不包括:
- 天气 raster 生成
- palette 生成
- Analysis Product 查询
- Offline Package 打包
- 前端 layer 实现
- 航线规划算法
---
## 7. 目标产物
本任务完成后,应至少形成:
1. `land/sea mask` 数据来源选型结论
2. `mask asset` 组织方案
3. `mask tile``mask data block` 输出方案
4. `coast transition` 基础定义
5. `mask metadata` 结构
6. 给 Display Product 复用的服务端接口或内部资产规范
---
## 8. 推荐实现方向
### 8.1 最小可行版本
先建立基础二值判定:
- land
- sea
并支持:
- land attenuate
- land mask out
### 8.2 第二阶段增强
增加海岸过渡带:
- coast transition band
- 渐变衰减
- 防止海岸线处硬切边
### 8.3 输出形式建议
推荐至少评估以下两种输出之一:
#### A. Raster mask tiles
例如:
`/geo-mask/land-sea/{z}/{x}/{y}.png`
适合快速接入服务端 display compositing。
#### B. Vector / polygon asset
例如:
- 预处理 land polygons
- 预处理 coastline bands
- 服务端生成 tile 时内部引用
适合更高质量生成链。
---
## 9. 必须定义的数据语义
至少定义:
- `land`
- `sea`
- `coastTransition`(如实现第二阶段)
- no-data / out-of-coverage 行为
- 不同 zoom 下精度与简化策略
- mask 版本号
- 源数据来源标识
---
## 10. Display Product 对接要求
本任务必须为后续天气显示产品提供可复用能力,使不同产品可采用不同策略,例如:
### wind
- sea: normal
- land: attenuate
### wave
- sea: normal
- land: mask
### current
- sea: normal
- land: mask
### pressure
- sea: normal
- land: normal
因此本任务输出的不是某个固定产品规则,而是支持这些规则的统一 mask 基础层。
---
## 11. 选型评估要求
执行任务时,必须对候选数据源至少从以下维度进行比较:
- 日本沿岸适用性
- 海岸线精度
- 岛屿细节表现
- 许可与使用约束
- 全球/区域覆盖能力
- 数据更新便利性
- 预处理复杂度
- 与当前底图体系兼容性
- 服务端 tile 生成链接入难度
---
## 12. 第一阶段最小可交付
### 必做
1. 数据源选型结论
2. land/sea mask 数据模型
3. mask 资产组织方式
4. 基础 land / sea 判定
5. 给 Display Product 的对接方式
### 第二阶段
1. coast transition band
2. 多 zoom 精度策略
3. 日本重点海域精度优化
4. 与 Offline Package 的复用关系定义
---
## 13. 接受标准
任务完成时,必须满足:
- land/sea mask 被正式定义为独立基础层
- 不再从天气 pbf 推断海陆边界
- 已有明确数据源选型结论
- 已定义 mask 资产和输出组织方式
- 已能支撑 Display Product 的海陆差异化显示
- 已为 coastline transition 预留扩展空间
- 符合 NavSea V11 非破坏式扩展要求
---
## 14. Codex 执行要求
执行此任务时:
- 优先产出选型文档、mask 类型定义、mask asset 组织规则
- 若修改已有文件,必须等待用户提供原文件
- 若新建 `.ts/.tsx` 文件,必须包含 NavSea logger 初始化
- 不引入未知依赖
- 不把天气产品逻辑混入 mask 基础层
- 不把 mask 简化成前端临时判断逻辑
---
## 15. 一句话定义
本任务的本质是:
**为 NavSea 建立一个独立、可复用、可服务于天气显示产品的 land/sea mask 基础地理资产层。**
---