find_route {himach} | R Documentation |
Find best route between 2 airports
Description
find_route
finds the quickest route between two airports, refuelling
if necessary
Usage
find_route(
ac,
ap2,
fat_map,
avoid = NA,
route_grid,
cf_subsonic = NA,
refuel = NA,
refuel_h = 1,
refuel_only_if = TRUE,
refuel_topN = 1,
max_circuity = 2,
ap_loc,
margin_km = 200,
...
)
Arguments
ac |
One aircraft, as from |
ap2 |
One airport pair, as from |
fat_map |
|
avoid |
|
route_grid |
|
cf_subsonic |
Further aircraft to use as comparator, default NA. (use is not recommended) |
refuel |
Airports available for refuelling, dataframe with |
refuel_h |
Duration of refuelling stop, in hours |
refuel_only_if |
If TRUE (default) only test refuel options if necessary because the great circle distance is too far for the aircraft range |
refuel_topN |
Return the best N (default 1) refuelling options |
max_circuity |
Threshold for excluding refuelling stops (default 2.0) |
ap_loc |
Airport locations as from |
margin_km |
Great circle distance between airports must be less than aircraft range minus this operating margin (default 200km), to give a margin for arrival and departure. |
... |
Other parameters, passed to |
Details
This function finds the quickest route between two airports. A 'route' is
made up of one or two 'legs' (airport to airport without intermediate stop).
find_route
makes one or more calls to find_leg
as required.
It assumes that the routing grid, route_grid
, has already been
classified as land or sea using the map fat_map
. The map is further
used when converting the grid-based route to one of great circles segments.
Value
Dataframe with details of the route
Refuelling
If either necessary, because the great circle distance is greater than the
aircraft range, or because refuel_only_if
is FALSE,
find_route
searches through a list of refuelling airports and
chooses the quickest one (or refuel_topN
).
Circuitous refuelling is avoided, tested against total distance <
max_circuity
* great circle distance. This is separate to the limits
placed on circuity of individual legs in find_leg
.
If no refuel option is found, a message is displayed. The route with 'NA' for 'time_h' is returned.
Each refuelling stop costs refuel_h
in addition to the time to
descend to the airport and then to climb out again.
Examples
# need to load some of the built-in data
aircraft <- make_aircraft(warn = FALSE)
# get test datasets
NZ_buffer30 <- hm_get_test("buffer")
NZ_grid <- hm_get_test("grid")
airports <- make_airports(crs = sf::st_crs(NZ_buffer30))
options("quiet" = 4) #for heavy reporting
# from Auckland to Christchurch
ap2 <- make_AP2("NZAA","NZCH",airports)
# on some CRAN machines even this takes too long, so not run
## Not run:
routes <- find_route(aircraft[4,],
ap2,
fat_map = NZ_buffer30,
route_grid = NZ_grid,
ap_loc = airports)
## End(Not run)