晶飞FLA5000光谱仪.FlaSpec格式解析批处理导出CSV文件

news/2024/11/24 9:46:58/

引言

首先说明下晶飞上位机软件存在的问题,实验所采用的FLA5000型号光谱仪,光谱波段从280-970nm,FWHM值为2.4nm。
1、上位机软件中的光谱数据复制功能基本是废的,最多只能到599.9nm,后面的数据全部消失。
2、上位机软件本身无法导出csv或其他格式的光谱数据文件,只能以FlaSpec格式进行保存,所以需要对该格式进行分析。
3、提供了光谱表功能,但是问题在于依然无法全部显示数据,只能到800nm左右,并且没有提供保存数据功能,只能手动复制。

PS:可能是我不会用,也可能是拿到的非最新版软件,晶飞上位机软件确实存在蛮多问题,或者说交互逻辑反直觉,但是光谱仪的一致性还不错,如下图所示。
在这里插入图片描述

数据格式分析

将FlaSpec文件以文本格式打开(这里使用Notepad++),根据官方软件中所查看到的数据进行多点匹配,可以得知,其文件中记录的FWHM值为1nm,该型号物理FWHM值为2.4nm,故推测其为插值得到。

如下图1所示,line5:起始波段;line6:截止波段;line7:最大峰值;line15:第一个波段幅值在这里插入图片描述
其他数据暂时不知用途,line1-4猜测应该为波长间隔、采样次数、积分时间、滑动平均次数等。
line10-14猜测应为触发模式是否开启等参数,如下图2所示。
在这里插入图片描述
在line700:为截止波段幅值
line701,会出现一个空白行,而后的数据又开始从起始幅值开始记录数据?
在这里插入图片描述

批处理代码

运行流程:首先读取路径下所有FlaSpec文件,并且提取指定范围的数据,复制到对应名称的csv文件,然后读取所有csv文件,使用pandas工具进行合并到一个csv文件中。

import os
import pandas as pddef extract_data(file_path):# 打开文件并读取内容with open(file_path, 'r') as f:lines = f.readlines()# 提取第15行到第700行的数据data_lines = lines[14:699]# 将数据保存到一个字符串中data_str = ''for line in data_lines:data_str += linereturn data_strdef main():# 指定要读取的文件夹路径,输入你的路径folder_path = 'XXX/PycharmProjects/Fla5000/folder'# 遍历文件夹中所有的.FlaSpec文件for filename in os.listdir(folder_path):if filename.endswith('.FlaSpec'):file_path = os.path.join(folder_path, filename)# 提取数据并保存到一个新的.csv文件中data_str = extract_data(file_path)csv_filename = os.path.splitext(filename)[0] + '.csv'csv_path = os.path.join(folder_path, csv_filename)with open(csv_path, 'w') as f:f.write(data_str)# 获取文件夹中所有csv文件的路径csv_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith('.csv')]# 合并csv文件df_list = []for csv_file in csv_files:df = pd.read_csv(csv_file, header=None)df_list.append(df)merged_df = pd.concat(df_list, axis=1)# 将合并后的数据保存为新的csv文件merged_df.to_csv(os.path.join(folder_path, 'merged_data.csv'), index=False, header=None)if __name__ == '__main__':main()

路径下的各类文件。
在这里插入图片描述

需要注意的是,如果安装pandas出现错误,可以使用使用代码[1]进行安装,在此表示感谢。

py -3 -m pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

结语

综上所述,FlaSpec文件格式较为简单,容易使用python等语言进行批量处理,在进行数据采集及后续的数据分析过程中,使用该格式文件只能说是曲线救国了,后续如果继续使用该光谱仪,会将批处理代码实现后放出。
初步构想为自动读取文件夹下所有flaspec文件,并根据数据格式进行解析,后写入到一个同csv文件中。

参考资料

[1] python安装pandas报错,version问题看这里!!!


http://www.ppmy.cn/news/73617.html

相关文章

MySQL—日志

文章目录 一、错误日志二、二进制日志2.1 介绍2.2 格式2.3 查看2.4 删除 三、查询日志四、慢查询日志 一、错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据…

Java-线程安全的四个经典案例和线程池

单例模式 有些对象,在一个程序中应该只有唯一 一个实例(光靠人保证不靠谱 借助语法来保证) 就可以使用单例模式 在单例模式下 对象的实例化被限制了 只能创建一个 多了的也创建不了 单例模式分为两种:饿汉模式和懒汉模式 饿汉模式…

防洪评价报告编制方法

新导则下防洪评价报告编制方法及洪水建模一:《防洪评价报告编制导则解读河道管理范围内建设项目编制导则》(SL/T808- 2021) 1.规范适用范围; 2.规范名词概念; 3.防洪评价计算类别及分析; 4.消除和减轻影…

离散数学_九章:关系(5)

🚩9.5 等价关系 1、等价关系(Equivalence Relations)等价关系等价的元素📘例1:模m同余 📘例2:字符串 📘例3:整除 2、等价类(Equivalence Classes&#xff09…

使用Visual Studio进行cuda编程配置环境四大坑(附解决方案)

写在前面,用于没有使用过Visual Studio进行cuda编程的同学看,以免在安装环境的时候踩到坑 第一坑:CUDA版本与NVIDIA显卡版本不匹配问题: 安装cuda版本坑,强烈建议看下自己的显卡支持什么版本的cuda,切记不要用最新版…

RocketMQ的安装讲解详细手册--------以及启动Broker启动找不到类问题

RocketMQ的安装 1.RocketMQ安装 1.1下载RocKetMQ 下载地址:https://rocketmq.apache.org/release-notes/2017/12/13/4.2.0 下载解压后 bin:可执行文件目录 confidence:配置文件目录 lib:依赖库,是一些jar包 1.1配置ROCKETMQ_HOME 解压…

合理利用Optional 来避免NPE

一、什么是Optional 在Java中什么异常最容易出现,那肯定是NullPointerException,空指针就像一个定时炸弹,总给我们带来些麻烦,在开发过程中都会碰到需要判断Null值以防止空指针的情况,以往的方式要么是抛异常&#xf…

Linux Audio (4) DAPM-1 Kcontrol

DAPM-1 Kcontrol 控制部件之kcontrolsnd_kcontrol_new 结构体如何定义snd_kcontrol_new?如何使用snd_kcontrol?添加kcontrol代码分析 课程:韦东山音频专题 内核:Kernel 3.5 但是我用的实例和课程不同,以防止编程记流水账 控制部件…