MGL EFIS数据绘图仪
mgl_efis_plotter的Python项目详细描述
MGL EFIS绘图仪包从 MGL EFIS产品,如IEFI。 它可以同时读取IEFISS.REC和IEFISBB.DAT文件。
这个包打算用在笔记本电脑里 创建图表。它还可以将数据保存为csv文件。
安装
作为Anaconda的一部分安装jupyter笔记本 或者从Jupyter网站。
使用pip或您喜爱的python包管理器安装mgl_efis_绘图仪:
pip install mgl_efis_plotter
示例用法
Jupyter笔记本手机:
frommgl_efis_plotterimport*config=Config()flights=create_flights('IEFIS.REC',config)p=Plot(flights[0])# plot pressure altitude vs. density altitude vs. outside air temperaturep.plot2(['pAltitude','densityAltitude','oat']).show()
配置
这是默认配置。您可以做三件事之一:
- 照原样使用。
- 尽量使用它,只替换一些值。
- 几乎把所有东西都换掉,只保留一些不变的东西。
classConfig:units={'airspeed':'knots',# 'knots' or 'kph''barometer':'hg',# 'hg' or 'millibars''fuel':'gallons',# 'gallons' or 'liters''manifoldPressure':'hg',# 'hg' or 'millibars''oilPressure':'psi',# 'psi' or 'millibars''ambientTemperature':'c',# 'f' or 'c''engineTemperature':'f',# 'f' or 'c'}# set each thermocouple value to one of 'cht' or 'egt' or None (capitalized and without quotation marks)# the values that you set here must match the configuration of your RDACthermocouples={1:'cht',2:'egt',3:'cht',4:'egt',5:'cht',6:'egt',7:'cht',8:'egt',9:None,10:None,11:None,12:None,}plot_dimensions=(12,8)# width & height in inchesplot_dpi=100# dots per inchplot_font_size=14rolling_window=16# bigger numbers make smoother graphs; start with 16# iEFIS seems to add about 260 seconds to the timestamp at the top of the hournew_flight_delta=300
要按原样使用,请创建如下单元格:
config=Config
要按原样使用它,只替换几个值,请创建如下单元格:
config=Configconfig.units['barometer']='millibars'config.units['fuel']='liters'
几乎替换所有内容,只保留少数内容不变,创建如下单元格:
classMyConfig(Config):units={'airspeed':'kph',# 'knots' or 'kph''barometer':'millibars',# 'hg' or 'millibars''fuel':'liters',# 'gallons' or 'liters''manifoldPressure':'millibars',# 'hg' or 'millibars''oilPressure':'millibars',# 'psi' or 'millibars''ambientTemperature':'c',# 'f' or 'c''engineTemperature':'c',# 'f' or 'c'}# set each thermocouple value to one of 'cht' or 'egt' or None (capitalized and without quotation marks)# the values that you set here must match the configuration of your RDACthermocouples={1:'cht',2:'cht',3:'cht',4:'cht',5:'egt',6:'egt',7:'egt',8:'egt',9:None,10:None,11:None,12:None,}config=MyConfig()
加载航班
设置好配置后,从文件中加载航班,并用如下单元格打印航班列表:
flights=create_flights('IEFIS.REC',config)foriinrange(0,len(flights)):print(i,':',flights[i])
它将打印如下列表:
0 : Flight at 2019-03-31 11:20:44 to 2019-03-31 11:40:48, 5775 messages, timestamps 486,454,570 to 486,455,853 1 : Flight at 2019-03-31 12:11:53 to 2019-03-31 12:48:18, 10501 messages, timestamps 486,458,099 to 486,460,433 2 : Flight at 2019-03-31 11:20:42 to 2019-03-31 11:20:42, 8 messages, timestamps 486,454,568 to 486,454,568
选择所需的航班并从中创建打印对象。例如,要使用航班1,请创建此单元格:
p=Plot(flights[1])
绘制一个属性
使用以下示例中的行绘制一个属性:
p.plot('asi').show()p.plot('asi','Airspeed').show()p.plot('cht').show()
第二个参数是可选的,用于标记y轴。“cht”和“egt”这两个属性是特殊的; 它们在图形上显示多条线,每个圆柱体一条。
绘制多个属性
在一个图上用直线绘制多个属性这些例子。 注意,属性列表由方括号包围。
p.plot(['asi','groundSpeed']).show()p.plot(['asi','groundSpeed'],['Airspeed','Ground Speed']).show()p.plot(['pAltitude','densityAltitude','oat']).show()
把它们放在一起
这里有几个例子,把所有的东西放在一个单元里。 请注意,在创建了p对象之后,您可以继续重用它。
frommgl_efis_plotterimport*config=Config()flights=create_flights('IEFIS.REC',config)p=Plot(flights[0])p.plot('asi').show()p.plot2(['asi','oilTemperature1']).show()p.plot2(['pAltitude','densityAltitude','oat']).show()
列出所有可用属性
您可以用这条线获得航班可用的所有属性的列表。
p.list_attributes()
将绘图保存到文件
通过将show()替换为save(FILENAME),可以将绘图保存到文件中,如下所示:
p.plot('vsi','Vertical Speed').save('verticalspeed.png')
将数据导出到CSV文件
您可以将任何一组属性导出到csv文件,其中的单元格如下:
p.flight.save_csv('flightdata.csv',['asi','vsi','densityAltitude','oat','rpm','manifoldPressure'])
高级用法
每个情节的X轴是从飞行开始的分钟。 通过添加^ {TT6}$选项,可以通过限制X轴到分钟范围来放大飞行的任何部分。 到plot()或plot2()。 下面是一个例子,放大从起飞后5分钟开始到起飞后10分钟结束的时间范围。p.plot('cht',xlim=(5,10)).show()
版权和麻省理工学院许可证
版权所有2019 Art Zemon。
特此免费授予获得本软件副本和相关文档文件(以下简称“软件”)的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售本软件副本的权利,并在符合以下条件的情况下,允许向其提供软件的人员这样做:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按“原样”提供,无任何明示或暗示的保证,包括但不限于o适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在诉讼或合同、侵权行为或其他情况下,由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。