Namespace EncDotNet.S100.Core
Classes
- CachingAssetSource
Wraps another IAssetSource and memoises the bytes of each asset on first read. Intended for read-only sources whose contents are immutable for the lifetime of the source (
EmbeddedAssetSource, packaged exchange sets opened in Read, on-disk spec content).
- DatasetMetadata
Lightweight, product-agnostic description of a dataset obtained without fully reading or portraying it — the output of a dataset reader's
ReadMetadata"peek" path. Carries only the facts a host needs to place a dataset on the map and decide whether it is worth loading in full: its declared specification, geographic extent, and (where the encoding models them) display-scale window and temporal coverage.
- FileSystemAssetSource
An asset source backed by a local file system directory.
- HdfDeclaredSpec
Resolves the declared product specification of an HDF5 dataset (the root
productSpecificationattribute, S-100 Part 10c §10.2.1) into a strongly-typed SpecRef.
- SpecCompatibility
Helpers for matching a requested SpecRef against an available CatalogueRef. The match policy is supplied by the caller — providers themselves do not apply hidden fallback rules.
- SpecName
Helpers for normalising S-100 product specification short names into the canonical
"S-NNN"form (e.g."S-101","S-102"), and the closed set of non-S-100 format names a product may be registered under (Grib2, NetCdf, Cap).
- SpecVersionAssessment
A user-facing assessment of how the product specification edition a dataset declares relates to the edition(s) of that product this application actually implements.
- ZipAssetSource
An asset source backed by a ZIP archive.
Structs
- AssetBytes
A read-only, in-memory view of an asset previously read from an IAssetSource. Backed by a ReadOnlyMemory<T> so cache hits can be served without copying.
- CatalogueRef
Identity of a single Feature Catalogue or Portrayal Catalogue instance — the pair
(name, version)declared inside the catalogue's metadata (<S100FC:productId>+<S100FC:versionNumber>for FCs; equivalent fields for PCs).
- DisplayScaleRange
A display-scale window expressed as denominator bounds. The Minimum denominator is the coarsest scale (largest number) at which content is intended to display; the Maximum denominator is the finest (smallest number). Either bound may be
nullwhen only one end is specified. Mirrors the S-101DataCoverageminimumDisplayScale/maximumDisplayScalepair (S-101 FC §3.1.1; S-100 Part 17).
- SpecRef
Identity of a single S-100 product specification edition — the pair
(name, edition)that a dataset declares conformance to (e.g.S-101 / 1.2.0).
- SpecVersion
A three-component S-100 version of the form
<major>.<minor>.<clarification>, with the compatibility semantics defined by S-100 Edition 5.2.1 Part 2 §6 (Maintenance):- Major — backward-incompatible change.
- Minor — backward-compatible addition (new feature classes, attributes, code-list entries, etc.).
- Clarification — editorial change with no semantic impact on the data model.
This is not Semantic Versioning despite its similar shape — there are no pre-release tags, no build metadata, and clarification-level differences are interchangeable for compatibility purposes.
- TimeCoverage
The temporal span a dynamic dataset covers, from its earliest to its latest time step (inclusive). Used to gate a dataset's visibility against a global clock without reading its per-step payload.
Interfaces
- IAssetSource
Provides read access to assets within a source (e.g. a file system directory or ZIP archive).
- ICatalogueProvider<TCatalogue>
Provides catalogue artifacts (Feature Catalogues, Portrayal Catalogues, or anything else identified by a SpecRef) to dataset processors and other pipeline consumers.
Enums
- SpecMatchKind
The relationship between a declared dataset version and the version of the catalogue resolved for it.
- SpecMatchPolicy
Match policies governing whether a CatalogueRef is considered acceptable for a given SpecRef. The rules follow S-100 Edition 5.2.1 Part 2 §6 (Maintenance) — see SpecVersion for the underlying compatibility semantics.