Table of Contents

Class S100Dataset

Namespace
EncDotNet.S100
Assembly
EncDotNet.S100.dll

An opened S-100 dataset — the raw data plus its detected product specification. A dataset carries no rendering or feature-decoding behaviour: rendering is performed by an IS100DatasetRenderer<TResult>, and feature access (which presupposes a feature catalogue) lives on S100FeatureCatalogue.

public sealed class S100Dataset : IDisposable
Inheritance
S100Dataset
Implements
Inherited Members
Extension Methods

Remarks

Open(string) is the batteries-included entry point for a loose file: it detects the product specification from the file and (lazily, on first access to a data property) parses the dataset against the catalogues bundled in EncDotNet.S100.Specifications. OpenAsync(IAssetSource, string, CancellationToken) does the same for a dataset inside an IAssetSource (a folder, a ZIP archive, or a decorating source such as a caching or decrypting one), and S100ExchangeSet opens the datasets an exchange set lists. Advanced users who need a caller-supplied catalogue can construct the per-spec reader directly instead.

Properties

AvailableTimes

The available time steps for time-aware products (S-104, S-111), in dataset order; empty for static products.

public IReadOnlyList<DateTime> AvailableTimes { get; }

Property Value

IReadOnlyList<DateTime>

AxisOrder

What the reader's axis-order check concluded about the dataset's positions (issue #650): latitude first as encoded, swapped back from longitude first, unverifiable, or inconsistent with the declared extent. null when the product has no positions to check (S-101) or a projected grid.

public AxisOrderAssessment? AxisOrder { get; }

Property Value

AxisOrderAssessment

CanRenderHeadless

Whether this dataset can be rendered to a standalone image by the headless renderers. false when the product's processor has no image rendering (of the bundled products, S-131).

public bool CanRenderHeadless { get; }

Property Value

bool

Spec

The product specification (name and edition) the dataset declares conformance to. The edition is read from the dataset itself.

public SpecRef Spec { get; }

Property Value

SpecRef

Methods

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

public void Dispose()

Open(string)

Opens the dataset file at path, detecting its S-100 product specification.

public static S100Dataset Open(string path)

Parameters

path string

Path to a loose S-100 dataset file (ISO 8211, HDF5, or GML).

Returns

S100Dataset

An opened dataset.

Exceptions

ArgumentException

path is null or empty.

FileNotFoundException

The file does not exist.

NotSupportedException

The file is not a recognised S-100 product specification.

OpenAsync(IAssetSource, string, CancellationToken)

Opens the dataset at relativePath inside source, detecting its S-100 product specification from the dataset content (the ISO 8211 envelope, the HDF5 productSpecification attribute, or the GML root element).

public static Task<S100Dataset> OpenAsync(IAssetSource source, string relativePath, CancellationToken cancellationToken = default)

Parameters

source IAssetSource

The asset source holding the dataset: a folder (FileSystemAssetSource), a ZIP archive (ZipAssetSource), or a decorator over either. The dataset borrows the source: the caller keeps ownership and must keep it alive until the dataset is disposed, because the dataset is parsed lazily on first use.

relativePath string

The dataset's path relative to source (e.g. "S-101/DATASET_FILES/101AA00DS0019.000").

cancellationToken CancellationToken

Cancels reading the dataset for detection.

Returns

Task<S100Dataset>

An opened dataset.

Exceptions

ArgumentNullException

source is null.

ArgumentException

relativePath is null or empty.

FileNotFoundException

source has no file at relativePath (the exact exception type is the source's, e.g. DirectoryNotFoundException for a missing folder).

NotSupportedException

The dataset is not a recognised S-100 product specification.