A system comprising: at least one aircraft that navigates based at least in part on a flight path ; at least one processor ; and at least one memory coupled to the at least one processor , the at least one memory including a set of instructions, which when executed by the at least one processor , causes the system to: segment an input flight path into a plurality of segments (108a-108g) based on terrain data ; identify target altitude heights of endpoints of the plurality of segments (108a-108g) based on the terrain data and a target cruise altitude ; identify a plurality of local maxima associated with the plurality of segments (108a-108g) that are arranged in an order along the input flight path ; identify a local maximum of the plurality of local maxima that represents a dip in altitude relative to a previous local maximum and a subsequent local maximum ; remove the local maximum that represents the dip from the plurality of local maxima to generate a reduced list of local maxima ; set, as a plurality of waypoints , the endpoints and the local maxima in the reduced list of local maxima ; generate the flight path based at least in part on the plurality of waypoints ; and cause the flight path to be provided to the at least one aircraft . at least one aircraft that navigates based at least in part on a flight path ; at least one processor ; and at least one memory coupled to the at least one processor , the at least one memory including a set of instructions, which when executed by the at least one processor , causes the system to: segment an input flight path into a plurality of segments (108a-108g) based on terrain data ; identify target altitude heights of endpoints of the plurality of segments (108a-108g) based on the terrain data and a target cruise altitude ; identify a plurality of local maxima associated with the plurality of segments (108a-108g) that are arranged in an order along the input flight path ; identify a local maximum of the plurality of local maxima that represents a dip in altitude relative to a previous local maximum and a subsequent local maximum ; remove the local maximum that represents the dip from the plurality of local maxima to generate a reduced list of local maxima ; set, as a plurality of waypoints , the endpoints and the local maxima in the reduced list of local maxima ; generate the flight path based at least in part on the plurality of waypoints ; and cause the flight path to be provided to the at least one aircraft . segment an input flight path into a plurality of segments (108a-108g) based on terrain data ; identify target altitude heights of endpoints of the plurality of segments (108a-108g) based on the terrain data and a target cruise altitude ; identify a plurality of local maxima associated with the plurality of segments (108a-108g) that are arranged in an order along the input flight path ; identify a local maximum of the plurality of local maxima that represents a dip in altitude relative to a previous local maximum and a subsequent local maximum ; remove the local maximum that represents the dip from the plurality of local maxima to generate a reduced list of local maxima ; set, as a plurality of waypoints , the endpoints and the local maxima in the reduced list of local maxima ; generate the flight path based at least in part on the plurality of waypoints ; and cause the flight path to be provided to the at least one aircraft . <EOS>