Table of Contents

Namespace EncDotNet.S100.Datasets.S57

Classes

ResolvedAttribute

Result of resolving an S-57 attribute in the context of a ResolvedFeature: the chosen S-101 attribute name and the (possibly remapped) value.

ResolvedFeature

Result of resolving an S-57 feature against the mapping rules: the chosen S-101 Feature Catalogue code and the effective attribute overrides to apply when translating attributes for that feature.

S101AllowedEnumValues

Lookup of allowable enumerate values per S-101 simple attribute, derived from the bundled S-101 Feature Catalogue.

S101FeatureAttributeBindings

Lookup of which S-101 feature classes directly bind a given (complex or simple) attribute, derived from the attribute bindings declared on each feature type in the bundled S-101 Feature Catalogue.

S101ToS57AttributeRule

How an S-101 simple attribute converts to an S-57 attribute in S101ToS57Translator.

S101ToS57ClauseCoverage

How S101ToS57Translator covers one S-65 Annex C clause.

S101ToS57Coverage

The coverage of S-65 Annex C §3–§30 by S101ToS57Translator and Default: every feature type, information type and attribute clause, with the rule that converts it or the reason it is dropped.

S101ToS57FeatureRedirect

A condition under which an S-101 feature converts to another S-57 object class (see Redirects), or creates a further object (see Companions).

S101ToS57FeatureRule

How an S-101 feature class converts to an S-57 object class in S101ToS57Translator.

S101ToS57Rules

The rule tables for S101ToS57Translator: S-101 feature classes and attributes to S-57 object classes and attributes, following S-65 Annex C (S-101 to S-57 ENC Conversion Guidance, Ed 1.0.0).

S101ToS57TranslationDiagnostics

Optional diagnostics for Translate(S101Document, S101ToS57TranslationDiagnostics?): aggregate counts of what the translation read, wrote, dropped, folded and truncated, with the S-65 Annex C clause where a rule caused it. It mirrors S57TranslationDiagnostics for the forward direction.

S101ToS57TranslationOptions

The choices S-65 Annex C leaves to the converter, for S101ToS57Translator.

S101ToS57Translator

Translates an S101Document into an in-memory S-57 S57Document, following S-65 Annex C (S-101 to S-57 ENC Conversion Guidance, Ed 1.0.0, May 2025). This is a preview: it covers Annex C §2–§30 (see S101ToS57Coverage), but not yet the attributes of spatial records.

S57AttributeOverride

Per-feature attribute override: changes the target S-101 attribute name and/or remaps individual enum values.

S57AttributeRule

Rule describing how an S-57 attribute (ATTL) maps to an S-101 Feature Catalogue attribute.

S57Dataset

Thin wrapper over S57Document from the upstream EncDotNet.S57 package. Provides the IsS57File(string) discriminator used by DatasetPipelineFactory to disambiguate .000 files between S-57 and S-101 (which share the extension and ISO 8211 envelope).

S57DatasetHeader

The identification facts of an S-57 dataset file (a base cell ….000 or a sequential update ….001, …), read from its leading DSID / DSPM records without parsing the rest of the file.

S57ExchangeSetCatalog

Enumerates the renderable base cells of an S-57 / S-63 exchange set by reading its CATALOG.031 via the upstream EncDotNet.S57 catalogue reader and grouping the catalogued files into base-cell + update sets.

S57ExchangeSetCell

One base cell discovered in an S-57 / S-63 exchange-set catalogue (CATALOG.031), together with its in-set sequential update files and (optionally) its geographic extent.

S57ExchangeSetVerification

Adapts the upstream EncDotNet.S57 exchange-set verifier (S-57 / S-63 CATALOG.031 CRC + digital-signature checks) onto this repository's S-100 ExchangeSetVerificationResult model, so S-57 exchange sets are integrity-verified and surfaced exactly like S-100 ones.

S57FeatureRedirect

Conditional redirect on an S57FeatureRule: when the redirect's conditions are all satisfied, the feature is mapped to TargetS101Code instead of the rule's default S-101 code. A redirect may test an S-57 attribute (via ConditionAttribute), the feature's geometric primitive (via ConditionPrimitives), or both; when both are present they are combined with logical AND. At least one condition must be specified.

S57FeatureRule

Rule describing how an S-57 feature class (object class, OBJL) maps to one or more S-101 feature classes.

