Table of Contents

Class S129UnderKeelClearancePlan

Namespace
EncDotNet.S100.Datasets.S129.DataModel
Assembly
EncDotNet.S100.Datasets.S129.dll

Strongly-typed projection of an S129Dataset as a single Under Keel Clearance Management plan (S-129 Edition 2.0.0).

public sealed class S129UnderKeelClearancePlan
Inheritance
S129UnderKeelClearancePlan
Inherited Members

Remarks

An S-129 dataset carries one UKC plan per file: a single UnderKeelClearancePlan metadata feature, a single UnderKeelClearancePlanArea surface feature describing the plan's spatial extent, zero or more UnderKeelClearance*Area surfaces marking non-navigable / almost-non-navigable regions, and an ordered sequence of UnderKeelClearanceControlPoint features carrying the per-waypoint UKC time-step measurements.

This typed projection surfaces all of the above as strongly-typed records, with control points ordered by ExpectedPassingTime (stable; gaps are preserved — per S-129 expert checklist, the typed model does not interpolate across explicit gaps declared by the producer).

Cross-product links — to the source S-421 route, to the S-102 bathymetry the producer used as input, and to the S-104 water-level forecast — are textual in S-129 Edition 2.0.0: the producer records identifiers (vesselID, sourceRouteName / sourceRouteVersion) rather than GML xlink:href URLs. They are surfaced as S129ExternalReference values with no eager resolution; downstream code is free to resolve them against its own catalogue.

Projection issues — duplicate plan / plan-area features, attribute parse failures, unresolved xlinks — surface as ProjectionDiagnostic entries rather than exceptions. The projection only throws when the source dataset is fully empty (no features).

Properties

AlmostNonNavigableAreas

Almost-non-navigable surface features.

public IReadOnlyList<S129AlmostNonNavigableArea> AlmostNonNavigableAreas { get; init; }

Property Value

IReadOnlyList<S129AlmostNonNavigableArea>

ControlPoints

Control points carrying the per-waypoint UKC time-step measurements, ordered by ExpectedPassingTime (control points with no expected-passing-time are sorted last, in their source-document order).

public IReadOnlyList<S129ControlPoint> ControlPoints { get; init; }

Property Value

IReadOnlyList<S129ControlPoint>

DatasetIdentifier

The dataset identifier carried by the source GML Dataset element.

public string? DatasetIdentifier { get; init; }

Property Value

string

NonNavigableAreas

Non-navigable surface features.

public IReadOnlyList<S129NonNavigableArea> NonNavigableAreas { get; init; }

Property Value

IReadOnlyList<S129NonNavigableArea>

Plan

The plan metadata header, or null if absent.

public S129UkcPlanMetadata? Plan { get; init; }

Property Value

S129UkcPlanMetadata

PlanArea

The plan area surface, or null if absent.

public S129UkcPlanArea? PlanArea { get; init; }

Property Value

S129UkcPlanArea

ProductIdentifier

The S-129 product identifier (typically "S-129").

public string? ProductIdentifier { get; init; }

Property Value

string

Source

The originating feature-bag dataset.

public required S129Dataset Source { get; init; }

Property Value

S129Dataset

Methods

From(S129Dataset, out IReadOnlyList<ProjectionDiagnostic>)

Projects a feature-bag S129Dataset into the typed data model. Issues encountered during projection are reported via diagnostics; the projection only throws for a fully empty dataset.

public static S129UnderKeelClearancePlan From(S129Dataset dataset, out IReadOnlyList<ProjectionDiagnostic> diagnostics)

Parameters

dataset S129Dataset

The source dataset.

diagnostics IReadOnlyList<ProjectionDiagnostic>

Out parameter receiving the projection diagnostics.

Returns

S129UnderKeelClearancePlan

Exceptions

InvalidOperationException

Thrown if dataset contains no features.