It's not as complicated as it might appear, and the entire method is essentially described in post #32. In the case of a steady wind-induced drift in P-GPS mode, then once you have the .txt flight log converted you have access to all the necessary information. Specifically the following fields:
- OSD.flyTime: elapsed flight time in seconds
- CENTER_BATTERY.fullCapacity: full battery capacity in mAh
- CENTER_BATTERY.currentCapacity: current battery level in mAh
- OSD.latitude: decimal degrees
- OSD.longitude: decimal degrees
- OSD.xSpeed: velocity north in m/s
- OSD.ySpeed: velocity east in m/s
- OSD.height: altitude above home point in meters
- OSD.flycState.RAW: flight mode (P-GPS is 6, RTH is 15, ATTI is 1)
- SMART_BATTERY.landBattery: the FC's estimated battery percentage at which it will commence autoland
In P-GPS mode when uplink is lost the aircraft will attempt (or continue to attempt in this case) to RTH, and then autoland when the battery percentage (100 x CENTER_BATTERY.currentCapacity/CENTER_BATTERY.fullCapacity) decreases to the calculated minimum level from which it can land from its current altitude (SMART_BATTERY.landBattery). The time at which autoland will occur can be estimated by extrapolating the decreasing battery percentage until it meets the autoland level. In the graph that is the intersection of the dashed red line and the dashed orange line.
View attachment 39621
Reading off the bottom time axis then gives the estimated autoland start time - in this case 1150 s. If it was drifting steadily before downlink is lost then that drift rate can be used to estimate where it will be at the autoland start point.
You can (a) use the latitude and longitude data (converted to distance north and east since lat/long is not linear on the ground) or the x and y speeds, either (b) directly (averaged at the end and multiplied by elapsed time to get distance) or (c) integrated with respect to time to give distance north and east and then extrapolated by linear fit to the appropriate time. If the aircraft is basically moving directly away from the home point you can also simplify the problem and (d) just use the calculated distance from home point field in the data (CALC.distance), extrapolating that from the last recorded point at the appropriate rate. I generally use either (a) or (d) depending on the situation.
Anyway - in the graph (d) is used, and the distance of the autoland point from the homepoint is found by extrapolating the distance data (blue) with a linear regression fit to the last part of the data when the aircraft was in RTH mode (dashed blue trace) to the 1150 s mark giving 9620 m. Then estimate the time required to autoland from the current altitude (need to take into account any change in ground elevation from the takeoff point) and add that to the time to get the estimated landing time since drift will continue during descent (around 30 s from 80 m at the default descent rate fo 3 m/s in this case). Bear in mind that the drift rate will likely decrease with altitude, and so this should be a bounding upper value. Extrapolating distance further to that time in this case gives 9985 m.
Direction of travel can be derived from the final averaged values of x and y speed, or estimated directly in Google Earth from the kml flight track. Then it's just a question of plotting the estimated track to the appropriate distance in Google Earth to find the estimated landing point, with some appropriate estimates for error in track direction, based on how steady the drift direction was at the end of the logged part of the flight.
The main source of error is an unsteady wind field, leading to variation in drift rate and direction. There is also an assumption that after the downlink is lost (end of the log) then either the uplink (control) is also lost or that the pilot doesn't send more control inputs (sticks or other commands) that will change the aircraft behavior.
I hope that helps.