In this section we will show some details of how we processed our flight test data files. We will use the three climb tests for illustration.
The raw data from a flight looks like this:
The data looks messy but it's actually easy to load with pandas; simply indicate which separator character is needed:
Here is the printout:
(94, 61)(118, 61)(80, 61)we only had to tell pandas what separator character to look for
pandas figured out the column names and data types without any prompting
the description of most of the fields can be found in the X-Plane developer documentation here: Data Set Output Table
Next we apply some preparation steps and then vertically concat the three dataframes into a single dataframe. "Vertical concat" just means that we stack the three tables on top of each other. Since all the tables have the same column names, this is an easy transformation.
With the three flights combined into a single dataframe, it's easy to create plots with plotly. For example:
Note: Reminder for these plots that the three aircraft test weights are...
100,000 lbs ("light weight" label)
137,000 lbs ("standard weight" label)
174,000 lbs ("heavy weight" label)
We don't need to limit ourselves to using time for the x-axis. We can also plot variables vs altitude, for example:
Note in the above test, that although the power is held constant at 98% N1 in the climb, the fuel flow gradually decreases as altitude is gained.
For brevity, we will not include the full set of analysis plots; however, below we will add a few interesting plots and add remarks from the other test scenarios.
In the above plot, we can see that the extra weight has a pretty clear effect on fuel consumption in cruise, all other variables being held the same. Note also that the fuel consumption does not increase linearly with increasing aircraft weight.
Note in the descent plot:
the counter-intuitive result that the lighter aircraft actually descends faster, all other factors being held the same. Glider pilots make use of this fact when they decide to carry water ballast.
there is a temporary pause in the descent just before 10,000 ft MSL in order to decelerate from 280 KIAS to 240 KIAS
In the next section we will compile this information into callable functions.