pyqt5实现振动波形数据标注工具
2023-12-17 12:32:37
pyqt5实现振动波形数据标注工具
1、效果图
2、实现功能
1、数据库连接
2、数据筛选
3、波形图展示、频谱图展示
4、特征展示:时域、频域
5、数据标注与添加
6、模型训练与分类识别
3、部分核心代码
3.1、连接数据库
# -*- coding: utf-8 -*-
"""
@contact: 微信 1257309054
@file: mark_main.py
@time: 2023/12/16 20:14
@author: LDC
"""
def btn_link_clicked(self):
# 连接数据库
self.is_link = True
try:
self.source_cur.close()
self.source_con.close()
self.target_cur.close()
self.target_con.close()
except:
pass
try:
self.source_con = pymysql.connect(
host='127.0.0.1', # 数据库所在地址URL
user='root', # 用户名
password=self.source_password_edit.text(), # 密码
database=self.source_database_edit.text(), # 源数据库名称
port=3306, # 端口号
charset='utf8'
)
# 拿到查询游标
self.source_cur = self.source_con.cursor()
except Exception as e:
self.feature_text.setText('源数据库连接错误:{}'.format(e))
return False
try:
self.target_con = pymysql.connect(
host='127.0.0.1', # 数据库所在地址URL
user='root', # 用户名
password=self.target_password_edit.text(), # 密码
database=self.target_database_edit.text(), # 目标数据库名称
port=3306, # 端口号
charset='utf8'
)
# 拿到查询游标
self.target_cur = self.target_con.cursor()
except Exception as e:
self.feature_text.setText('目标数据库连接错误:{}'.format(e))
return False
self.btn_link.setText('已连接')
# 获取目标数据库最大表记录
sql = 'SELECT MAX(ID) AS lastRecordId FROM alert_log'
self.target_cur.execute(sql)
self.target_alert_log_id = self.target_cur.fetchone()
if self.target_alert_log_id[0]:
self.target_alert_log_id = self.target_alert_log_id[0] + 1
else:
self.target_alert_log_id = 1
self.target_alert_log_id_edit.setText(str(self.target_alert_log_id))
self.feature_text.setText('源数据库、目标数据库连接成功。表最大记录是:{}'.format(self.target_alert_log_id))
3.2、添加到数据库:
"""
@contact: 微信 1257309054
@file: mark_main.py
@time: 2023/12/16 20:14
@author: LDC
"""
def btn_add_clicked(self):
# 添加数据至目标数据库
try:
sql = """select * from alert_log where id={}""".format(self.source_alert_log_ids[self.source_alert_log_ids_index])
self.source_cur.execute(sql)
desc = self.source_cur.description # 获取字段的描述,默认获取数据库字段名称,从新定义时经过AS关键重新命名便可
row = self.source_cur.fetchone()
data_dict = dict(zip([col[0] for col in desc], row)) # 一行数据列表表达式把数据组装起来
# rows = self.source_cur.fetchall() # 获取多行数据
# datas_dict = [dict(zip([col[0] for col in desc], row)) for row in self.source_cur.fetchall()] # 多行数据列表表达式把据组装起来
data_dict['id'] = self.target_alert_log_id # 修改id、type_label值
data_dict['type_label'] = self.type_edit.text()
clos, value = zip(*data_dict.items()) # 转成两个元组,clos是所有字段名,value是对应字段的值
# 转成sql,其中%s对应的变量会在execute函数执行时自动匹配上value元组里面的值
sql = """INSERT INTO `alert_log` (%s) VALUES (%s)""" % (','.join(clos),','.join(['%s'] * len(value)))
self.target_cur.execute(sql, value)
self.target_con.commit()
self.feature_text.setText('添加成功')
except Exception as e:
self.feature_text.setText('添加失败:{}'.format(e))
文章来源:https://blog.csdn.net/lm_is_dc/article/details/135042791
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!