Class CoverageMetadata
File-level description of a gridded coverage, returned by Metadata: spatial extent, grid geometry, reference systems, the no-data sentinel and the value fields carried.
public class CoverageMetadata
- Inheritance
-
CoverageMetadata
- Inherited Members
Remarks
Every georeferencing member here (NativeExtent and GridMetadata) is expressed in the grid's native CRS, HorizontalCRS, because that is what the S-100 Part 10c grid attributes carry. For a projected grid (e.g. a UTM S-102 tile) the values are metres. Call GetGeographicExtent(ICrsTransformFactory) for a WGS-84 footprint.
Properties
GridMetadata
Geometry of the grid at the source's currently selected overview level (see SelectOverviewLevel(int)), in the native CRS (HorizontalCRS).
public required GridMetadata GridMetadata { get; init; }
Property Value
HorizontalCRS
Identifier of the grid's horizontal CRS. The bundled sources report the
dataset's EPSG code either bare (e.g. "32608") or, when the
dataset declares none, as "EPSG:4326"; consumers should accept
both forms (ICrsTransformFactory implementations do).
public required string HorizontalCRS { get; init; }
Property Value
NativeExtent
The full (level-0) grid footprint in the grid's native CRS (HorizontalCRS), derived from the grid origin, spacing and point counts: from the origin to one spacing past the last grid point on each axis.
public required BoundingBox NativeExtent { get; init; }
Property Value
Remarks
BoundingBox is reused here as a plain axis-aligned rectangle: SouthLatitude / NorthLatitude hold the minimum / maximum native Y (northing for a projected CRS) and WestLongitude / EastLongitude the minimum / maximum native X (easting). They are decimal degrees only when HorizontalCRS is EPSG:4326.
Consumers that need geographic coordinates (map framing, headless render bounds, WGS-84 catalogues) must use GetGeographicExtent(ICrsTransformFactory) instead of reading this directly.
NoDataValue
Sentinel value marking cells with no data; cells equal to it are not portrayed (or are painted with NoDataColor).
public required float NoDataValue { get; init; }
Property Value
Spec
The product specification (name + edition) this coverage declares conformance to.
public required SpecRef Spec { get; init; }
Property Value
ValueFields
The value fields this coverage carries, each available as a key of
Values: e.g. S-102 depth /
uncertainty, S-104 waterLevelHeight /
waterLevelTrend, S-111 surfaceCurrentSpeed /
surfaceCurrentDirection.
public required IReadOnlyList<CoverageValueField> ValueFields { get; init; }
Property Value
VerticalDatum
Display label of the vertical datum the values are referenced to
(e.g. "MSL").
public required string VerticalDatum { get; init; }
Property Value
Methods
GetGeographicExtent(ICrsTransformFactory)
Returns NativeExtent as a WGS-84 (EPSG:4326) bounding box
in decimal degrees, reprojecting it through
transformFactory when HorizontalCRS is
projected.
public BoundingBox GetGeographicExtent(ICrsTransformFactory transformFactory)
Parameters
transformFactoryICrsTransformFactoryFactory used to build the HorizontalCRS → EPSG:4326 transform (e.g.
ProjNetCrsTransformFactory). It is not called when the grid is already geographic.
Returns
- BoundingBox
The geographic envelope of the grid footprint. A projected rectangle maps to a slightly curved quadrilateral, so all four native corners are reprojected and the min/max envelope is returned.
Exceptions
- ArgumentNullException
transformFactoryis null.