The world is not flat.
As of Map Pilot 2.1.0, the ability for the app to download terrain data for adjusting flight plans according to the terrain under them is available as an In-App Purchase.
NOTE: The "Token" referenced below is not something that is purchased. It is part of a free Maps Made Easy account. The Map Pilot Terrain Awareness feature is available through an In App Purchase within Map Pilot. A valid token must be entered in the settings menu first so you can preview the Terrain Awareness feature before purchasing it.
By downloading terrain information before planning a flight, Map Pilot will design the flight path to take changes in the ground elevation into account. Anyone who has tried to map uneven terrain knows that it is almost impossible to maintain consistent overlap when the Altitude AGL is changing with terrain. Consistent overlap leads to consistent GSD and higher quality map processing results.
This is not a sensor based solution and is compatible with all Map Pilot supported aircraft. Once terrain data is downloaded for an area it is available for offline flight planning.
This image shows how a flight planned to take off at the bottom of a canyon will go up and down the canyon wall to maintain a consistent 60 meters above ground level altitude.
This video shows a comparison between a "flat" mission and a terrain aware mission. (Not the same mission in the video above)
Source of the Data
The Terrain Awareness feature uses SRTM (or Shuttle Radar Topography Mission) data that has been specially formatted for use with Map Pilot.
The SRTM data was collected in 2000. As of late 2015 the highest level of detail (30 meters/pixel) was made publicly available. This is a great example of how NASA's work helps people.
From USGS: "Endeavour orbited Earth 16 times each day during the 11-day mission, completing 176 orbits. SRTM successfully collected radar data over 80% of the Earth's land surface between 60° north and 56° south latitude with data points posted every 1 arc-second (approximately 30 meters)."
We are using the "SRTM 1 Arc-Second Global" variant. This data is available in the USGS EarthExplorer system.
Data Access Setup
In order to be able to access the terrain data with Map Pilot, a valid Terrain Data Access Token must be entered in the settings. Think of an Terrain Data Access Token token as a password that allows the app to download the data. Once terrain data is downloaded for an area it is available for offline flight planning.
To get the Access Token you will need a Maps Made Easy account. Once you are logged in to your Maps Made Easy account, go to https://www.mapsmadeeasy.com/profile on your mobile device and copy the value in the "Map Pilot Access Token" box so you can paste it into the Map Pilot settings box labeled "Terrain Data Access Token".
If the "Map Pilot Access Token" entry is blank on the Maps Made Easy page, push the "Request Token" button to get one. If at any time you need to change your token to keep it secure you can push the "Request Token" button again to get a new one.
Terrain Data accesses are tracked by the Maps Made Easy system and are monitored for scraping or abuse. Accounts found to be associated with bulk download of the data will be terminated.
With this new capability comes a few more things to think about when planning a mission. Due to limitations in the aircraft, the DJI SDK, the source data and real world obstacles any terrain aware flight should be carefully reviewed and verified before taking off.
Return To Home - When the RTH button is pressed on the remote or any other event that triggers a Return-to-Home occurs, the aircraft will ascend to the currently set Return-to-Home height if it is higher than its current altitude and proceed in a straight line to the takeoff location. The thing to consider here is that if, for example, you fly up and over a mountain and you are down on the other side back near your currently set return to home height and an RTH event occurs, the aircraft will fly in a straight line back to the takeoff location and directly into the mountain. This shouldn't be done because the flight would violate line of site requirements but it is still possible to send your aircraft there.
To combat this, all terrain aware flights will automatically adjust the Return to Home height to be 60 meters higher than the highest altitude encountered in the current flight path (if possible). Even if the aircraft is right next to the takeoff location when this occurs and is only 60 meters over head, it will ascend to higher than the highest point, come home and descend.
TL;DR - Don't fly up and over stuff because the return to home function wasn't really designed for these kinds of scenarios and there isn't anything Map Pilot can do about it.
Maximum Flight Height - DJI limits the height an aircraft can fly to 500 meters with respect to the takeoff point. A warning message and a red line will appear in the elevation plot to show the areas that are over the 500 meter limit. When a red line is present you will not be able to accept the terrain adjusted flight and take off.
Minimum Flight Height - Flight below the takeoff level is much harder to maintain a solid RC link. A warning message will show and a yellow line is drawn to show the takeoff level.
Source Data Limitations - 30 meter pixels are HUGE. This is the highest resolution elevation data that is available. Look around you and imagine that everything was turned into flat 30 meter squares. There is certainly some data loss.
Date of Collection - This data was collected in the year 2000. If a mine pit was dug before that it may show up. If it was taken after that, it will not.
Unrepresented Obstacles - A utility pole, for example, will not show up. Skyscrapers may show up but the 30 meter granularity will cause issues for the accuracy of the height of the building and the area surrounding it. A vertical cliff face will be located plus or minus 30 meters. These are examples of vertical features that will not be well represented due to the size of the data samples and how it was collected.
Missing Data - 99.9999999% of the supported area is well covered. The data is MOSTLY fine. There are areas where the where the radar was unable to get a reading that have "voids". These empty data locations are in areas where the data has not been fully processed by NASA and are generally in areas of deep ground features or glaciers. In the presence of a "void", Map Pilot will use the last known good elevation. This is the safest course of action since these voids usually occur in deep places the aircraft shouldn't be going to anyway. The voids are usually small and Map Pilot attempts to overestimate the altitude.
The use of the Terrain Aware planning tool is the same whether you are connected to the aircraft or not. The flight path definition is the same as it always has been except now when you tap the Terrain Aware button it will download the elevation tiles from the surrounding area and calculate the optimal flight path based on the terrain under the defined line. If the planned flight violates the various limits in some way or you would like to adjust it, tap the Terrain Aware button again to hide the plot and tap it again to recalculate.
If you have not purchased the Terrain Awareness feature you will be prompted to do so when the terrain plot preview is dismissed. Actual terrain adjusted flight is not available until the feature has been purchased.
NOTE: Making changes to the flight plan while a terrain plot is showing will not make changes to the terrain plan.
Touching and sliding a finger on the elevation plot will draw a light blue dot on the map that corresponds with the location of the touched location. This can be used to check the intended flight path and verify that the elevation that is shown in the plot is what the user sees in the real world.
After planning a flight and reviewing it to make sure that everything looks good, the Upload button will get pressed to start the final flight path calculation step. When Terrain Awareness is enabled, there is a prompt for whether or not to execute a terrain adjusted flight. If "No" is selected, a normal flat flight will be programmed at the designated altitude. When "Yes" is selected, one final profile look up will be executed along the path. Then the user will have the opportunity to Accept or Reject the proposed flight profile. Rejection will allow the user to make further tweaks. Accepting the propose flight will upload it to the aircraft. Terrain Aware flight is started the same as usual. During flight the plot will be available by toggling the Terrain Aware button. Hiding and reshowing it will not cause a new profile calculation during flight. The orange vertical line shows the current progress along the flight path and shows the current elevation information for aircraft's location (red triangle).