Table of Contents

Class WaterLevelPeriodMinimum

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

The lowest water level at each point over a period (S-98 Appendix D-2.5, S-164 WLATimePeriod): the conservative choice for a passage window.

public sealed class WaterLevelPeriodMinimum : IWaterLevelField
Inheritance
WaterLevelPeriodMinimum
Implements
Inherited Members

Remarks

At a point the series must cover the whole period. The minimum is taken over the values at every step inside the period and at the two interpolated ends. When any of those values is NoData the point isn't adjusted (NoData), since the lowest water can't be known. The uncertainty is the one at the lowest value.

Constructors

WaterLevelPeriodMinimum(IWaterLevelSource, DateTime, DateTime)

Creates the field.

public WaterLevelPeriodMinimum(IWaterLevelSource source, DateTime start, DateTime end)

Parameters

source IWaterLevelSource

The water-level source.

start DateTime

The start of the period; a local time is converted, an unspecified one is taken as UTC.

end DateTime

The end of the period, at or after start.

Exceptions

ArgumentException

end is before start.

Properties

Basis

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

public WaterLevelBasis Basis { get; }

Property Value

WaterLevelBasis

End

The end of the period (UTC).

public DateTime End { get; }

Property Value

DateTime

Footprint

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

public IReadOnlyList<CoverageArea> Footprint { get; }

Property Value

IReadOnlyList<CoverageArea>

Start

The start of the period (UTC).

public DateTime Start { get; }

Property Value

DateTime

Methods

Resolve(GeoPosition, int?)

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

public 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.

Resolve(IReadOnlyList<IWaterLevelSeries>, DateTime, DateTime, int?)

The lowest water level over a period from series already located at a point.

public static WaterLevelAtPoint Resolve(IReadOnlyList<IWaterLevelSeries> series, DateTime start, DateTime end, int? depthDatum)

Parameters

series IReadOnlyList<IWaterLevelSeries>

The series at the point, most preferred first.

start DateTime

The start of the period (UTC).

end DateTime

The end of the period (UTC).

depthDatum int?

The charted depth's datum, or null.

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.

public AppliedWaterLevel? Sample(GeoPosition position)

Parameters

position GeoPosition

The point, in WGS-84.

Returns

AppliedWaterLevel?

The water level, or null.