Table of Contents

Interface IDepthAdjustment

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

A water level to add to charted depths across the chart (S-98 Appendix D, water level adjustment). A depth processor that honours it portrays d + h instead of the charted d wherever At(double, double, int?) gives an h, and the charted depth everywhere else.

public interface IDepthAdjustment

Remarks

Depths are metres below the vertical datum, positive down, and the water level is metres above it, positive up, so the adjusted depth is d + h. A negative h makes the water shallower.

The host decides which water level applies and when: the instant on the Timeline, or the lowest over a period. Processors only read it. See docs/design/chart-wide-water-level-adjustment.md.

Properties

Footprint

Where a water level is available, before any datum check: the area whose edge the chart draws as the adjusted-area boundary.

IReadOnlyList<CoverageArea> Footprint { get; }

Property Value

IReadOnlyList<CoverageArea>

Key

What this adjustment applies (its sources, time or period, and datum policy), as a string. Two adjustments with the same key give the same result at every point, so it's safe to use in a memory cache key. It isn't stable across processes and shouldn't go into a disk cache.

string Key { get; }

Property Value

string

Methods

Accepts(int?)

Whether a charted depth on depthDatum can be adjusted at all: the datum check alone, without a position.

bool Accepts(int? depthDatum)

Parameters

depthDatum int?

The S-100 vertical datum code of the charted depth, or null.

Returns

bool

false when every water level is refused for that datum.

At(double, double, int?)

The water level to add to a charted depth on depthDatum at a point, or null where none applies: outside the footprint or the data's time range, or on a vertical datum the adjustment refuses.

DepthAdjustmentSample? At(double latitude, double longitude, int? depthDatum)

Parameters

latitude double

Latitude in decimal degrees (WGS-84).

longitude double

Longitude in decimal degrees (WGS-84).

depthDatum int?

The S-100 vertical datum code of the charted depth, or null when it isn't declared.

Returns

DepthAdjustmentSample?

The water level to add, or null.