Skip to content

OSM wetland land-cover layer (marsh, mangrove, tidal flat) #64

Description

@bkeepers

OSM wetland land-cover layer (marsh, mangrove, tidal flat)

What

Add a wetland land-cover layer sourced from OSM/Overture (salt marsh, mangrove, and tidal flat) so the chart shows the vegetated intertidal zone the way a paper chart does: INT1 green with grass-tuft and mangrove symbols. Today these areas render as blank land.

Why

A nautical chart marks coastal wetlands. The motivating case is the ICW marsh at Jacksonville that started the inland-water work: the dredged channel now renders from S-102/CUDEM, but the marsh around it is still blank land. The data to fix that already exists in OSM.

Data

Overture theme=base/type=land, subtype='wetland'. The kind we need lives in the source_tags JSON (wetland=marsh|saltmarsh|mangrove|tidalflat|…), not the flattened Overture class column, which collapses everything to wetland. The keep-set is roughly 0.67M polygons (marsh 520k + mangrove 58k + tidalflat 46k + saltmarsh 42k). Skip bog/swamp/fen/reedbed and the ~2M polygons carrying no wetland=* kind at all (half the tagged ones are bog/swamp, so guessing marsh would be wrong as often as right). This is a third OSM polygon feed alongside land.fgb and water.fgb.

Scope and design (already worked out in docs/plans/2026-07-08-drying-geometry.md)

The drying-geometry plan already covers how drying and wetland relate:

  • Drying and wetland stack. Drying supplies the green fill; the wetland layer adds the vegetation symbol on top. That is the INT1/S-4 convention for tidal marsh.
  • The wetland layer carries a fill only where there is no drying underneath (marsh the DEM misses), so two green fills never compound.
  • Marsh versus flat is resolved by geometry in the drying layer (any [0,cap] terrain seaward of the effective coastline is drying, vegetated or not), so this layer only classifies and symbolizes. It does not carve or reclassify drying.

So the work here is mostly a rendering layer rather than a geometry problem: a per-tile fork emitting a wetlands vector layer with a class attribute, the fill-pattern symbology in the style (grass-tuft for marsh, mangrove symbol for mangrove), and the render-time gate that suppresses the fill over drying.

Open decision

A wetland=tidalflat polygon is a drying area. Where the DEM covers it, drying already draws it. Where the DEM does not, should the OSM tidalflat polygon emit a drying feature as a fallback?

  • (a) Yes. The tidalflat fills the DEM gap as drying (unknown height). This maximizes coverage and reaches the centerline-only marsh creeks the DEM misses, but it is OSM-asserted rather than measured, so it needs the low-confidence treatment from Per-source confidence grade + source identity on tiles (CATZOC-style) #17.
  • (b) No. Tidalflat is only a land-cover class, symbolized as a tidal flat but never claiming to be a charted drying area. Cleaner provenance, less coverage.

Depends on

Out of scope

Per-source confidence / zoc (#17) and datum correction (#16). Wetlands stay out of the clamp mask regardless: they are above-datum terrain, unchanged by this work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cartographyChart presentation and generalizationdecisionDirection to decideenhancementNew feature or requestpipelineBuild pipeline engine

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions