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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EncDotNet.S100.Datasets.S102" Version="0.16.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EncDotNet.S100.Datasets.S102" Version="0.16.0" />
                    
Directory.Packages.props
<PackageReference Include="EncDotNet.S100.Datasets.S102" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EncDotNet.S100.Datasets.S102 --version 0.16.0
                    
#r "nuget: EncDotNet.S100.Datasets.S102, 0.16.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EncDotNet.S100.Datasets.S102@0.16.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EncDotNet.S100.Datasets.S102&version=0.16.0
                    
Install as a Cake Addin
#tool nuget:?package=EncDotNet.S100.Datasets.S102&version=0.16.0
                    
Install as a Cake Tool

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 an IHdf5File.
  • S102CoverageSourceICoverageSource adapter for the coverage pipeline.
  • S102PortrayalCatalogue — coverage portrayal catalogue for depth shading.
  • BathymetryCoverage, BathymetryValue — bathymetric data models. BathymetryCoverage.GroupPath carries the HDF5 instance path (e.g. /BathymetryCoverage/BathymetryCoverage.01) and is used by the validation rule pack as the per-coverage RelatedFeatureId.

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 at SafetyContour) and four-band (DEPVS / DEPMS / DEPMD / DEPDW split at ShallowContour / 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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