Class S411SeaIceInventory
Strongly-typed projection of an S411Dataset as an inventory of sea-ice and lake-ice features (S-411 Edition 1.2.1).
public sealed class S411SeaIceInventory
- Inheritance
-
S411SeaIceInventory
- Inherited Members
Remarks
The projection mirrors the S-128 / S-201 pattern: a static From(S411Dataset, out IReadOnlyList<ProjectionDiagnostic>) factory walks the source feature bag and produces typed subclasses of S411IceFeature (S411SeaIce, S411LakeIce, S411Iceberg, S411IceEdge, S411IceLead, S411IceThickness, S411SnowCover, S411StageOfMelt) with S411DataCoverage broken out separately and everything else landing on S411OtherFeature.
Feature-type normalisation maps the JCOMM lowercase short codes
(seaice, lacice, icebrg, icelne, icethk,
snwcvr, stgmlt, …) to the canonical PascalCase Feature
Catalogue class names (SeaIce, LakeIce, Iceberg,
IceEdge, …). Both the JCOMM and IHO sample shapes therefore land on
the same typed subclass, and consumers can dispatch on
NormalizedFeatureType without caring which
shape the dataset was emitted in.
S-411 has no information types and no xlink cross-references, so the
projection does not need an XlinkResolver. The projection
still threads a ProjectionContext so attribute-parse
failures ("attribute.parse.int", "attribute.parse.double")
surface as diagnostics rather than exceptions.
The projection only throws when the source dataset has no features at all.
Properties
DataCoverages
Data-coverage features describing the area for which the dataset carries ice information.
public required IReadOnlyList<S411DataCoverage> DataCoverages { get; init; }
Property Value
DatasetIdentifier
The dataset identifier carried by the source GML root element.
public string? DatasetIdentifier { get; init; }
Property Value
IceFeatures
All ice features in the dataset, polymorphic over the typed S411IceFeature subclasses (excluding S411DataCoverage, which has its own list).
public required IReadOnlyList<S411IceFeature> IceFeatures { get; init; }
Property Value
IssueDate
The dataset's issue / observation timestamp, copied verbatim from IssueDate.
public DateTime? IssueDate { get; init; }
Property Value
OtherFeatures
Features whose feature type was not recognised as one of the dedicated typed subclasses — they round-trip as S411OtherFeature entries with all attributes preserved on ExtraAttributes.
public required IReadOnlyList<S411OtherFeature> OtherFeatures { get; init; }
Property Value
ProductIdentifier
The S-411 product identifier (typically "S-411").
public string? ProductIdentifier { get; init; }
Property Value
Source
The originating feature-bag dataset.
public required S411Dataset Source { get; init; }
Property Value
Methods
From(S411Dataset, out IReadOnlyList<ProjectionDiagnostic>)
Projects a feature-bag S411Dataset into the typed data
model. Issues encountered during projection are reported via
diagnostics; the projection only throws when the
source dataset has no features at all.
public static S411SeaIceInventory From(S411Dataset dataset, out IReadOnlyList<ProjectionDiagnostic> diagnostics)
Parameters
datasetS411DatasetThe source dataset.
diagnosticsIReadOnlyList<ProjectionDiagnostic>Receives the projection diagnostics as an immutable snapshot.
Returns
Exceptions
- ArgumentNullException
If
datasetisnull.- InvalidOperationException
If
datasethas no features.