基于Python的npTDMS库的TDMS文件的读取


npTDMS的安装

npTDMS可直接在终端中下载

pip install npTDMS

TDMS是什么?

TDMS(Technical Data Management Streaming)文件是NI主推的一种二进制记录文件,它兼顾了高速、易存取和方便等多种优势,能够在NI的各种数据分析或挖掘软件之间进行无缝交互,也能够提供一系列API函数供其它应用程序调用。

TDMS的逻辑结构有三层:第一层为文件(File),第二层为通道组(Channel Groups),最后是通道(Channels),每一个层次上都可以附加特定的属性(Properties)。

使用步骤

1.引入库

代码如下:

import matplotlib.pyplot as plt
from nptdms import TdmsFile
import numpy as np
import pandas as pd

2.创建TdmsFile对象,并使用open读取文件元数据:

TDMS文件需要一层一层读取,先读取文件,然后读取组名,之后用组名作为索引读取通道名,最后可以用通道名作为索引读取通道数据。
代码如下:

with TdmsFile.open(r'文件的路径') as tdms_file:
    for group in tdms_file.groups():      # TdmsFile可以按组名索引来访问TDMS文件中的组,使用groups()方法直接访问所有组        
        group_name = group.name      
        print(group_name)
    for channel in group.channels():      # TdmsGroup 可以通过通道名称来索引来访问这个组中的一个通道,使用 channels()方法直接访问所有通道        
        channel_name = channel.name  
        print(channel_name)

3、读取通道数据

channel = tdms_file[group_name][channel_name]  # 根据索引读取通道
all_channel_data = channel[:]                  # 将此通道中所有的数据作为numpy数组获取
num = np.array(all_channel_data)
df = pd.DataFrame(num)                         # 将numpy数组中的数据转换成DataFrame并输出
print(df[:][1:])
print(df.shape)                                # 维度查看

4、用Matplotlib将该数据进行可视化

part_channel_data = channel[1:100]           # 取部分数据进行分析,这里取的是1到100的数据
a = np.array(part_channel_data)              # 用数据大小作为y轴
x = np.arange(1, 100)                        # 定义x轴范围
plt.figure(figsize = (20, 8), dpi = 80)      # 设置界面大小
plt.plot(x, a, ‘k’)                          # 设置x,y轴和曲线的颜色,k为黑色    
plt.xlabel(‘intensity’)                      # 设置x标签
plt.xticks(x[::10])                          # 设置x轴每个下标的间隔
plt.title('name')                            # 设置标题名称
plt.show()                                   # 输出数据图像

总结

以上就是今天要讲的内容,本文仅仅简单介绍了用npTDMS读取TDMS文件,然后结合numpy和pandas对数据进行简单的处理。

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值