EncDotNet.S100.Core
0.13.0
See the version list below for details.
dotnet add package EncDotNet.S100.Core --version 0.13.0
NuGet\Install-Package EncDotNet.S100.Core -Version 0.13.0
<PackageReference Include="EncDotNet.S100.Core" Version="0.13.0" />
<PackageVersion Include="EncDotNet.S100.Core" Version="0.13.0" />
<PackageReference Include="EncDotNet.S100.Core" />
paket add EncDotNet.S100.Core --version 0.13.0
#r "nuget: EncDotNet.S100.Core, 0.13.0"
#:package EncDotNet.S100.Core@0.13.0
#addin nuget:?package=EncDotNet.S100.Core&version=0.13.0
#tool nuget:?package=EncDotNet.S100.Core&version=0.13.0
EncDotNet.S100.Core
Core abstractions and pipeline framework for working with S-100 based nautical chart data.
Overview
This library provides the foundational types used across the EncDotNet.S100 libraries, including:
- Asset sources —
IAssetSourceabstraction for reading files from directories (FileSystemAssetSource) or ZIP archives (ZipAssetSource). - HDF5 abstractions —
IHdf5FileandIHdf5Groupinterfaces for reading HDF5 data without binding to a specific HDF5 library. - HDF5 reader exceptions —
S100DatasetSchemaException(a required attribute/group is missing or malformed) andS100DatasetNotSupportedException(the file uses an optional spec feature the reader doesn't yet implement). Both carry product, file, group path, spec reference, and a.WithFile(...)helper used by processor layers to attach the source file name.Hdf5RequiredAttributeExtensionsprovidesReadRequiredDoubleAttribute/ReadRequiredInt64Attribute/ReadRequiredStringAttributethat translate backend "missing attribute" failures into these typed exceptions. - Lua scripting abstractions —
ILuaEngineandILuaContextinterfaces for running sandboxed Lua portrayal scripts, plus theS100LuaHosthost API. - Coverage pipeline —
ICoverageSource,ICoverageRenderer<T>,CoveragePipeline, and supporting types (GridGeoreferencer,CoverageColorScheme,StyledCoverageLayer) for rendering gridded data.ICoveragePortrayalCatalogue.ResolveColorSchemereturnsCoverageColorScheme?; catalogues that only emit symbology (e.g. S-111's arrow-only portrayal) returnnulland the coverage renderers throw if invoked on a layer with a null scheme. - Vector pipeline —
IVectorSource,IVectorPortrayalCatalogue,VectorPipeline, and theDrawingInstructionhierarchy (AreaInstruction,LineInstruction,PointInstruction,TextInstruction) modelled directly on the S-100 Part 9 display list. - Validation framework (
EncDotNet.S100.Validation) — spec-agnostic types for expressing normative-clause checks against the typed data models:IValidationRule<TModel>,ValidationRuleSet<TModel>(lint-pass runner that collects all findings and traps per-rule exceptions),ValidationFinding(rule id, severity, message, optionalGeoPosition/BoundingBox, related feature id),ValidationSeverity,ValidationContext(carriesReferenceTimeand an opaqueIServiceProvider?for Tier-3 cross-dataset rules),ValidationReport, and a fluentValidationRuleBuilder(RuleFor<T>("rule-id").Check(predicate, msg).Build()and.Yield(producer)for multi-finding rules). Per-spec rule packs live in the respectiveEncDotNet.S100.Datasets.Sxxx/Validation/folder rather than in separate projects. All fifteen supported products (S-101, S-102, S-104, S-111, S-122, S-124, S-125, S-127, S-128, S-129, S-131, S-201, S-411, S-421, plus S-57 via delegation to S-101) now ship a rule pack. For vector products the rule pack reads from a spec-aligned façade (the S-101 pattern isS101DatasetView/S101FeatureView/S101AttributeView) instead of the raw reader types, keeping the door open for a future typedDataModelprojection without breaking rule code. Coverage records expose aGroupPathfield (BathymetryCoverage.GroupPathon S-102,WaterLevelCoverage.GroupPathon S-104) that rule packs use as the per-coverageValidationFinding.RelatedFeatureId. Part9DisplayListReader— parses the Part 9 display-list XML produced by XSLT-based portrayal pipelines (S-124 / S-129 / S-421) into the same unifiedDrawingInstructionhierarchy that S-101's Lua pipeline emits, so a single renderer can consume both.- Shared types —
IPortrayalCatalogue,ICrsTransform,Viewport,MarinerSettings(S-100 Part 9 §4.2 mariner selections, including the four depth contours and S-101 portrayal toggles such asFourShades,SimplifiedSymbols,RadarOverlay,NationalLanguage),DepthUnitand theDepthFormattinghelper for locale-invariant depth conversion / formatting / parsing across metres, feet, fathoms, and combined fathoms-and-feet,BoundingBox,RgbaColor,ColorPalette. - Dynamic feature sources (
EncDotNet.S100.DynamicSources) — graphics-agnostic abstraction for push-driven point/track/area features (own-ship, AIS, route preview, sensor overlays, etc.) that sit alongside static datasets in the rendering surface:IDynamicFeatureSource(snapshot +Changedevent),DynamicFeature(geometry vocabulary reused from the static vector pipeline — sameGeometryTypeenum and(Latitude, Longitude)tuple convention),DynamicMotionsidecar for moving point features,DynamicVesselGeometrysidecar for vessel dimensions (length, beam, CCRP/GPS-antenna offsets per IEC 62388 — semantically matches AIS Type 5dimA/dimB/dimC/dimD),DynamicSourceMetadata(carriesDisplayNameandRendererKeyfor DI-keyed renderer resolution inEncDotNet.S100.Renderers.Mapsui),DynamicFeaturesChanged+DynamicSourceChangeKind, and the optionalDynamicFeatureTracker<TInbound>helper for adapters with aging semantics (AIS sleep/lost timers, stale-sensor styling). Seedocs/design/dynamic-feature-source.mdfor the full design rationale.
Installation
dotnet add package EncDotNet.S100.Core
| 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
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.0)
NuGet packages (22)
Showing the top 5 NuGet packages that depend on EncDotNet.S100.Core:
| Package | Downloads |
|---|---|
|
EncDotNet.S100.Portrayals
Libraries for manipulating S-100 based nautical charts. |
|
|
EncDotNet.S100.Features
Libraries for manipulating S-100 based nautical charts. |
|
|
EncDotNet.S100.Renderers.Skia
Libraries for manipulating S-100 based nautical charts. |
|
|
EncDotNet.S100.Datasets.S101
Libraries for manipulating S-100 based nautical charts. |
|
|
EncDotNet.S100.Hdf5.PureHdf
Libraries for manipulating S-100 based nautical charts. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.16.0 | 395 | 6/8/2026 |
| 0.15.0 | 255 | 6/6/2026 |
| 0.14.0 | 251 | 6/6/2026 |
| 0.13.0 | 279 | 6/3/2026 |
| 0.12.0 | 285 | 5/29/2026 |
| 0.11.0 | 284 | 5/19/2026 |
| 0.10.0 | 280 | 5/16/2026 |
| 0.9.0 | 285 | 5/15/2026 |
| 0.8.0 | 288 | 5/13/2026 |
| 0.7.0 | 288 | 5/12/2026 |
| 0.6.0 | 301 | 5/8/2026 |
| 0.5.0 | 265 | 5/4/2026 |
| 0.4.0 | 255 | 5/1/2026 |
| 0.3.0 | 248 | 4/29/2026 |
| 0.2.0 | 174 | 4/14/2026 |
| 0.1.2 | 167 | 4/11/2026 |
| 0.1.1 | 160 | 4/11/2026 |