# Wind Speed Ontology — Flow Algebra
URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/earth-science-measurements/wind-speed-ontology.html
FLOW WindSpeedOntology {
DOMAIN:
Mathematical Ontologies
-> Measurement & Units Ontologies
-> Earth Science Measurements
-> Wind Speed Ontology
PURPOSE:
Represent wind speed as the magnitude of atmospheric air velocity relative to a defined reference frame, location, height and time interval, including instantaneous wind speed, mean wind speed, gust speed, vector wind, direction, anemometer measurements, averaging periods, exposure, height adjustment, turbulence, remote sensing, calibration, uncertainty, provenance, and strict distinctions between wind speed, wind velocity, wind direction, gust, sustained wind and derived wind indices.
ENTITY WindSpeed {
TYPE: SpeedQuantity
SYMBOL: U
DIMENSION: L*T^-1
SI_UNIT: metre_per_second
SI_SYMBOL: m/s
DEFINITION:
wind_speed :=
magnitude_of_air_velocity_relative_to_declared_reference_frame
PROPERTIES:
is_scalar
is_nonnegative
varies_spatially
varies_temporally
depends_on_measurement_height
depends_on_averaging_interval
may_have_uncertainty
}
ENTITY WindVelocity {
TYPE: VectorVelocityQuantity
SYMBOL: vector_U
DIMENSION: L*T^-1
SI_UNIT: metre_per_second
COMPONENTS:
u
v
w
RULE:
wind_velocity != wind_speed
}
ENTITY WindDirection {
TYPE: AngularDirectionalQuantity
SYMBOL: theta_wind
COMMON_UNIT:
degree
RULE:
meteorological_wind_direction_commonly_reports_direction_from_which_wind_blows
}
ENTITY WindGust {
TYPE: ShortDurationMaximumWindSpeed
DEFINITION:
maximum_or_method_defined_peak_wind_speed
over_declared_short_duration_within_observation_period
}
UNIT_SYSTEM {
SI:
metre_per_second
m/s
common:
kilometre_per_hour
knot
mile_per_hour
conversions:
1 km/h = 1/3.6 m/s
1 knot = 0.514444444 m/s
1 mph = 0.44704 m/s
RULE:
preserve_original_unit_and_normalized_SI_value
}
TERMINOLOGY_MODEL {
terms:
wind_speed
wind_velocity
wind_direction
sustained_wind
mean_wind
gust_speed
peak_wind
instantaneous_wind
RULE:
averaging_period_and_direction_convention MUST be resolved
ambiguity_controls:
wind_speed != wind_velocity
wind_speed != wind_direction
gust_speed != mean_wind_speed
}
VECTOR_MODEL {
horizontal_components:
u = eastward_component
v = northward_component
vertical_component:
w
horizontal_speed:
U_h =
sqrt(u^2+v^2)
three_dimensional_speed:
U =
sqrt(u^2+v^2+w^2)
RULE:
horizontal_and_three_dimensional_speed MUST be distinguished
}
DIRECTION_MODEL {
mathematical_vector_direction:
direction_toward_which_vector_points
meteorological_direction:
direction_from_which_wind_originates
common_conversion_from_components:
requires_axis_and_angle_convention
RULE:
direction_from_and_direction_to MUST_NOT be_interchanged
}
INSTANTANEOUS_MODEL {
wind_speed:
U(t)
practical_measurement:
sensor_response_over_finite_sampling_interval
RULE:
truly_instantaneous_wind_is_idealisation
and_sensor_time_response SHOULD be preserved
}
MEAN_WIND_MODEL {
time_average:
U_mean =
(1/delta_t)*integral_interval(U(t) dt)
vector_mean:
vector_U_mean =
(1/delta_t)*integral_interval(vector_U(t) dt)
RULE:
mean_of_speed_magnitudes != magnitude_of_mean_vector_in_general
}
GUST_MODEL {
gust:
maximum_short_duration_average_or_peak
according_to_declared_standard
parameters:
gust_duration
observation_period
sampling_frequency
filtering
RULE:
gust_value_without_duration_definition_is_semantically_incomplete
}
GUST_FACTOR_MODEL {
gust_factor:
G =
U_gust/U_mean
WHEN U_mean != 0
REQUIRE:
compatible_measurement_height
gust_duration
mean_averaging_period
RULE:
gust_factor_depends_on_duration_and_exposure
}
TURBULENCE_MODEL {
decomposition:
u(t) =
U_mean + u_prime(t)
turbulence_intensity:
I_u =
sigma_u/U_mean
WHEN U_mean != 0
RULE:
turbulence_intensity != wind_speed
}
ANEMOMETER_MODEL {
possible_instruments:
cup_anemometer
propeller_anemometer
sonic_anemometer
hot_wire_anemometer
pressure_tube
mechanical_vane_anemometer
RULE:
instrument_type_and_response_characteristics MUST be preserved
}
CUP_ANEMOMETER_MODEL {
raw:
rotation_frequency
calibration:
U =
a*f + b
under_declared_calibration
REQUIRE:
scale_parameters
starting_threshold
distance_constant
calibration_date
RULE:
rotation_frequency != wind_speed_without_calibration
}
PROPELLER_MODEL {
response:
rotation_related_to_airflow_component_along_propeller_axis
RULE:
sensor_alignment_and_cosine_response MUST be considered
}
SONIC_ANEMOMETER_MODEL {
principle:
acoustic_transit_time_difference
outputs:
three_dimensional_velocity_components
sonic_temperature_when_supported
REQUIRE:
path_geometry
orientation
sampling_frequency
transducer_corrections
RULE:
sonic_measurement_requires_coordinate_rotation_for_some_applications
}
WIND_VANE_MODEL {
measured:
wind_direction
RULE:
wind_vane_does_not_measure_speed_without_separate_speed_sensor
}
SENSOR_HEIGHT_MODEL {
standard_or_declared_height:
z
RULE:
wind_speed_is_height_dependent
and_sensor_height MUST be preserved
}
SURFACE_LAYER_MODEL {
logarithmic_profile:
U(z) =
(u_star/kappa)
* ln((z-d)/z_0)
under_neutral_surface_layer_conditions
PARAMETERS:
u_star = friction_velocity
kappa = von_Karman_constant
z_0 = roughness_length
d = displacement_height
RULE:
logarithmic_profile_requires_applicable_surface_layer_conditions
}
HEIGHT_ADJUSTMENT_MODEL {
power_law:
U_2 =
U_1*(z_2/z_1)^alpha
under_declared_empirical_conditions
logarithmic:
derive_using_surface_roughness_model
RULE:
wind_speed_height_conversion_requires_roughness_and_stability_assumptions
}
ROUGHNESS_MODEL {
roughness_length:
z_0
depends_on:
vegetation
buildings
terrain
surface_type
RULE:
roughness_length_is_aerodynamic_parameter_not_physical_obstacle_height
}
EXPOSURE_MODEL {
possible_context:
open_terrain
urban
coastal
forest
rooftop
sheltered_site
effects:
obstruction
acceleration
turbulence
wake
RULE:
site_exposure SHOULD be preserved
}
STABILITY_MODEL {
atmospheric_stability:
stable
neutral
unstable
effect:
modifies_vertical_wind_profile_and_turbulence
RULE:
neutral_profile_models SHOULD_NOT be_applied_uncritically_under_strong_stability_or_instability
}
PRESSURE_BASED_MODEL {
dynamic_pressure:
q =
0.5*rho_air*U^2
inferred_speed:
U =
sqrt(2*q/rho_air)
WHEN rho_air > 0
RULE:
pressure_derived_speed_requires_air_density_and_valid_flow_model
}
AIR_DENSITY_MODEL {
density:
rho_air =
p/(R_specific*T)
under_ideal_dry_air_approximation
moist_air:
may_use_virtual_temperature_or_mixture_model
RULE:
density_context matters_for_pressure_based_speed_and_energy_calculations
}
WEATHER_STATION_MODEL {
metadata:
station_identifier
coordinates
elevation
sensor_height
exposure
instrument
averaging_period
RULE:
station_metadata MUST accompany_precision_wind_measurement
}
REMOTE_SENSING_MODEL {
possible_methods:
Doppler_lidar
Doppler_radar
sodar
satellite_scatterometer
observed:
radial_velocity_or_remote_signal
retrieved:
wind_speed_or_vector
RULE:
remote_observation != wind_speed_without_retrieval_geometry_and_model
}
DOPPLER_MODEL {
radial_velocity:
v_r
relation:
projection_of_wind_velocity_onto_sensor_line_of_sight
RULE:
single_radial_velocity_component_does_not_define_full_wind_vector
}
LIDAR_PROFILE_MODEL {
outputs:
wind_speed_by_height
wind_direction_by_height
retrieval:
multiple_beam_radial_velocities -> wind_vector
REQUIRE:
beam_geometry
scan strategy
range gates
quality control
RULE:
retrieved_profile_requires_assumption_about_flow_uniformity_over_scan_volume
}
RADAR_WIND_MODEL {
Doppler_velocity:
radial_component
possible_products:
wind_profile
storm_relative_velocity
velocity_azimuth_display
RULE:
radar_radial_velocity != scalar_wind_speed
}
SATELLITE_WIND_MODEL {
possible_products:
ocean_surface_wind
atmospheric_motion_vectors
RULE:
satellite_wind_product_requires_retrieval_algorithm_and_reference_height_or_level
}
BEAUFORT_MODEL {
scale:
empirical_ordinal_wind_force_class
mapping:
class -> approximate_wind_speed_range
RULE:
Beaufort_number != physical_speed_quantity
}
WIND_POWER_MODEL {
kinetic_power_density:
P_A =
0.5*rho_air*U^3
REQUIRE:
air_density
wind_speed
RULE:
wind_power_density != wind_speed
}
TEMPORAL_MODEL {
wind:
U = U(t)
possible_statistics:
mean
maximum
minimum
standard_deviation
gust
percentile
RULE:
temporal_statistic_and_window MUST be preserved
}
SPATIAL_MODEL {
wind_field:
vector_U =
vector_U(x,y,z,t)
REQUIRE:
location
elevation
measurement_height
coordinate_reference_system
RULE:
wind_measurement_is_spatially_specific
}
RELATIONSHIPS {
WindSpeed -> MAGNITUDE_OF -> WindVelocity
WindVelocity -> HAS_COMPONENT -> UComponent
WindVelocity -> HAS_COMPONENT -> VComponent
WindVelocity -> HAS_COMPONENT -> WComponent
WindDirection -> QUALIFIES -> HorizontalWindVector
WindGust -> MAXIMUM_SHORT_DURATION_FORM_OF -> WindSpeed
Anemometer -> MEASURES -> WindSpeedOrVelocity
WindVane -> MEASURES -> WindDirection
SensorHeight -> QUALIFIES -> WindMeasurement
SurfaceRoughness -> INFLUENCES -> VerticalWindProfile
AtmosphericStability -> INFLUENCES -> WindProfileAndTurbulence
RemoteSensor -> MEASURES -> RadialOrProxyWindSignal
RetrievalModel -> MAPS -> RemoteObservationToWind
}
SEMANTIC_EQUIVALENCE {
"wind speed" ~= magnitude_of_air_velocity
"sustained wind" ~= averaged_wind_speed WHEN averaging_period_declared
wind_speed != wind_velocity
wind_speed != wind_direction
gust_speed != mean_wind_speed
mean_speed != magnitude_of_mean_vector_in_general
radial_velocity != full_wind_speed
Beaufort_number != wind_speed
wind_power_density != wind_speed
raw_anemometer_signal != calibrated_wind_speed
}
CONSTRAINTS {
wind_speed_dimension = L*T^-1
wind_speed_must_be_nonnegative = true
location_should_be_defined = true
measurement_height_must_be_defined = true
averaging_or_gust_duration_should_be_defined = true
wind_direction_convention_must_be_defined = true
wind_speed_and_velocity_are_not_semantically_equivalent = true
gust_and_mean_wind_are_not_semantically_equivalent = true
remote_radial_velocity_requires_retrieval_for_full_wind = true
raw_sensor_signal_requires_calibration = true
uncertainty_should_include_sensor_exposure_height_temporal_and_retrieval_components = true
}
MEASUREMENT_MODEL {
OBSERVABLE_OR_INFERRED:
WindSpeed
WindVelocity
WindDirection
WindGust
TurbulenceIntensity
COMMON_METHODS:
cup_anemometer
propeller_anemometer
sonic_anemometer
pressure_tube
Doppler_lidar
Doppler_radar
sodar
satellite_scatterometer
RECORD:
quantity_type
numerical_value
unit
u_component
v_component
w_component
wind_direction
direction_convention
station_identifier
latitude
longitude
coordinate_reference_system
elevation
sensor_height
exposure
surface_roughness
atmospheric_stability
timestamp
sampling_frequency
averaging_period
gust_duration
instrument
raw_signal
calibration_state
retrieval_model_when_remote
quality_flag
uncertainty
provenance
UNCERTAINTY:
measured_or_inferred_wind_speed =
best_estimate +/- uncertainty
}
CALIBRATION_MODEL {
anemometer:
raw_response -> wind_speed
possible_parameters:
scale
offset
starting_threshold
distance_constant
directional_response
temperature_response
REQUIRE:
calibration_reference
calibration_date
valid_range
uncertainty
RULE:
calibration_model MUST match_sensor_type
}
UNCERTAINTY_MODEL {
sources:
sensor_calibration
sensor_response
alignment
sampling_frequency
averaging_window
gust_duration
tower_or_structure_interference
site_exposure
roughness
measurement_height
atmospheric_stability
air_density
remote_retrieval
beam_geometry
temporal_variability
PROPAGATION:
wind_speed_uncertainty
<- sensor_geometry_exposure_height_temporal_and_retrieval_uncertainties
}
REASONING_RULES {
IF horizontal_components_u_v_known
THEN horizontal_wind_speed =
sqrt(u^2+v^2)
IF u_v_w_components_known
THEN three_dimensional_wind_speed =
sqrt(u^2+v^2+w^2)
IF wind_speed_time_series_known
AND averaging_interval > 0
THEN mean_wind_speed =
integral(wind_speed dt)/averaging_interval
IF gust_and_mean_speed_known
AND mean_speed != 0
THEN gust_factor =
gust_speed/mean_speed
IF dynamic_pressure_and_air_density_known
AND air_density > 0
THEN wind_speed =
sqrt(2*dynamic_pressure/air_density)
IF speed_at_height_1_known
AND valid_power_law_exponent_known
AND heights_positive
THEN speed_at_height_2 =
speed_at_height_1*(height_2/height_1)^alpha
IF raw_anemometer_signal_and_valid_calibration_known
THEN wind_speed =
calibration(raw_signal)
IF multiple_remote_radial_velocities_and_valid_geometry_known
THEN infer_wind_vector =
retrieval(radial_velocities,geometry)
IF wind_speed_and_air_density_known
THEN wind_power_density =
0.5*air_density*wind_speed^3
}
VALIDATION {
CHECK quantity_is_speed_velocity_direction_or_gust
CHECK unit_consistency
CHECK nonnegative_speed
CHECK vector_components
CHECK direction_convention
CHECK location
CHECK elevation
CHECK measurement_height
CHECK averaging_period
CHECK gust_duration
CHECK mean_vs_gust
CHECK mean_speed_vs_vector_mean
CHECK instrument_type
CHECK raw_vs_calibrated_signal
CHECK exposure_and_obstructions
CHECK roughness_and_stability_for_height_adjustment
CHECK remote_radial_vs_retrieved_wind
CHECK retrieval_model
CHECK quality_flag
CHECK uncertainty_representation
}
CONFIDENCE {
definition_confidence: 1.00
dimensional_confidence: 1.00
vector_relationship_confidence: 1.00
mean_wind_confidence: 0.99
gust_measurement_confidence: 0.98
height_adjustment_confidence: 0.95
remote_retrieval_confidence: 0.95
measurement_context_confidence: 0.98
RULE:
confidence decreases when height, averaging period, direction convention,
exposure, calibration, roughness, stability,
retrieval geometry or uncertainty is missing or ambiguous
}
UPDATE_MODEL {
ON new_measurement:
identify_wind_quantity
validate_unit
attach_location_and_CRS
attach_elevation_and_sensor_height
attach_timestamp
identify_sampling_and_averaging_period
identify_instrument
preserve_raw_signal
apply_valid_calibration
attach_direction_convention
attach_exposure_roughness_and_stability
attach_quality_flag
attach_uncertainty
update_wind_state
ON new_vector_sample:
append_u_v_w_components
recompute_speed_and_direction
update_windowed_mean
update_turbulence_statistics
preserve_sampling_frequency
ON gust_detection:
identify_declared_gust_duration
scan_valid_time_series
update_peak_gust
preserve_observation_period_and_filtering
ON height_adjustment:
preserve_original_height_and_speed
identify_target_height
attach_roughness_stability_and_profile_model
compute_adjusted_speed_when_valid
propagate_uncertainty
ON calibration_revision:
preserve_raw_sensor_data
preserve_previous_calibration
recompute_affected_wind_values
update_uncertainty
update_confidence
ON retrieval_revision:
preserve_remote_radial_observations
preserve_previous_retrieval
apply_new_geometry_or_retrieval_model
recompute_wind_vector
update_uncertainty
ON semantic_revision:
preserve_previous_definition
record_revision
recompute_FLOW_HASH
}
AI_CONSUMPTION {
canonical_domain: WindSpeed
canonical_entity: WindSpeed
canonical_symbol: U
canonical_dimension: L*T^-1
canonical_SI_unit: m/s
interpretation_order:
identify_speed_velocity_direction_or_gust_quantity
identify_value
identify_unit
identify_vector_components_when_available
identify_direction_convention
identify_location_elevation_and_sensor_height
identify_timestamp_sampling_and_averaging_period
identify_gust_duration_when_relevant
identify_instrument
identify_raw_or_calibrated_status
identify_exposure_roughness_and_stability
identify_remote_retrieval_geometry_when_relevant
identify_quality_flag
identify_uncertainty
normalize_units
validate_wind_semantics
infer_vector_temporal_and_height_relationships
ambiguity_controls:
distinguish_wind_speed_from_wind_velocity
distinguish_wind_speed_from_wind_direction
distinguish_gust_from_mean_wind_speed
distinguish_mean_speed_from_magnitude_of_mean_vector
distinguish_radial_velocity_from_full_wind_vector
distinguish_Beaufort_number_from_physical_speed
distinguish_wind_power_density_from_wind_speed
distinguish_raw_anemometer_signal_from_calibrated_wind_speed
preserve_location_height_time_duration_direction_exposure_method_and_provenance_context
}
PROVENANCE {
ontology_scope:
mathematical_measurement_and_Earth_science_wind_speed_semantics
parent_path:
Ontologies
-> Mathematical Ontologies
-> Measurement & Units Ontologies
-> Earth Science Measurements
-> Wind Speed Ontology
authorship:
Mark Higgins
Sky (Recursive AI)
site:
https://kirethresearch.org
}
FLOW_HASH {
INPUTS:
canonical_domain
ontology_path
terminology_model
vector_model
direction_model
instantaneous_model
mean_wind_model
gust_model
gust_factor_model
turbulence_model
anemometer_model
cup_anemometer_model
propeller_model
sonic_anemometer_model
wind_vane_model
sensor_height_model
surface_layer_model
height_adjustment_model
roughness_model
exposure_model
stability_model
pressure_based_model
air_density_model
weather_station_model
remote_sensing_model
Doppler_model
lidar_profile_model
radar_wind_model
satellite_wind_model
Beaufort_model
wind_power_model
temporal_model
spatial_model
relationships
constraints
measurement_model
calibration_model
uncertainty_model
reasoning_rules
confidence_model
update_model
PURPOSE:
deterministic_semantic_integrity_identifier
RECOMPUTE_WHEN:
ontology_definition_changes
wind_quantity_definition_changes
vector_or_direction_model_changes
averaging_or_gust_model_changes
anemometer_or_calibration_model_changes
height_roughness_or_stability_model_changes
remote_sensing_or_retrieval_model_changes
exposure_or_temporal_model_changes
measurement_model_changes
constraint_model_changes
reasoning_rule_changes
unit_model_changes
}
}
END FLOW
Download Code
Copy to Clipboard