Table of Contents

Class S411DatasetProcessor

Namespace
EncDotNet.S100.Datasets.Pipelines
Assembly
EncDotNet.S100.Datasets.Pipelines.dll

IDatasetProcessor for S-411 Ice Information GML datasets, accepting both the JCOMM operational encoding and the IHO sample encoding. Drives the standard S-100 Part 9 XSLT vector portrayal pipeline inherited from GmlDatasetProcessorBase<TFeature> and adds the WMO ice "egg code" to sea-ice and lake-ice pick reports.

public sealed class S411DatasetProcessor : GmlDatasetProcessorBase<S411Feature>, IDatasetProcessor, IVectorPortrayalSource, IHeadlessImageRenderer, IDisplayModeAwareDatasetProcessor, ILoadedDatasetProjection, ITimeAwareDatasetProcessor
Inheritance
S411DatasetProcessor
Implements
Inherited Members

Remarks

Each S-411 file is a single snapshot. As an ITimeAwareDatasetProcessor it reports its issue date as the only available time, and renders nothing while the render context's time step is earlier than that issue date.

Normally created through the S411 registration (used by DatasetPipelineFactory) rather than constructed directly.

Constructors

S411DatasetProcessor(IAssetSource, string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)

Initializes a new S411DatasetProcessor by reading the dataset file relativePath from source. Used by exchange-set bulk loading.

public S411DatasetProcessor(IAssetSource source, string relativePath, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)

Parameters

source IAssetSource
relativePath string
catalogueManager PortrayalCatalogueManager
authorityProvider IDisplayPlaneAuthorityProvider
featureCatalogueManager FeatureCatalogueManager

S411DatasetProcessor(string, PortrayalCatalogueManager, IDisplayPlaneAuthorityProvider, FeatureCatalogueManager?)

Initializes a new S411DatasetProcessor by reading and parsing the dataset file at path. The file is read in full and closed before the constructor returns.

public S411DatasetProcessor(string path, PortrayalCatalogueManager catalogueManager, IDisplayPlaneAuthorityProvider authorityProvider, FeatureCatalogueManager? featureCatalogueManager = null)

Parameters

path string

Path to the S-411 GML dataset file.

catalogueManager PortrayalCatalogueManager

Supplies the S-411 portrayal catalogue.

authorityProvider IDisplayPlaneAuthorityProvider

Resolves the default S-98 display plane for the dataset's content.

featureCatalogueManager FeatureCatalogueManager

Optional source of the S-411 feature catalogue, used to decode attribute values in feature info; null leaves them undecoded.

Properties

AvailableTimes

Time samples this dataset can be rendered at. S-411 datasets are snapshot-per-file; this is either a single-element list with the dataset's IssueDate or empty when the source GML carried no recognised timestamp.

public IReadOnlyList<DateTime> AvailableTimes { get; }

Property Value

IReadOnlyList<DateTime>

Features

The parsed features from the dataset.

protected override IReadOnlyList<S411Feature> Features { get; }

Property Value

IReadOnlyList<S411Feature>

ProductDescription

Human-readable product description for info strings (e.g. "Navigational Warnings", "Marine Aids to Navigation").

protected override string ProductDescription { get; }

Property Value

string

SeaIceTimeSemantics

S-411 ice chart snapshots: observations, each valid until the next one for at most 14 days.

public static TimeSemantics SeaIceTimeSemantics { get; }

Property Value

TimeSemantics

TimeSemantics

What the time steps are, which one is drawn between steps, and how long a step stays valid. Defaults to Default: forecast steps, nearest within the typical step.

public TimeSemantics TimeSemantics { get; }

Property Value

TimeSemantics

Remarks

Methods

BuildEggCode(S411Feature)

Projects an S-411 sea-ice / lake-ice feature's WMO concentration, stage of development, and form-of-ice attributes into an IceEggCode for the pick report. Other feature classes have no egg code.

protected override IceEggCode? BuildEggCode(S411Feature feature)

Parameters

feature S411Feature

Returns

IceEggCode

CreateFeatureXmlSource()

Creates the spec-appropriate feature XML source.

protected override IFeatureXmlSource CreateFeatureXmlSource()

Returns

IFeatureXmlSource

CreateLoadedData()

Allocates the LoadedDatasetData variant wrapping this processor's already-parsed model. Never re-reads the source bytes.

public override LoadedDatasetData CreateLoadedData()

Returns

LoadedDatasetData

The catalog payload wrapping the resident model (e.g. an S125DatasetData or S102CoverageData).

Remarks

Each GML subclass wraps its resident, already-parsed model in the matching LoadedDatasetData variant (e.g. new S125DatasetData(_dataset)) — no second parse.

GetSuppressionInfo(RenderContext?)

Suppresses rendering when the context is an S-411 render context whose time step is earlier than the dataset's issue date (the snapshot does not exist yet at that time).

protected override string? GetSuppressionInfo(RenderContext? context)

Parameters

context RenderContext

The current render context, if any.

Returns

string

An info string explaining why the dataset is hidden, or null to render normally.

ValidateDataset()

Runs the product's rule pack, or returns null when the product has none. Called once by Validate(), which caches the result.

protected override ValidationReport? ValidateDataset()

Returns

ValidationReport

Remarks

Overrides should typically delegate to ValidationRunner.Run(...) so that an InvalidOperationException from the typed projection (e.g. an empty dataset) surfaces as an empty report rather than propagating out of Validate().