Class S100Dataset
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
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
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
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
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
pathstringPath to a loose S-100 dataset file (ISO 8211, HDF5, or GML).
Returns
- S100Dataset
An opened dataset.
Exceptions
- ArgumentException
pathis 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
sourceIAssetSourceThe 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.
relativePathstringThe dataset's path relative to
source(e.g."S-101/DATASET_FILES/101AA00DS0019.000").cancellationTokenCancellationTokenCancels reading the dataset for detection.
Returns
- Task<S100Dataset>
An opened dataset.
Exceptions
- ArgumentNullException
sourceis null.- ArgumentException
relativePathis null or empty.- FileNotFoundException
sourcehas no file atrelativePath(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.