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
sourceIWaterLevelSourceThe water-level source.
startDateTimeThe start of the period; a local time is converted, an unspecified one is taken as UTC.
endDateTimeThe end of the period, at or after
start.
Exceptions
- ArgumentException
endis beforestart.
Properties
Basis
What the field applies: the time or period, and the datasets.
public WaterLevelBasis Basis { get; }
Property Value
End
The end of the period (UTC).
public DateTime End { get; }
Property Value
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
Start
The start of the period (UTC).
public DateTime Start { get; }
Property Value
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
positionGeoPositionThe point, in WGS-84.
depthDatumint?The charted depth's vertical datum as an S-100 code, or
nullwhen 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
seriesIReadOnlyList<IWaterLevelSeries>The series at the point, most preferred first.
startDateTimeThe start of the period (UTC).
endDateTimeThe end of the period (UTC).
depthDatumint?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
positionGeoPositionThe point, in WGS-84.
Returns
- AppliedWaterLevel?
The water level, or
null.