Navigation.jl
Navigation.Navigation — ModuleCalculate distances, angles, speeds and points for aviation navigation purposes.
All angles are in degrees, distances are standard in meters, and speeds are standard in m/s.
These methods are not to be used for operational purposes.
Implemented Functions:
- distance
- angular_distance
- bearing
- final_bearing
- midpoint
- intermediate_point
- destination_point
- intersection_point
- alongtrackdistance
- crosstrackdistance
- Vground
- head_wind
- cross_wind
- normalize
- closestpointto_pole
- isinside
Implemented Types:
- Point(ϕ, λ)
- Airspace
Implemented constants:
- Rₑ_m Radius Earth in [m]
Based on:
- source: www.movable-type.co.uk/scripts/latlong.html
- source: edwilliams.org/avform.htm
Types
Navigation.Point — TypePoint type with latitude ϕ [deg] and longitude λ [deg]
Functions
Navigation.Vground — MethodVground(Vtas::Float64, Vwind::Float64, ∠wind::Float64, course::Float64)Return the ground speed Vground [m/s] given the course [deg], airspeed Vtas [m/s], wind speed Vwind[m/s] and wind direction (from) ∠wind [deg].
source: edwilliams.org/avform.htm
Navigation.along_track_distance — Functionalong_track_distance(pos₁::Point, pos₂::Point, pos₃::Point[,radius::Float64=Rₑ_m])The along_track_distance from the start point pos₁ [deg] to the closest point on the great circle path (defined by points pos₁ and pos₂ [deg]) to the point pos₃ [deg]. Optionally a different radius for the earth can be used.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.along_track_distance — Functionalong_track_distance(∠distance₁₃::Float64, cross_track_∠distance::Float64,
[radius::Float64=Rₑ_m])The along_track_distance from the start point pos₁ [deg] to the closest point on the great circle path (defined by angular distance ∠distance₁₃ [deg] between pos₁ and pos₃ [deg] and the cross track angular distance cross_track_∠distance [deg]) to the point pos₃ [deg]. Optionally a different radius for the earth can be used.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.angular_distance — Functionangular_distance(distance::Float64[, radius::Float64=Rₑ_m])Return the angular_distance in [deg] on a sphere, with an optionally given radius.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.angular_distance — Functionangular_distance(pos₁::Point, pos₂::Point, radius::Float64=Rₑ_m)Return the angular_distance in [deg] of the great circle line between the positions pos₁ [deg] and pos₂ [deg] on a sphere, with an optionally given radius.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.bearing — Methodbearing(pos₁::Point, pos₂::Point)Return the initial bearing [deg] of the great circle line between the positions pos₁ and pos₂ [deg] on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.bearing — Methodbearing(section::RouteSection)Return the initial bearing [deg] of the route section on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.closest_point_to_pole — Methodclosestpointtopole(startingpoint::Point, bearing::Float64)
Given a starting_point [deg] and initial bearing [deg] calculate the closest point [deg] to the next pole encountered.
Source: https://www.movable-type.co.uk/scripts/latlong.html
Navigation.cross_track_distance — Functioncross_track_distance(pos₁::Point, pos₂::Point, pos₃::Point[, radius::Float64=Rₑ_m])Return the cross_track_distance [m] from a point pos₃ [deg] to a great circle path defined by the points pos₁ and pos₂ [deg].
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.cross_track_distance — Functioncross_track_distance(section::RouteSection, pos₃::Point [,
radius::Float64=Rₑ_m])Return the cross_track_distance [m] from a point pos₃ [deg] to a route section.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.cross_track_distance — Functioncross_track_distance(∠distance₁₃::Float64, bearing₁₂::Float64,
bearing₁₃::Float64[, radius::Float64=Rₑ_m])Return the cross_track_distance [m] from a point pos₃ [deg] to a great circle path. The distance is calculated using the angular distance between points pos₁ and pos₃ [deg], the bearing [deg] between points pos₁ and pos₃ [deg] , the bearing [deg] between points pos₁ and pos₂ [deg], and the radius of the earth [m].
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.cross_track_distance — Functioncross_track_distance(pos₁::Point, bearing::Float64, pos₃::Point[, radius::Float64=Rₑ_m])Return the cross_track_distance [m] from a point pos₃ [deg] to a great circle path defined by the point pos₁ and bearing [deg].
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.cross_wind — Methodcross_wind(Vwind::Float64, ∠wind::Float64, course::Float64)Return the cross_wind [m/s] component for a given wind speed Vwind [m/s], course [deg], and wind direction (from) ∠wind [deg]. A positive cross-wind component indicates a wind from the right.
source: edwilliams.org/avform.htm
Navigation.destination_point — Functiondestination_point(start_pos::Point, distance::Float64, bearing::Float64[,
radius::Float64=Rₑ_m])Given a start_pos [deg], initial bearing (clockwise from North) [deg], distance [m], and the earth radius [m] calculate the destination_point [deg] travelling along a (shortest distance) great circle arc. (The distance must use the same radius as the radius of the earth.)
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.distance — Functiondistance(section::RouteSection [, radius::Float64=Rₑ_m])Return the distance [m] of the great circle line on the route section on a sphere, with an optionally given radius.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.distance — Functiondistance(pos₁::Point, pos₂::Point[, radius::Float64=Rₑ_m])Return the distance [m] of the great circle line between the positions pos₁ [deg] and pos₂ [deg] on a sphere, with an optionally given radius.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.final_bearing — Methodfinal_bearing(pos₁::Point, pos₂::Point)Return the final_bearing [deg] of the great circle line between the positions pos₁ and pos₂ [deg] on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.final_bearing — Methodfinal_bearing(section::RouteSection)Return the final_bearing [deg] of the route section on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.head_wind — Methodhead_wind(Vwind::Float64, ∠wind::Float64, course::Float64)Return the head_wind [m/s] component for a given wind speed Vwind [m/s], course [deg], and wind direction (from) ∠wind [deg]. A tail-wind is a negative head-wind.
source: edwilliams.org/avform.htm
Navigation.intermediate_point — Functionintermediate_point(section::RouteSection [, fraction::Float64 = 0.5])Return the intermediate_point (Point) at any fraction along the route section. The fraction along the great circle route is such that fraction = 0.0 is at pos₁ and fraction 1.0 is at pos₂.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.intermediate_point — Functionintermediate_point(pos₁::Point, pos₂::Point[, fraction::Float64 = 0.5])Return the intermediate_point [deg] at any fraction along the great circle path between two points with positions pos₁ and pos₂ [deg]. The fraction along the great circle route is such that fraction = 0.0 is at pos₁ [deg] and fraction 1.0 is at pos₂ [deg].
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.intersection_point — Methodintersection_point(pos₁::Point, pos₂::Point, airspace::Airspace)Return the intersection point pos₃ [deg] of a great circle section with an Airspace. The great circle section is defined by two points [deg] pos₁ and pos₂ [deg].
Navigation.intersection_point — Methodintersection_point(pos₁::Point, pos₂::Point, polygon::Vector{Point{Float64}})Return the intersection point pos₃ [deg] of a great circle section with a polygon. The great circle section is defined by two points [deg] pos₁ and pos₂ [deg].
Navigation.intersection_point — Methodintersection_point(pos₁::Point, pos₂::Point, bearing₁₃::Float64, bearing₂₃::Float64)Return the intersection point pos₃ [deg] of two great circle paths given two start points [deg] pos₁ and pos₂ [deg] and two bearings [deg] from pos₁ to pos₃ [deg], and from pos₂ to pos₃ [deg].
Under certain circumstances the results can be an ∞ or ambiguous solution.
Source: edwilliams.org/avform.htm
Navigation.max_latitude — Methodmax_latitude(latitude::Float64, bearing::Float64)
Using Clairaut's formula it is possible to calculate the maximum latitude [deg] of a great circle path, given a bearing [deg] and latitude [deg] on the great circle.
The minimum latitude is -max_latitude
Source: https://www.movable-type.co.uk/scripts/latlong.html
Navigation.midpoint — Methodmidpoint(pos₁::Point, pos₂::Point)Return the half-way point midpoint [deg] on the great circle line between the positions pos₁ and pos₂ [deg] on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.midpoint — Methodmidpoint(section::RouteSection)Return the half-way point midpoint [deg] on the route section on a sphere.
Source: www.movable-type.co.uk/scripts/latlong.html
Navigation.opposite_point — Methodopposite_point(point::Point)
The point at the opposite site of the Sphere.