EncDotNet.S100.Datasets.S102
0.16.0
dotnet add package EncDotNet.S100.Datasets.S102 --version 0.16.0
NuGet\Install-Package EncDotNet.S100.Datasets.S102 -Version 0.16.0
<PackageReference Include="EncDotNet.S100.Datasets.S102" Version="0.16.0" />
<PackageVersion Include="EncDotNet.S100.Datasets.S102" Version="0.16.0" />
<PackageReference Include="EncDotNet.S100.Datasets.S102" />
paket add EncDotNet.S100.Datasets.S102 --version 0.16.0
#r "nuget: EncDotNet.S100.Datasets.S102, 0.16.0"
#:package EncDotNet.S100.Datasets.S102@0.16.0
#addin nuget:?package=EncDotNet.S100.Datasets.S102&version=0.16.0
#tool nuget:?package=EncDotNet.S100.Datasets.S102&version=0.16.0
EncDotNet.S100.Datasets.S102
Reader and coverage portrayal pipeline for S-102 Bathymetric Surface datasets.
Overview
This library reads S-102 datasets from HDF5 files and provides coverage data (depth and uncertainty grids) for the portrayal pipeline. Key types include:
S102Dataset— root model containing horizontal CRS and bathymetric coverages.S102DatasetReader— reads an S-102 dataset from anIHdf5File.S102CoverageSource—ICoverageSourceadapter for the coverage pipeline.S102PortrayalCatalogue— coverage portrayal catalogue for depth shading.BathymetryCoverage,BathymetryValue— bathymetric data models.BathymetryCoverage.GroupPathcarries the HDF5 instance path (e.g./BathymetryCoverage/BathymetryCoverage.01) and is used by the validation rule pack as the per-coverageRelatedFeatureId.
Portrayal
Portrayal is PC-driven: S102PortrayalCatalogue executes the
bundled BathymetryCoverage.lua rule (S-102 Edition 3.0.0, Annex B)
through an ILuaEngine and resolves the emitted CoverageColor
tokens (DEPDW, DEPMD, DEPMS, DEPVS, DEPIT, NODTA) against
the bundled ColorProfiles/colorProfile.xml. The Day, Dusk, and
Night palettes are all loaded; SwitchPalette selects the active
mood.
The four S-102 context parameters flow in via MarinerSettings:
FourShades— toggle between two-band (DEPVS / DEPDW split atSafetyContour) and four-band (DEPVS / DEPMS / DEPMD / DEPDW split atShallowContour/SafetyContour/DeepContour) shading.SafetyContour,ShallowContour,DeepContour— depth boundaries in metres.
Invariants (ShallowContour ≤ SafetyContour ≤ DeepContour) are
clamped (with a diagnostic) rather than throwing — the viewer
settings panel surface area means transient out-of-order slider
values must not crash the render pipeline.
Cells whose depth equals S102CoverageSource.FillValue (1,000,000f)
are painted with the active palette's NODTA colour via
CoverageColorScheme.NoDataColor.
Validation
A bundled rule pack
(EncDotNet.S100.Datasets.S102.Validation.S102DatasetRules.Default)
evaluates a typed S102Dataset against the S-102 Edition 3.0.0
checklist and emits a ValidationReport of findings. The pack is
invoked automatically by S102DatasetProcessor.Validate() and is
also runnable directly:
var report = S102DatasetRules.Default.Run(dataset);
foreach (var finding in report.Findings)
Console.WriteLine($"{finding.RuleId} {finding.Severity}: {finding.Message}");
| Rule id | Severity | Checks |
|---|---|---|
S102-R-1.1 |
Error | Each coverage's Values.Length equals NumPointsLatitudinal × NumPointsLongitudinal. |
S102-R-2.1 |
Error | NODATA fill in Depth/Uncertainty is exactly 1_000_000f; flags NaN / ±Infinity as illegal sentinel substitutes. |
S102-R-3.1 |
Warning | HorizontalCRS, when set, is a recognised EPSG code (4326, 4269, or WGS-84 UTM band). |
S102-R-3.2 |
Warning | IssueDate, when set, parses as ISO 8601. |
S102-R-4.1 |
Error | Each coverage's OriginLatitude ∈ [-90, 90] and OriginLongitude ∈ [-180, 180]. |
S102-R-4.2 |
Error | Each coverage's extent stays inside WGS-84 bounds and does not wrap the antimeridian. |
S102-R-5.1 |
Warning | Non-NODATA depth values fall within [-50, 12 000] m (one finding per offending coverage). |
S102-PROJ-SCHEMA |
Error | Defensive surrogate: emitted when the underlying HDF5 dataset fails schema-level parsing inside Validate(). |
Installation
dotnet add package EncDotNet.S100.Datasets.S102
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EncDotNet.S100.Portrayals (>= 0.16.0)
-
net8.0
- EncDotNet.S100.Portrayals (>= 0.16.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on EncDotNet.S100.Datasets.S102:
| Package | Downloads |
|---|---|
|
EncDotNet.S100.Datasets.Pipelines
Per-spec IDatasetProcessor implementations, the DatasetPipelineFactory (file -> processor detection), the headless image-render capability, the S-98 interoperability authority, and the validation runner for IHO S-100 product datasets. Consumed by the EncDotNet.S100 convenience package, the viewer, and the s100 CLI. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.16.0 | 147 | 6/8/2026 |
| 0.15.0 | 100 | 6/6/2026 |
| 0.14.0 | 98 | 6/6/2026 |
| 0.13.0 | 93 | 6/3/2026 |
| 0.12.0 | 96 | 5/29/2026 |
| 0.11.0 | 96 | 5/19/2026 |
| 0.10.0 | 99 | 5/16/2026 |
| 0.9.0 | 91 | 5/15/2026 |
| 0.8.0 | 97 | 5/13/2026 |
| 0.7.0 | 93 | 5/12/2026 |
| 0.6.0 | 107 | 5/8/2026 |
| 0.5.0 | 101 | 5/4/2026 |
| 0.4.0 | 94 | 5/1/2026 |
| 0.3.0 | 96 | 4/29/2026 |
| 0.2.0 | 102 | 4/14/2026 |
| 0.1.2 | 103 | 4/11/2026 |
| 0.1.1 | 100 | 4/11/2026 |