Create some more graphs

This commit is contained in:
Cal Wing 2023-11-02 17:33:08 +10:00
parent dea7734429
commit deb028af85
2 changed files with 163 additions and 7 deletions

167
main.py
View File

@ -182,11 +182,11 @@ INIT_FLIGHT_PRAMS = {
}
def generateGraphs(missionData, mission):
pBar = tqdm(total=4)
pBar = tqdm(total=6)
graphData = {
"figTitle": f"Mission {mission} Flight Characteristics",
"figTitleFontSize": 16,
"figSize": (15,20), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"figSize": (8,12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,1),
"grid": True,
@ -223,7 +223,7 @@ def generateGraphs(missionData, mission):
graphData = {
"figTitle": f"Mission {mission} Flight Position",
"figTitleFontSize": 16,
"figSize": (15,15), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"figSize": (8, 12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,1),
"grid": True,
@ -259,10 +259,77 @@ def generateGraphs(missionData, mission):
makeGraph(graphData, False, False, figSavePath=f"./images/m{mission}_flight_pos.png")
pBar.update(1)
graphData = {
"figTitle": f"Mission {mission} Flight Position",
"figTitleFontSize": 16,
"figSize": (10, 12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,2),
"grid": True,
"subPlots":[
{
"title": "North Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[0]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[0]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "UAV Flight Path",
"xLabel": "Noth Position [m]",
"yLabel": "East Position [m]",
"zLabel": "Down Position [m]",
"plots": [
{"x":missionData[0][NED_POSITION_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[1]], "z":missionData[0][NED_POSITION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
{"x":missionData[1][NED_POSITION_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[1]], "z":missionData[1][NED_POSITION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
{
"title": "East Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[1]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[1]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "UAV Flight Path - Low Grade Data",
"xLabel": "Noth Position [m]",
"yLabel": "East Position [m]",
"zLabel": "Down Position [m]",
"plots": [
{"x":missionData[0][NED_POSITION_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[1]], "z":missionData[0][NED_POSITION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
#{"x":missionData[1][NED_POSITION_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[1]], "z":missionData[1][NED_POSITION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
{
"title": "Down Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "UAV Flight Path - High Grade Data",
"xLabel": "Noth Position [m]",
"yLabel": "East Position [m]",
"zLabel": "Down Position [m]",
"plots": [
#{"x":missionData[0][NED_POSITION_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[1]], "z":missionData[0][NED_POSITION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
{"x":missionData[1][NED_POSITION_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[1]], "z":missionData[1][NED_POSITION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
]
}
makeGraph(graphData, False, False, figSavePath=f"./images/m{mission}_flight_pos_3d.png")
pBar.update(1)
graphData = {
"figTitle": f"Mission {mission} Flight Velocity",
"figTitleFontSize": 16,
"figSize": (15,15), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"figSize": (8, 12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,1),
"grid": True,
@ -299,9 +366,9 @@ def generateGraphs(missionData, mission):
graphData = {
"figTitle": f"Mission {mission} Flight Acceleration",
"figTitleFontSize": 16,
"figSize": (15,15), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"figSize": (8, 12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,1),
"plotDim": (3,3),
"grid": True,
"subPlots":[
{
@ -333,6 +400,94 @@ def generateGraphs(missionData, mission):
makeGraph(graphData, False, False, figSavePath=f"./images/m{mission}_flight_accell.png")
pBar.update(1)
graphData = {
"figTitle": f"Mission {mission} Flight Characteristics",
"figTitleFontSize": 16,
"figSize": (8, 12), #Yay America, this is in inches :/ # Note: cm = 1/2.54
"yLabel": "Time [s]",
"plotDim": (3,1),
"grid": True,
"subPlots":[
{
"title": "North Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[0]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[0]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "North Velocity",
"yLabel": "Velocity [m/s]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_VELOCITY_HEADER[0]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_VELOCITY_HEADER[0]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "North Acceleration",
"yLabel": "Acceleration [m/s$^2$]",
"plots": [
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_ACCELERATION_HEADER[0]], "label":"Low Grade Data", "colour":"uq:purple"},
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_ACCELERATION_HEADER[0]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
{
"title": "East Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[1]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[1]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "East Velocity",
"yLabel": "Velocity [m/s]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_VELOCITY_HEADER[1]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_VELOCITY_HEADER[1]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "East Acceleration",
"yLabel": "Acceleration [m/s$^2$]",
"plots": [
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_ACCELERATION_HEADER[1]], "label":"Low Grade Data", "colour":"uq:purple"},
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_ACCELERATION_HEADER[1]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
{
"title": "Down Position",
"yLabel": "Position [m]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_POSITION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_POSITION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "Down Velocity",
"yLabel": "Velocity [m/s]",
"plots": [
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_VELOCITY_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_VELOCITY_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
]
},
{
"title": "Down Acceleration",
"yLabel": "Acceleration [m/s$^2$]",
"plots": [
{"x":missionData[0][IMU_TIME_HEADER[0]], "y":missionData[0][NED_ACCELERATION_HEADER[2]], "label":"Low Grade Data", "colour":"uq:purple"},
{"x":missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][NED_ACCELERATION_HEADER[2]], "label":"High Grade Data", "colour":"uq:blue"},
]
},
]
}
if TRUTH_N_POS_HEADER[1] in missionData[1].columns:
graphData["subPlots"][0]["plots"].insert(0, {"x": missionData[1][IMU_TIME_HEADER[0]], "y":missionData[1][TRUTH_N_POS_HEADER[1]], "label":"True Position", "colour":"uq:red"})
makeGraph(graphData, False, False, figSavePath=f"./images/m{mission}_flight_accell.png")
pBar.update(1)
TRUTH_NPOS_DELTA_HEADER = ["Calculated vs True Position Delta [m]", "Calculated vs True Position Error [%]"]
def doTruthComparison(missionData, truthData):
for i, mData in enumerate(missionData):

View File

@ -306,7 +306,7 @@ def makeGraph(graphData, showPlot=True, doProgramBlock=True, figSavePath=None, h
ax = ax2
if "type" not in pData or pData["type"] == "plot":
currentLine = ax.plot(xData, yData, label=getSafeValue("label"), color=getSafeColour, **optArgs)
currentLine = ax.plot(xData, yData, getSafeValue("z"), label=getSafeValue("label"), color=getSafeColour, **optArgs)
currentLine = currentLine[0]
currentLineColour = currentLine.get_color()
@ -442,6 +442,7 @@ def makeGraph(graphData, showPlot=True, doProgramBlock=True, figSavePath=None, h
ax = ax1
if "xLabel" in axGraphData: ax.set_xlabel(axGraphData["xLabel"]) # Add an x-label to the axes.
if "yLabel" in axGraphData: ax.set_ylabel(axGraphData["yLabel"]) # Add an y-label to the axes.
if "zLabel" in axGraphData: ax2.set_zlabel(axGraphData["zLabel"]) # Add a y2-label to the axes.
if "y2Label" in axGraphData: ax2.set_ylabel(axGraphData["y2Label"]) # Add a y2-label to the axes.
if "title" in axGraphData: ax.set_title(axGraphData["title"]) # Add an title to the axes.
if "axis" in axGraphData: ax.axis(axGraphData["axis"]) # Set the axis type