EncDotNet.Iso8211
0.8.0
dotnet add package EncDotNet.Iso8211 --version 0.8.0
NuGet\Install-Package EncDotNet.Iso8211 -Version 0.8.0
<PackageReference Include="EncDotNet.Iso8211" Version="0.8.0" />
<PackageVersion Include="EncDotNet.Iso8211" Version="0.8.0" />
<PackageReference Include="EncDotNet.Iso8211" />
paket add EncDotNet.Iso8211 --version 0.8.0
#r "nuget: EncDotNet.Iso8211, 0.8.0"
#:package EncDotNet.Iso8211@0.8.0
#addin nuget:?package=EncDotNet.Iso8211&version=0.8.0
#tool nuget:?package=EncDotNet.Iso8211&version=0.8.0
EncDotNet.Iso8211
EncDotNet.Iso8211 reads and writes ISO/IEC 8211 files, the self-describing
binary container used by IHO S-57 and S-101 charts and other data exchange
standards. It decodes the Data Descriptive Record (DDR), data records, fields
and subfield values, writes documents back out, and builds new ones. It has
no knowledge of S-57; reference
EncDotNet.S57 instead if
you want chart features. The package targets .NET 8 and .NET 10.
Install
dotnet add package EncDotNet.Iso8211
Example: list the fields a file defines
using EncDotNet.Iso8211;
Iso8211Document document = Iso8211DocumentReader.ReadFromFile("path/to/file.000");
Iso8211DataDescriptiveRecord ddr = Iso8211DataDescriptiveRecordReader.Read(document.DataDescriptiveRecord!);
foreach (Iso8211FieldDefinition definition in ddr.FieldDefinitions)
{
Console.WriteLine($"{definition.Tag}: {definition.FieldName} {definition.FormatControls}");
}
Console.WriteLine($"{document.DataRecords.Count()} data records");
Main entry points
| Type | Use it to |
|---|---|
Iso8211DocumentReader |
Read a whole file into an Iso8211Document of records and fields |
Iso8211DataDescriptiveRecordReader |
Decode the DDR into field definitions |
Iso8211FieldReader |
Decode subfield values from a field using its definition |
Iso8211Reader |
Scan a file token by token without building records (ref struct) |
Iso8211DocumentWriter |
Write a document to bytes, a stream or a file |
Iso8211DocumentBuilder, Iso8211RecordBuilder, Iso8211FieldBuilder |
Build records and fields to write |
Iso8211DataDescriptiveRecordWriter |
Encode field definitions into a DDR |
Reading and writing ISO 8211 covers each of these with examples.
Records longer than 99,999 bytes
A record leader carries its record's length in five numeric characters, so it
can't express a record of 100,000 bytes or more. Producers that emit one, such
as a dense inland ENC cell whose SG2D coordinate field runs to six figures,
write 00000 there instead. The reader recognizes that and derives the length
from the record's directory (the field area base address plus the sum of the
field lengths), so Iso8211Leader.RecordLength reports the real length.
Iso8211DocumentWriter does the same in reverse: a record longer than 99,999
bytes is written with 00000 as its length, so such files round-trip byte for
byte. The field area base address has the same five-digit limit but can't be
left unspecified, because the reader needs it to find the directory. Building
or writing a record whose directory pushes the base address past 99,999
throws InvalidOperationException.
Related packages
EncDotNet.S57: the S-57 chart model built on this package.
License
MIT. See LICENSE.
| 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
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on EncDotNet.Iso8211:
| Package | Downloads |
|---|---|
|
EncDotNet.S57
A .NET library for reading and working with IHO S-57 Electronic Navigational Charts (ENCs), including feature records, vector topology, exchange sets, and incremental updates. |
|
|
EncDotNet.S100.Datasets.S101
Libraries for manipulating S-100 based nautical charts. |
|
|
EncDotNet.S100.Datasets.S57
Libraries for manipulating S-100 based nautical charts. |
|
|
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.8.0 | 0 | 10/12/2026 |
| 0.7.2 | 224 | 10/11/2026 |
| 0.7.1 | 52 | 10/11/2026 |
| 0.7.0 | 5,224 | 9/16/2026 |
| 0.6.1 | 111 | 9/16/2026 |
| 0.6.0 | 5,192 | 7/12/2026 |
| 0.5.1 | 6,929 | 6/18/2026 |
| 0.5.0 | 1,651 | 6/11/2026 |
| 0.4.3 | 2,545 | 5/19/2026 |
| 0.4.2 | 144 | 5/19/2026 |
| 0.4.1 | 1,882 | 5/7/2026 |
| 0.4.0 | 4,167 | 4/29/2026 |
| 0.3.6 | 132 | 4/11/2026 |
| 0.3.5 | 127 | 4/9/2026 |
| 0.3.4 | 426 | 4/9/2026 |
| 0.3.3 | 129 | 4/9/2026 |
| 0.3.2 | 132 | 4/8/2026 |
| 0.3.1 | 133 | 4/8/2026 |