Table of Contents

Interface IWaterLevelField

Namespace
EncDotNet.S100.Navigation
Assembly
EncDotNet.S100.Navigation.dll

The water level to apply across an area, for one time or period: the model the pick report, and later the chart, read, built on the same IWaterLevelSource and series rule as the passage check so the three give one answer for a point and time.

public interface IWaterLevelField

Remarks

At a point the most preferred series from Locate(GeoPosition) whose time range covers the time (or the whole period) is used. When a depth datum is given, a series whose datum is known to differ is skipped in favour of a later one that covers too, as the passage check does. Times outside a series' range are never clamped to its first or last step.

Implementations must be safe to call from several threads at once.

Properties

Basis

What the field applies: the time or period, and the datasets.

WaterLevelBasis Basis { get; }

Property Value

WaterLevelBasis

Footprint

The areas where the field can apply, in WGS-84, for the adjusted-area boundary. Empty when the source can't describe them.

IReadOnlyList<CoverageArea> Footprint { get; }

Property Value

IReadOnlyList<CoverageArea>

Methods

Resolve(GeoPosition, int?)

The water level at a point for a depth on depthDatum, with the reason when none applies.

WaterLevelAtPoint Resolve(GeoPosition position, int? depthDatum)

Parameters

position GeoPosition

The point, in WGS-84.

depthDatum int?

The charted depth's vertical datum as an S-100 code, or null when it isn't declared.

Returns

WaterLevelAtPoint

The outcome.

Sample(GeoPosition)

The water level to apply at a point, or null where none applies. No depth datum is compared; use Resolve(GeoPosition, int?) to compare one.

AppliedWaterLevel? Sample(GeoPosition position)

Parameters

position GeoPosition

The point, in WGS-84.

Returns

AppliedWaterLevel?

The water level, or null.