Skip to main content

Elevation Ontology

Earth Science Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Elevation Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/earth-science-measurements/elevation-ontology.html

FLOW ElevationOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Earth Science Measurements
    -> Elevation Ontology

  PURPOSE:
    Represent elevation as a vertical spatial quantity locating a point, surface or feature relative to a defined vertical reference, including orthometric height, ellipsoidal height, geopotential height, terrain elevation, altitude terminology, vertical datums, geoid models, GNSS-derived height, levelling, digital elevation models, coordinate reference systems, transformations, resolution, calibration, uncertainty, provenance, and strict distinctions between elevation, height, altitude and depth.

  ENTITY Elevation {
    TYPE: VerticalSpatialQuantity
    SYMBOL: H_or_h_context_dependent
    DIMENSION: L
    SI_UNIT: metre
    SI_SYMBOL: m

    DEFINITION:
      elevation :=
        vertical_position_of_defined_point_or_surface
        relative_to_declared_vertical_reference

    PROPERTIES:
      has_value
      has_unit
      has_vertical_reference
      has_spatial_location
      may_be_positive_zero_or_negative
      may_be_measured_or_modelled
      may_have_uncertainty
  }

  ENTITY OrthometricHeight {
    TYPE: ElevationQuantity
    SYMBOL: H
    SI_UNIT: metre

    DEFINITION:
      height_above_geoid_along_plumb_line_under_declared_geodetic_model
  }

  ENTITY EllipsoidalHeight {
    TYPE: GeodeticHeightQuantity
    SYMBOL: h
    SI_UNIT: metre

    DEFINITION:
      height_relative_to_reference_ellipsoid
  }

  ENTITY GeoidUndulation {
    TYPE: VerticalSeparationQuantity
    SYMBOL: N
    SI_UNIT: metre

    COMMON_RELATION:
      h = H + N

    INVERSE:
      H = h - N

    RULE:
      sign_convention_and_geoid_model MUST be preserved
  }

  UNIT_SYSTEM {
    canonical_unit:
      metre

    common_units:
      metre
      kilometre
      foot

    conversion:
      1 foot = 0.3048 metre

    RULE:
      vertical_unit MUST be preserved_with_vertical_reference
  }

  TERMINOLOGY_MODEL {
    terms:
      elevation
      height
      altitude
      orthometric_height
      ellipsoidal_height
      geopotential_height
      depth

    RULE:
      terminology MUST be resolved_using_vertical_reference_and_domain_context

    ambiguity_controls:
      elevation != depth
      orthometric_height != ellipsoidal_height
      elevation_above_mean_sea_level != automatically_exact_orthometric_height_without_defined_datum
  }

  VERTICAL_DATUM_MODEL {
    possible_datums:
      geoid_based_vertical_datum
      tidal_datum
      mean_sea_level_based_datum
      local_engineering_datum
      chart_datum
      ellipsoid

    REQUIRE:
      datum_identifier
      datum_realisation_when_relevant
      units

    RULE:
      numerical_elevation_without_vertical_datum
      MAY be semantically_incomplete
  }

  GEOID_MODEL {
    geoid:
      equipotential_surface_of_Earth_gravity_field
      used_as_reference_for_orthometric_height

    geoid_undulation:
      N

    relation:
      H approximately_equals h-N

    REQUIRE:
      geoid_model_identifier
      spatial_location
      model_epoch_when_relevant

    RULE:
      geoid_model_changes_can_change_converted_orthometric_height
  }

  GNSS_HEIGHT_MODEL {
    direct_geodetic_output:
      ellipsoidal_height

    conversion_to_orthometric:
      H = h-N

    REQUIRE:
      reference_ellipsoid
      geodetic_datum
      geoid_model
      antenna_height
      coordinate_epoch_when_relevant

    RULE:
      GNSS_ellipsoidal_height MUST_NOT be_labelled_orthometric_elevation_without_valid_geoid_conversion
  }

  LEVELLING_MODEL {
    method:
      differential_levelling

    observed:
      height_differences_between_benchmarks_or_points

    cumulative:
      H_target =
        H_reference + sum(delta_H_i)

    REQUIRE:
      benchmark
      instrument
      backsight
      foresight
      closure
      correction_procedure

    RULE:
      levelling_network_should_preserve_benchmark_and_datum_provenance
  }

  TRIGONOMETRIC_HEIGHT_MODEL {
    inputs:
      slope_distance
      vertical_angle
      instrument_height
      target_height

    simplified_vertical_difference:
      delta_h =
        slope_distance*sin(vertical_angle)
      under_declared_angle_convention

    RULE:
      curvature_refraction_and_instrument_target_heights MAY require_correction_for_precision_work
  }

  BAROMETRIC_ALTITUDE_MODEL {
    principle:
      infer_vertical_position_from_atmospheric_pressure

    dependencies:
      pressure
      temperature_profile
      reference_pressure
      atmospheric_model

    RULE:
      barometric_altitude_is_model_dependent_and_not_direct_geodetic_elevation
  }

  GEOPOTENTIAL_HEIGHT_MODEL {
    quantity:
      geopotential_height

    relation:
      derived_from_geopotential_relative_to_reference_gravity

    meteorological_use:
      pressure_surface_height

    RULE:
      geopotential_height != geometric_height_exactly
  }

  TERRAIN_ELEVATION_MODEL {
    terrain_surface:
      ground_or_land_surface

    possible_sources:
      field_survey
      GNSS
      lidar
      photogrammetry
      radar
      digital_elevation_model

    RULE:
      terrain_elevation_requires_surface_definition
  }

  SURFACE_MODEL {
    possible_surfaces:
      bare_earth
      top_of_canopy
      building_surface
      snow_surface
      ice_surface
      water_surface

    RULE:
      measured_surface MUST be identified
      because_surface_choice_changes_elevation_semantics
  }

  DEM_MODEL {
    digital_elevation_model:
      gridded_or_structured_representation_of_surface_elevation

    attributes:
      horizontal_resolution
      vertical_accuracy
      CRS
      vertical_datum
      cell_alignment
      no_data_definition
      acquisition_date
      surface_type

    RULE:
      DEM_cell_value_is_modelled_or_sampled_surface_elevation
      and_not_exact_point_elevation_without_scale_context
  }

  DSM_DTM_MODEL {
    DSM:
      digital_surface_model
      may_include_buildings_vegetation_and_objects

    DTM:
      digital_terrain_model
      intended_to_represent_bare_earth_terrain

    RULE:
      DSM_and_DTM MUST_NOT be treated_as_equivalent
  }

  CONTOUR_MODEL {
    contour:
      line_connecting_points_of_equal_declared_elevation

    contour_interval:
      vertical_difference_between_adjacent_standard_contours

    RULE:
      elevation_interpolated_between_contours_has_resolution_and_interpolation_uncertainty
  }

  SLOPE_MODEL {
    rise:
      delta_z

    horizontal_run:
      delta_s

    gradient:
      G = delta_z/delta_s
      WHEN delta_s != 0

    slope_angle:
      theta = arctan(delta_z/delta_s)

    RULE:
      slope_requires_horizontal_distance_and_elevation_difference
  }

  RELIEF_MODEL {
    local_relief:
      elevation_max - elevation_min
      over_declared_area

    RULE:
      relief_depends_on_spatial_extent
  }

  DEPTH_DISTINCTION_MODEL {
    depth:
      positive_or_signed_distance_below_declared_reference_surface

    elevation:
      signed_vertical_position_relative_to_datum

    conversion_example:
      point_elevation =
        surface_elevation - depth
      under_compatible_vertical_direction_and_reference

    RULE:
      depth_and_elevation MUST preserve_sign_and_reference_conventions
  }

  TIDAL_REFERENCE_MODEL {
    possible_surfaces:
      mean_sea_level
      mean_high_water
      mean_low_water
      chart_datum

    RULE:
      tidal_datums_are_location_and_epoch_dependent
      and_MUST be identified
  }

  CRS_MODEL {
    horizontal_CRS:
      locates_point_horizontally

    vertical_CRS:
      defines_vertical_coordinate_and_reference

    compound_CRS:
      combines_horizontal_and_vertical_reference

    RULE:
      elevation transformation MAY require_both_horizontal_and_vertical_CRS_information
  }

  VERTICAL_TRANSFORMATION_MODEL {
    source_height:
      z_source

    target_height:
      z_target =
        transform(z_source, location, source_datum, target_datum)

    possible_components:
      geoid_model
      datum_offset
      grid_correction
      epoch_correction

    RULE:
      transformation_model_and_version MUST be preserved
  }

  TEMPORAL_MODEL {
    elevation_may_change_due_to:
      tectonic_motion
      subsidence
      uplift
      landslide
      erosion
      deposition
      glacier_change
      water_level_change
      construction

    REQUIRE:
      observation_epoch_when_change_is_material

    RULE:
      elevation_comparisons_across_time SHOULD use_compatible_reference_frames_and_epochs
  }

  REMOTE_SENSING_MODEL {
    lidar:
      range_measurement_plus_sensor_position_and_orientation

    radar:
      range_and_phase_based_surface_inference

    photogrammetry:
      image_geometry_and_control_points

    REQUIRE:
      geolocation
      sensor_calibration
      surface_classification
      vertical_reference

    RULE:
      remote_sensing_height_requires_georeferencing_and_vertical_datum
  }

  RELATIONSHIPS {
    Elevation -> HAS_DIMENSION -> Length
    Elevation -> MEASURED_IN -> Metre
    Elevation -> REFERENCED_TO -> VerticalDatum
    Elevation -> LOCATED_BY -> HorizontalCoordinates
    OrthometricHeight -> REFERENCED_TO -> Geoid
    EllipsoidalHeight -> REFERENCED_TO -> ReferenceEllipsoid
    GeoidUndulation -> RELATES -> EllipsoidalAndOrthometricHeight
    GNSS -> MEASURES -> EllipsoidalHeight
    GeoidModel -> MAPS -> EllipsoidalHeightToOrthometricHeight
    Levelling -> MEASURES -> HeightDifference
    DEM -> REPRESENTS -> SurfaceElevationField
    VerticalTransformation -> MAPS -> SourceDatumToTargetDatum
  }

  SEMANTIC_EQUIVALENCE {
    "elevation" ~= vertical_position_relative_to_defined_reference
    "orthometric height" ~= geoid_referenced_height

    elevation != depth
    orthometric_height != ellipsoidal_height
    elevation != geopotential_height
    DEM != DSM
    DSM != DTM
    GNSS_height != orthometric_height_without_geoid_conversion
    mean_sea_level_label != fully_defined_vertical_datum
  }

  CONSTRAINTS {
    elevation_dimension = L
    vertical_reference_must_be_defined = true
    spatial_location_should_be_defined = true
    orthometric_and_ellipsoidal_height_are_not_semantically_equivalent = true
    geoid_model_must_be_identified_for_height_conversion = true
    surface_type_must_be_defined_for_surface_elevation = true
    CRS_should_be_preserved = true
    observation_epoch_should_be_preserved_when_temporal_change_is_material = true
    transformation_model_should_be_preserved = true
    uncertainty_should_include_vertical_reference_and_measurement_components = true
  }

  MEASUREMENT_MODEL {
    OBSERVABLE_OR_INFERRED:
      Elevation
      OrthometricHeight
      EllipsoidalHeight
      GeopotentialHeight
      HeightDifference

    COMMON_METHODS:
      GNSS
      differential_levelling
      total_station
      trigonometric_levelling
      lidar
      radar
      photogrammetry
      barometric_altimetry
      digital_elevation_model

    RECORD:
      numerical_value
      unit
      elevation_type
      horizontal_coordinates
      horizontal_CRS
      vertical_datum
      vertical_CRS
      geoid_model_when_relevant
      reference_ellipsoid_when_relevant
      surface_type
      measurement_method
      instrument
      antenna_or_instrument_height
      observation_epoch
      spatial_resolution_when_gridded
      transformation_history
      calibration_state
      uncertainty
      provenance

    UNCERTAINTY:
      measured_or_inferred_elevation =
        best_estimate +/- uncertainty
  }

  UNCERTAINTY_MODEL {
    sources:
      instrument_precision
      GNSS_positioning
      geoid_model
      benchmark_uncertainty
      levelling_closure
      atmospheric_refraction
      sensor_orientation
      surface_classification
      horizontal_position
      vertical_transformation
      spatial_resolution
      interpolation
      temporal_change

    PROPAGATION:
      elevation_uncertainty
      <- measurement_reference_transformation_spatial_and_temporal_uncertainties
  }

  REASONING_RULES {
    IF ellipsoidal_height_and_geoid_undulation_known
      THEN orthometric_height =
        ellipsoidal_height-geoid_undulation
      UNDER compatible_sign_convention

    IF orthometric_height_and_geoid_undulation_known
      THEN ellipsoidal_height =
        orthometric_height+geoid_undulation

    IF reference_elevation_and_height_differences_known
      THEN target_elevation =
        reference_elevation+sum(height_differences)

    IF surface_elevation_and_depth_known
      AND compatible_reference_and_sign_convention
      THEN point_elevation =
        surface_elevation-depth

    IF maximum_and_minimum_elevations_known
      THEN relief =
        maximum_elevation-minimum_elevation

    IF elevation_difference_and_horizontal_distance_known
      AND horizontal_distance != 0
      THEN gradient =
        elevation_difference/horizontal_distance

    IF source_elevation_CRS_and_valid_vertical_transformation_known
      THEN target_elevation =
        apply_vertical_transformation(source_elevation)

    IF DEM_values_known
      THEN spatial_derivatives_or_statistics
      MUST preserve_grid_resolution_CRS_and_vertical_datum
  }

  VALIDATION {
    CHECK elevation_type
    CHECK length_unit
    CHECK spatial_location
    CHECK horizontal_CRS
    CHECK vertical_datum
    CHECK vertical_CRS_when_available
    CHECK orthometric_vs_ellipsoidal_height
    CHECK geoid_model_for_conversion
    CHECK geoid_sign_convention
    CHECK surface_type
    CHECK elevation_vs_depth
    CHECK DSM_vs_DTM
    CHECK observation_epoch
    CHECK transformation_history
    CHECK spatial_resolution
    CHECK calibration_state
    CHECK uncertainty_representation
  }

  CONFIDENCE {
    definition_confidence: 1.00
    dimensional_confidence: 1.00
    vertical_reference_confidence: 1.00
    ellipsoid_geoid_relationship_confidence: 0.99
    GNSS_height_confidence: 0.98
    DEM_context_confidence: 0.97
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when vertical datum, CRS, geoid model,
      surface type, epoch, transformation method,
      spatial resolution or uncertainty is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_measurement:
      identify_elevation_type
      validate_unit
      attach_horizontal_coordinates
      attach_horizontal_CRS
      attach_vertical_datum
      attach_vertical_CRS
      attach_geoid_model_when_relevant
      attach_surface_type
      identify_measurement_method
      attach_observation_epoch
      preserve_original_value_and_reference
      attach_uncertainty
      update_elevation_state

    ON datum_change:
      preserve_original_elevation
      identify_source_and_target_vertical_datums
      apply_valid_vertical_transformation
      record_transformation_model_and_version
      propagate_uncertainty

    ON geoid_model_revision:
      preserve_ellipsoidal_height
      preserve_previous_geoid_model
      recompute_orthometric_height
      update_uncertainty
      update_confidence

    ON surface_model_change:
      preserve_original_surface
      identify_new_surface_type
      avoid_direct_comparison_without_surface_correspondence

    ON epoch_change:
      preserve_previous_epoch
      apply_motion_or_deformation_model_when_available
      update_reference_frame_context

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_entity: Elevation
    canonical_dimension: L
    canonical_SI_unit: metre

    interpretation_order:
      identify_elevation_height_or_depth_quantity
      identify_value
      identify_unit
      identify_spatial_location
      identify_horizontal_CRS
      identify_vertical_reference
      identify_orthometric_ellipsoidal_geopotential_or_other_height
      identify_geoid_model_when_required
      identify_surface_type
      identify_measurement_method
      identify_observation_epoch
      identify_spatial_resolution_when_gridded
      identify_transformation_history
      identify_uncertainty
      normalize_units
      validate_reference_context
      infer_vertical_relationships

    ambiguity_controls:
      distinguish_elevation_from_depth
      distinguish_orthometric_from_ellipsoidal_height
      distinguish_geometric_from_geopotential_height
      distinguish_GNSS_height_from_geoid_referenced_elevation
      distinguish_DSM_from_DTM
      distinguish_surface_types
      distinguish_mean_sea_level_label_from_defined_vertical_datum
      preserve_CRS_vertical_datum_geoid_surface_epoch_and_transformation_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_Earth_science_elevation_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Earth Science Measurements
      -> Elevation Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_entity
      ontology_path
      terminology_model
      vertical_datum_model
      geoid_model
      GNSS_height_model
      levelling_model
      trigonometric_height_model
      barometric_altitude_model
      geopotential_height_model
      terrain_elevation_model
      surface_model
      DEM_model
      DSM_DTM_model
      contour_model
      slope_model
      relief_model
      depth_distinction_model
      tidal_reference_model
      CRS_model
      vertical_transformation_model
      temporal_model
      remote_sensing_model
      relationships
      constraints
      measurement_model
      uncertainty_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      elevation_type_definition_changes
      vertical_datum_changes
      geoid_model_changes
      CRS_or_vertical_transformation_changes
      surface_definition_changes
      DEM_or_remote_sensing_model_changes
      temporal_reference_changes
      measurement_model_changes
      constraint_model_changes
      reasoning_rule_changes
      unit_model_changes
  }

}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