Table of Contents

Class CoverageSymbolScheme

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

Maps value ranges to oriented symbols for overlay rendering of gridded coverage data (e.g. S-111 current arrows).

public sealed class CoverageSymbolScheme
Inheritance
CoverageSymbolScheme
Inherited Members

Properties

Bands

The ordered list of symbol bands mapping value ranges to symbol references.

public required IReadOnlyList<SymbolBand> Bands { get; init; }

Property Value

IReadOnlyList<SymbolBand>

MaxSymbolToSpacingRatio

The thinning ratio Rmax between the largest symbol's length and the displayed symbol spacing (see SymbolThinning). Defaults to DefaultMaxSymbolToSpacingRatio.

public double MaxSymbolToSpacingRatio { get; init; }

Property Value

double

NominalSymbolLengthMillimetres

The length, in millimetres, of a symbol drawn at scale 1 — the symbol's largest dimension, which SymbolThinning spaces symbols by. Defaults to 10 mm, the nominal S-111 arrow height (S-111 Ed 2.0.0 Figure 9-1).

public double NominalSymbolLengthMillimetres { get; init; }

Property Value

double

RotationFieldName

The coverage field whose value supplies the rotation angle in degrees clockwise from north, before RotationOffsetDegrees is added.

public required string RotationFieldName { get; init; }

Property Value

string

RotationOffsetDegrees

Degrees added to the rotation field's value before the symbol is drawn. Defaults to 0, for a field that gives the direction the symbol should point (S-111 currents flow toward their direction). A field that gives the direction a quantity comes from (wave direction, wind direction) drawn with an arrow-shaped symbol uses 180, so the arrow points the way the waves travel.

public double RotationOffsetDegrees { get; init; }

Property Value

double

SouthernHemisphereBands

Bands used instead of Bands for cells south of the equator, or null (the default) to use Bands everywhere. Wind barbs use this: their feathers go on the other side of the staff in the southern hemisphere.

public IReadOnlyList<SymbolBand>? SouthernHemisphereBands { get; init; }

Property Value

IReadOnlyList<SymbolBand>

ValueFieldName

The coverage field used to select the symbol band (e.g. "surfaceCurrentSpeed").

public required string ValueFieldName { get; init; }

Property Value

string

Methods

Resolve(float, double)

Resolves a value to its matching symbol band, or null for no-data / out-of-range.

public SymbolBand? Resolve(float value, double latitude)

Parameters

value float

The cell's value in the ValueFieldName field.

latitude double

The cell's latitude in degrees. Selects SouthernHemisphereBands when it is negative and that list is set; ignored otherwise.

Returns

SymbolBand

RotationFor(float)

The drawn rotation, in degrees clockwise from north in [0, 360), for a rotation field value: direction plus RotationOffsetDegrees.

public float RotationFor(float direction)

Parameters

direction float

The cell's value in the RotationFieldName field.

Returns

float