EncDotNet.S57 0.7.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package EncDotNet.S57 --version 0.7.2
                    
NuGet\Install-Package EncDotNet.S57 -Version 0.7.2
                    
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.S57" Version="0.7.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EncDotNet.S57" Version="0.7.2" />
                    
Directory.Packages.props
<PackageReference Include="EncDotNet.S57" />
                    
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.S57 --version 0.7.2
                    
#r "nuget: EncDotNet.S57, 0.7.2"
                    
#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.S57@0.7.2
                    
#: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.S57&version=0.7.2
                    
Install as a Cake Addin
#tool nuget:?package=EncDotNet.S57&version=0.7.2
                    
Install as a Cake Tool

EncDotNet.S57

EncDotNet.S57 reads IHO S-57 Edition 3.1 Electronic Navigational Chart (ENC) cells. It gives you the dataset metadata, feature and vector records, and attributes as encoded, and a typed chart model of point, line and area features with indexed nodes, edges and faces. It also applies update cells (.001, .002, ...) and reads and verifies exchange sets. Reference it to read S-57 data in .NET 8 or .NET 10. It depends on EncDotNet.Iso8211, which it installs for you.

Install

dotnet add package EncDotNet.S57

Example: read a cell and list its depth areas

using EncDotNet.S57;

S57Document document = S57DocumentReader.ReadFromFile("path/to/cell.000");

Console.WriteLine($"{document.DataSetIdentification?.DataSetName} at 1:{document.DataSetParameters?.CompilationScale}");

foreach (S57FeatureRecord feature in document.GetFeaturesByObjectCode(S57ObjectCode.DEPARE))
{
    Console.WriteLine($"{feature.RecordName}: {feature.Attributes.Count} attributes, {feature.SpatialPointers.Count} spatial pointers");
}

Main entry points

Records as encoded

Type Use it to
S57DocumentReader Read a cell from a file, stream or bytes into an S57Document
S57Document Get metadata (DSID, DSPM), feature records and vector records; apply an update cell with ApplyChanges
S57FeatureRecord Get a feature's object class, primitive, attributes and pointers
S57VectorRecord Get a node's or edge's coordinates, soundings and topology pointers
S57ObjectCode Identify object classes (DEPARE, SOUNDG, LIGHTS, ...) by their S-57 code

Typed chart model (EncDotNet.S57.Charts)

Type Use it to
S57Chart Get features grouped by primitive and object class, and nodes, edges and faces indexed by record name
S57PointFeature, S57LineFeature, S57AreaFeature, S57MetaFeature Work with a feature and its geometry references
S57IsolatedNode, S57ConnectedNode, S57Edge, S57Face Work with spatial records

Exchange sets (EncDotNet.S57.ExchangeSets)

Type Use it to
S57ExchangeSetReader Find the catalog, base cell and update cells of a single-cell exchange set
S57ExchangeSet Read the cell with its updates applied; verify the exchange set
S57CatalogReader Read CATALOG.031 entries and their coverage
S57ExchangeSetVerifier Check each file's CRC-32 against the catalog

Reading S-57 charts covers each of these with examples.

Exchange set verification outcomes

S57ExchangeSet.VerifyAsync reports a checksum outcome and a signature outcome for each file, as S57VerificationOutcome values. It doesn't throw for files that fail. S-63 signature verification isn't implemented yet; IS63SignatureVerifier and S63TrustAnchorOptions are the extension point, and files report NotSigned until it is.

S57VerificationOutcome Meaning
Ok The check passed
NoChecksum The catalog entry has no CRC to check against
ChecksumMismatch The file's CRC doesn't match the catalog
FileMissing The file isn't on disk
NotSigned The file has no digital signature
SignatureInvalid, CertificateUntrusted, CertificateExpired, CertificateNotFound S-63 signature outcomes
Error An unexpected error occurred during verification

License

MIT. See LICENSE.

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.S57:

Package Downloads
EncDotNet.S100.Datasets.S57

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.8.0 548 10/12/2026
0.7.2 494 10/11/2026
0.7.1 59 10/11/2026
0.7.0 5,112 9/16/2026
0.6.1 94 9/16/2026
0.6.0 156 7/12/2026
0.5.1 6,405 6/18/2026
0.5.0 1,510 6/11/2026
0.4.3 125 5/19/2026
0.4.2 120 5/19/2026
0.4.1 122 5/7/2026
0.4.0 3,831 4/29/2026
0.3.6 131 4/11/2026
0.3.5 128 4/9/2026
0.3.4 124 4/9/2026
0.3.3 119 4/9/2026
0.3.2 125 4/8/2026
0.3.1 122 4/8/2026