Class CoverageSymbolScheme
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
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
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
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
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
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
ValueFieldName
The coverage field used to select the symbol band (e.g. "surfaceCurrentSpeed").
public required string ValueFieldName { get; init; }
Property Value
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
valuefloatThe cell's value in the ValueFieldName field.
latitudedoubleThe cell's latitude in degrees. Selects SouthernHemisphereBands when it is negative and that list is set; ignored otherwise.
Returns
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
directionfloatThe cell's value in the RotationFieldName field.