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对数据进行简单的处理。