Table of Contents

Class S102DepthLines

Namespace
EncDotNet.S100.Datasets.Pipelines.Portrayal
Assembly
EncDotNet.S100.Datasets.Pipelines.dll

The line work SoundCharts traces from an S-102 grid: the safety contour (S-164 UserSelectedSafetyContour) and the border along the limit of the S-102 data, where S-101 takes over (S-98 Part A §A-6.9.1).

public static class S102DepthLines
Inheritance
S102DepthLines
Inherited Members

Remarks

Both are traced with marching squares (IsolineTracer) through the depth values the coverage pipeline sampled, so they follow the viewport subset, stride and shoal-biased overview the bands use. No-data nodes break the safety contour, which therefore ends at the coverage limit. The limit is traced as the 0.5 isoline of a valid-data mask, so it runs halfway between the last valid node and the first no-data one, and isn't drawn along the edges of the sampled grid: there the data continues into the next tile or the viewport goes on.

Fields

DepthField

The S-102 coverage field the lines are traced on.

public const string DepthField = "depth"

Field Value

string

Methods

CoverageLimit(StyledCoverageLayer, Func<double, double, (double Longitude, double Latitude)>?)

Traces the limit of the valid depth values.

public static IReadOnlyList<Isoline> CoverageLimit(StyledCoverageLayer layer, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)

Parameters

layer StyledCoverageLayer

The sampled S-102 coverage.

nativeToWgs84 Func<double, double, (double Longitude, double Latitude)>

Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.

Returns

IReadOnlyList<Isoline>

The border, in EPSG:3857 metres, unlabelled; empty when every node, or none, has a value.

SafetyContour(StyledCoverageLayer, double, Func<double, double, (double Longitude, double Latitude)>?)

Traces the depth isoline at depthMetres.

public static IReadOnlyList<Isoline> SafetyContour(StyledCoverageLayer layer, double depthMetres, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)

Parameters

layer StyledCoverageLayer

The sampled S-102 coverage.

depthMetres double

The safety contour, in metres (positive down).

nativeToWgs84 Func<double, double, (double Longitude, double Latitude)>

Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.

Returns

IReadOnlyList<Isoline>

The isolines, in EPSG:3857 metres, unlabelled.

SurfaceExtent(StyledCoverageLayer, Func<double, double, (double Longitude, double Latitude)>?)

The EPSG:3857 extent of the sampled grid as the surface is drawn: the bounds of its corner nodes, padded by half a cell. The line sub-layers use it so they frame the dataset exactly as the surface does.

public static MercatorBounds SurfaceExtent(StyledCoverageLayer layer, Func<double, double, (double Longitude, double Latitude)>? nativeToWgs84 = null)

Parameters

layer StyledCoverageLayer

The sampled S-102 coverage.

nativeToWgs84 Func<double, double, (double Longitude, double Latitude)>

Converts the grid's native x, y to WGS-84 longitude, latitude; null for a geographic grid.

Returns

MercatorBounds

The extent.