Click or drag to resize

Route Design

Route Design Library provides a simple way to define a route following various waypoints and other procedures located along the surface of a central body. It models simple transitions in state between user specified procedures as well as handling configuration of procedures to account for surrounding maneuvers, terrain, and other factors. Route Design Library is intended to be used as a way to quickly specify routes for aircraft, ground vehicles, and ships. The resulting routes can then be used with other libraries to perform mission analysis between spacecraft, aircraft, ships, and the ground. The library assumes simple dynamics and does not model complex flight mechanics for aircraft. Instead, it provides a simple and easy way to iterate while designing a reference trajectory that can be used as a basis for designing a more detailed flight path or ground route. Lastly, the library provides additional geometry types to help with analyzing the route.

Note Note

The functionality described in this topic requires a license for the Route Design Library.

There are several key areas to understand in order to use Route Design Library effectively.




A RouteProcedure defines a maneuver over an area of interest or waypoint along a route. A procedure also has a RouteProfile associated with it, in order to specify the height and speed at which to traverse the procedure. Procedures represent the primary way in which users specify the geometry of a route.


A RouteProfile specifies the changes in height and speed along a particular segment of a route. The height, height rate, speed, linear and vertical accelerations are all defined by the profile to specify the position along the route as a function of time.


A RouteConnection manages the smooth transition between two surrounding procedures. The connections will configure themselves so that they match the surrounding boundary conditions of the procedures. If the connections cannot connect smoothly with the surrounding profiles or if they violate user-specified dynamics, they will attempt to reconfigure the surrounding procedures to allow for a feasible connection. If the user has specified that the surrounding procedures cannot change, the connections will yield a configuration error if they cannot reconfigure successfully. Connections give the user a way to specify which heuristics to use when connecting two procedures, including: whether to use constant heading or shortest distance, whether to behave like a ground vehicle or an aircraft, whether to automatically avoid hitting terrain or to ignore it.


The RoutePropagator combines various procedures, connections, and their associated profiles into a single route. The propagator produces an instance of PropagatedRoute that contains metadata about the route and has the ability to create a Point which represents the position and its derivatives along the route.


The various Points, Axes, and Scalars provided with the library provide ways to represent the trajectory for use with the rest of DME Component Libraries as well as producing additional data along the route.

Code Sample

An collection of code samples which set up and propagate a simple route.