Class S129UnderKeelClearancePlan
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
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
DatasetIdentifier
The dataset identifier carried by the source GML Dataset element.
public string? DatasetIdentifier { get; init; }
Property Value
NonNavigableAreas
Non-navigable surface features.
public IReadOnlyList<S129NonNavigableArea> NonNavigableAreas { get; init; }
Property Value
Plan
The plan metadata header, or null if absent.
public S129UkcPlanMetadata? Plan { get; init; }
Property Value
PlanArea
The plan area surface, or null if absent.
public S129UkcPlanArea? PlanArea { get; init; }
Property Value
ProductIdentifier
The S-129 product identifier (typically "S-129").
public string? ProductIdentifier { get; init; }
Property Value
Source
The originating feature-bag dataset.
public required S129Dataset Source { get; init; }
Property Value
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
datasetS129DatasetThe source dataset.
diagnosticsIReadOnlyList<ProjectionDiagnostic>Out parameter receiving the projection diagnostics.
Returns
Exceptions
- InvalidOperationException
Thrown if
datasetcontains no features.