S57ProductSpecification

Codes an S-57 dataset declares in the product specification (PRSP) subfield of its Data Set Identification (DSID) field, which names the product specification the exchange was produced under (S-57 Edition 3.1, Part 1 §1.4.1 and Part 3 §7.3.1.1).

S57S101Mapping

Mapping from the S-57 (Edition 3.1) Object Catalogue to the S-101 Feature Catalogue. Encodes feature-class and attribute mappings, plus richer rule types used by the S-57 to S-101 conversion: cross-class redirects, per-feature attribute overrides, and per-value enum remaps.

S57S101Mapping.Builder

Builder for composing custom mapping tables.

S57ToS101Translator

Translates a parsed S-57 S57Document (from the EncDotNet.S57 NuGet package) into the S-101 in-memory document model so that the existing S-101 portrayal pipeline can drive rendering of S-57 ENC data.

S57TopologyCheck

Checks the chain-node topology of an S-57 dataset as S101ToS57Translator builds it: every edge ends at connected nodes, every area closes, the skin of the earth (Group 1) covers the coverage without gaps or overlaps, and M_COVR tiles its bounding box (S-57 Appendix B.1 §3.5, S-65 Annex C §2.5.1.1 and §3.5).

S57TopologyIssue

A topology problem S57TopologyCheck found in an S-57 dataset.

S57TranslationDiagnostics

Optional, opt-in diagnostics collector for Translate(S57Document, S57TranslationDiagnostics?). It records — as compact aggregate counters rather than per-instance events — exactly what the translator dropped and why, so a caller (e.g. a corpus-wide conversion audit) can quantify coverage gaps in the embedded S57S101Mapping without re-deriving the translator's logic externally.

S57TranslationTarget

The S-100 product an S-57 dataset is translated into by S57ToS101Translator: whose bundled Feature Catalogue the translation checks enumerate values and complex-attribute bindings against, and which product specification the translated document declares.

S57UnknownObject

The feature an S-57 object becomes when its object class has no rule in the S57S101Mapping: the translator keeps it, with its geometry, as an FeatureTypeCode feature instead of dropping it.

S57UpdateApplicator

Applies S-57 sequential updates to a base cell, checking each update's DSID against the cell's first (S-57 Part 3, sequential updating; tested by S-64 §2.2).

S57UpdateReport

What happened when S-57 updates were applied to a cell. Application is best-effort: the updates up to the first problem are applied, and the problem is recorded here rather than stopping the cell from loading.

Structs

S101AttributeDrop

An S-101 attribute dropped by an S-65 Annex C rule.

S101FeatureDrop

An S-101 feature class dropped by an S-65 Annex C rule.

S101UnmappedAttribute

An S-101 attribute with no conversion rule on a feature class.

S57AttributeDrop

Identifies a specific S-57 attribute drop, distinguishing the owning S-57 object class from the attribute code so a corpus-wide audit can tell whether an unmapped attribute matters (a critical attribute on a common feature) or is incidental (an attribute the S-101 destination class never carries).

S57AttributeNulled

A mandatory S-57 attribute written empty because the S-101 source had no value.

S57EnumValueDrop

Identifies an S-101 enumerated value that was dropped during translation because the destination S-101 Feature Catalogue does not list it as an allowable code for the target attribute (see S101AllowedEnumValues).

S57StructureEquipmentPair

Identifies an S-57 master/slave pair the translator couldn't convert to a StructureEquipment association, because the destination Feature Catalogue doesn't let the structure's class carry the equipment's class.

S57UpdateMessage

A message produced while applying S-57 updates.

Enums

S101InformLengthPolicy

What S101ToS57Translator does with an INFORM or NINFOM longer than MaxInformLength.

S101NameWithoutUsage

What S101ToS57Translator does with a featureName whose nameUsage is not populated.

S101ToS57PrimitiveChange

How S101ToS57Translator changes a feature's geometric primitive where S-57 doesn't allow the S-101 one (Annex C Table 2-1).

S57GeometryPrimitive

S-57 geometric primitive of a feature instance, used to drive geometry-conditional feature-class redirects (S-57 Appendix B.1 §3.2: point / line / area). The numeric values match the S-57 spatial primitive codes (1 = point, 2 = line/curve, 3 = area/surface).

S57UpdateSeverity

Severity of a message produced while applying S-57 updates.