Initial import
This commit is contained in:
127
docs/GeoMaskFoundation.md
Normal file
127
docs/GeoMaskFoundation.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# NavSea Geo Mask Foundation
|
||||
|
||||
Version: codex6
|
||||
Architecture: NavSea V11
|
||||
Domain: geo-mask
|
||||
Status: implemented-v1
|
||||
|
||||
## 1. Selection Conclusion
|
||||
|
||||
NavSea `land/sea mask` foundation v1 uses `Natural Earth 10m land` as the default source asset.
|
||||
|
||||
Selection result:
|
||||
|
||||
- Primary source: `Natural Earth 10m land`
|
||||
- Backup direction: `GSHHG`
|
||||
- Local refinement direction: `GSI coastline / local land assets`
|
||||
|
||||
Why this was chosen for v1:
|
||||
|
||||
- Good enough coastline detail for Japan and nearby waters
|
||||
- Stable global coverage
|
||||
- Easy to automate in a server-side pipeline
|
||||
- Lightweight preprocessing path without adding new geo stack dependencies
|
||||
- Independent from weather products and reusable by multiple display lines
|
||||
|
||||
## 2. Source Comparison
|
||||
|
||||
### Natural Earth 10m land
|
||||
|
||||
- Japan coastal suitability: good for v1 display masking
|
||||
- Coastline detail: medium-high
|
||||
- Island detail: good, but not the highest fidelity
|
||||
- Licensing: permissive and easy to operationalize
|
||||
- Coverage: global
|
||||
- Update cadence: moderate
|
||||
- Preprocess complexity: low
|
||||
- Integration difficulty: low
|
||||
|
||||
### GSHHG
|
||||
|
||||
- Japan coastal suitability: very strong
|
||||
- Coastline detail: higher than Natural Earth in many coastal areas
|
||||
- Island detail: stronger
|
||||
- Licensing / operational complexity: acceptable but heavier than Natural Earth for this repo
|
||||
- Coverage: global
|
||||
- Preprocess complexity: medium
|
||||
- Integration difficulty: medium
|
||||
|
||||
### GSI local assets
|
||||
|
||||
- Japan coastal suitability: strongest for Japan-specific refinement
|
||||
- Coastline detail: potentially best
|
||||
- Coverage: Japan-focused
|
||||
- Operational complexity: medium-high because it should be layered as a refinement source, not as the only source
|
||||
- Integration difficulty: medium-high
|
||||
|
||||
## 3. V1 Asset Model
|
||||
|
||||
V1 outputs a reusable raster mask tile asset:
|
||||
|
||||
```text
|
||||
/geo-mask/land-sea/{z}/{x}/{y}.png
|
||||
```
|
||||
|
||||
Semantics:
|
||||
|
||||
- `sea`: pixel alpha `0`
|
||||
- `land`: pixel alpha `255`
|
||||
- `coastTransition`: reserved for v2, not yet emitted
|
||||
|
||||
PNG interpretation:
|
||||
|
||||
- RGB is white for land pixels
|
||||
- Alpha carries the effective mask
|
||||
|
||||
## 4. Metadata Model
|
||||
|
||||
V1 metadata fields:
|
||||
|
||||
- `maskId`
|
||||
- `version`
|
||||
- `source`
|
||||
- `classes`
|
||||
- `encoding`
|
||||
- `coverage`
|
||||
- `supportedZoom`
|
||||
- `coastTransition`
|
||||
- `noDataMode`
|
||||
- `displayPolicies`
|
||||
|
||||
## 5. Display Integration Boundary
|
||||
|
||||
The geo mask layer is product-independent and only answers geography semantics.
|
||||
|
||||
Recommended display product policy binding:
|
||||
|
||||
- `wind`: sea normal, land attenuate
|
||||
- `wave`: sea normal, land mask
|
||||
- `current`: sea normal, land mask
|
||||
- `pressure`: sea normal, land normal
|
||||
|
||||
These policies are separate from the mask asset itself.
|
||||
|
||||
## 6. Directory Layout
|
||||
|
||||
Source asset:
|
||||
|
||||
```text
|
||||
data/geo_mask/source/ne_10m_land.geojson
|
||||
```
|
||||
|
||||
Generated output:
|
||||
|
||||
```text
|
||||
/home/wwwroot/weather/geo-mask/land-sea/{z}/{x}/{y}.png
|
||||
/home/wwwroot/weather/geo-mask/metadata/land-sea.json
|
||||
/home/wwwroot/weather/geo-mask/policies/display-product-policies.json
|
||||
```
|
||||
|
||||
## 7. V2 Extension Path
|
||||
|
||||
Planned next steps:
|
||||
|
||||
- add `coastTransition` band
|
||||
- blend-friendly shoreline attenuation
|
||||
- multi-zoom simplification strategy
|
||||
- Japan hotspot refinement using higher-resolution local coast assets
|
||||
Reference in New Issue
Block a user