Table of Contents

Class S101Dataset

Namespace
EncDotNet.S100.Datasets.S101
Assembly
EncDotNet.S100.Datasets.S101.dll

An S-101 Electronic Navigational Chart dataset, parsed directly from ISO 8211 encoded records via EncDotNet.S100.Datasets.S101.S101DocumentReader.

public sealed class S101Dataset
Inheritance
S101Dataset
Inherited Members

Properties

CoordinateMultiplicationFactorX

Coordinate multiplication factor for X (longitude).

public uint CoordinateMultiplicationFactorX { get; }

Property Value

uint

CoordinateMultiplicationFactorY

Coordinate multiplication factor for Y (latitude).

public uint CoordinateMultiplicationFactorY { get; }

Property Value

uint

DatasetName

Dataset name from the DSID record.

public string DatasetName { get; }

Property Value

string

Document

The underlying parsed S-101 document.

public S101Document Document { get; }

Property Value

S101Document

FeatureCount

Number of feature records in the dataset.

public int FeatureCount { get; }

Property Value

int

UpdateReport

Outcome of applying sequential updates when the dataset was opened via OpenWithUpdates(string, IReadOnlyList<string>); otherwise null.

public S101UpdateReport? UpdateReport { get; }

Property Value

S101UpdateReport

Methods

FromDocument(S101Document)

Wraps an in-memory S101Document so it can be consumed by the rest of the S-101 pipeline.

public static S101Dataset FromDocument(S101Document document)

Parameters

document S101Document

Returns

S101Dataset

Remarks

Intended for adapters that translate from another product specification (for example, S-57) into the S-101 in-memory model in order to reuse the S-101 portrayal catalogue.

Open(Stream)

Opens an S-101 dataset from a stream.

public static S101Dataset Open(Stream stream)

Parameters

stream Stream

Returns

S101Dataset

Open(string)

Opens an S-101 dataset from a file path.

public static S101Dataset Open(string path)

Parameters

path string

Returns

S101Dataset

OpenWithUpdates(string, IReadOnlyList<string>)

Opens an S-101 base cell and applies a set of sequential update files (best-effort) to produce an up-to-date dataset.

public static S101Dataset OpenWithUpdates(string basePath, IReadOnlyList<string> updatePaths)

Parameters

basePath string

Path to the base cell (….000).

updatePaths IReadOnlyList<string>

Paths to the update files (….001, ….002, …). They are read, ordered by update number, and applied in sequence. A file that fails to read, or a non-contiguous / invalid update, is recorded in UpdateReport and never prevents the dataset from opening.

Returns

S101Dataset

The dataset reflecting the base plus every successfully applied update, with UpdateReport populated.

ReadMetadata()

Produces the lightweight DatasetMetadata for this already parsed dataset: declared specification, geographic extent, and the DataCoverage display-scale window (issue #460).

public DatasetMetadata ReadMetadata()

Returns

DatasetMetadata

ReadMetadata(Stream)

Reads only the lightweight DatasetMetadata for an S-101 cell from stream. See ReadMetadata(string) for the phased-loading rationale.

public static DatasetMetadata ReadMetadata(Stream stream)

Parameters

stream Stream

Returns

DatasetMetadata

ReadMetadata(string)

Reads only the lightweight DatasetMetadata for an S-101 cell at path — its declared specification, geographic extent, and intended display-scale window — for phased / deferred loading (issue #460).

public static DatasetMetadata ReadMetadata(string path)

Parameters

path string

Returns

DatasetMetadata

Remarks

Unlike the HDF5 products, the S-101 ISO 8211 encoding carries no header-level minimum bounding rectangle, so the extent is still derived by scanning the spatial records; the phased win over a full load is that the feature graph is not resolved and — crucially — the portrayal catalogue is never loaded or executed. The display-scale window is read cheaply from the DataCoverage feature records (S-101 FC §3.1.1 minimumDisplayScale / maximumDisplayScale).