Python如何解析tdms文件并通过echarts生成对应波形

该代码示例首先使用nptdms库解析TDMS文件,将数据转化为DataFrame格式,然后利用pyecharts库生成线图进行数据可视化。主要涉及读取TDMS文件的特定通道数据,以及通过group和plotData创建图表。
摘要由CSDN通过智能技术生成

首先将tdms文件解析成dataframe格式数据
创建analysisTdms.py文件

from nptdms import TdmsFile
import numpy as np
import pandas as pd
import operator  
from functools import reduce 

# 读取文件信息,获取TDMS文件中的组和组内的通道
def summary(tdms_file):
  for group in tdms_file.groups():      # TdmsFile可以按组名索引来访问TDMS文件中的组,使用groups()方法直接访问所有组        
    group_name = group.name      
    for channel in group.channels():      # TdmsGroup 可以通过通道名称来索引来访问这个组中的一个通道,使用 channels()方法直接访问所有通道        
      channel_name = channel.name  
      print('{} -> {}'.format(group_name,channel_name))

# 读取指定通道数据
def readData(tdms_file, group_name, channel_name):
  channel = tdms_file[group_name][channel_name]  # 根据索引读取通道
  all_channel_data = channel[:]                  # 将此通道中所有的数据作为numpy数组获取
  num = np.array(all_channel_data)
  df = pd.DataFrame(num)                         # 将numpy数组中的数据转换成DataFrame并输出
  # return  np.array(df).flatten().tolist()
  return df



if __name__ == '__main__':
  with TdmsFile.open('data.tdms') as tdms_file:
    summary(tdms_file)
    df = readData(tdms_file, 'group', 'plotData')
    print(df)

调用analysisTdms文件方法并通过pycharts生成echarts option

from pyecharts import options as opts
from pyecharts.charts import Line
from nptdms import TdmsFile
from analysisTdms import summary, readData

def get_chart():
    # 使用pyecharts生成图表
    with TdmsFile.open('D:\\365\\demo-python-tdms\\data.tdms') as tdms_file:
        summary(tdms_file)
        df = readData(tdms_file, 'group', 'plotData')
    with TdmsFile.open('D:\\365\\demo-python-tdms\\192.168.1.128.tdms') as tdms_file:
        summary(tdms_file)
        ef = readData(tdms_file, 'CH1Data', 'plotData')
    print(ef)
    c = (
        Line()
        .add_xaxis(df.index.tolist())
        .add_yaxis("sales", df.values.tolist(),is_symbol_show=False)
        .add_yaxis("price", ef.values.tolist(),is_symbol_show=False) 
        .set_global_opts(
            xaxis_opts=opts.AxisOpts(type_="value", is_scale=True, split_number=10),
            yaxis_opts=opts.AxisOpts(is_scale=True, split_number=10),
            tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="line")
        )
    )
    # 将图表数据传递给前端页面
    chart_data = c.dump_options_with_quotes()
    with open('output.txt', 'w') as f:
      f.write(chart_data)

if __name__ == '__main__':
    get_chart()

最终将获取的echarts option引入echarts文件中,就可获取对应的tdms图像
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮炭烤策划

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值