ProcessDB实时 时序数据库——监测管道泄露模型场景_管道泄漏数据集(1)

管道参数点位

pointNameList = [
‘D1.PIPELINE.PRESSURE’, ‘D1.PIPELINE.TEMPERATURE’,
‘D1.PIPELINE.OPEN’, ‘D1.PIPELINE.FLOW’,
‘D1.PIPELINE.TRAIN’
]

连接ProcessDB实时数据库

connectName = ‘127.0.0.1’
port = 8301
processdbDriver.connect(connectName, port)

登录

userName = ‘root’
password = ‘root’
wErrCode = processdbDriver.login(userName, password)

登录成功

if wErrCode != 0:
print('login failed. errorCode: ', wErrCode)
else:
start_time = ‘2023-05-15 20:00:00’
end_time = ‘2023-05-15 20:59:59’
filterLow = 0
filterHigh = 0
fillValue = 0
fillValueType = 1
step = 1
dnd2 = np.zeros((3600, len(pointNameList)-1))
dnd1 = np.empty(3600)

# 点名查询历史时序数据
for m in range(len(pointNameList)):
    count, errCode, resultSet = processdbDriver.query_sample_his_data_by_pointName(
        start_time, end_time, pointNameList[m], step, 0, 0, filterLow, filterHigh, fillValue, 0, 0, 0, 0, fillValueType)
    if errCode == 0:
        if count != 0 and count != 'null':
            for i in range(count):
                historyData = processdbDriver.get_sample_his_data(
                    i, resultSet)
                if m == len(pointNameList)-1:
                    # 最后一个点位作为训练的参考结果
                    dnd1[i] = str(historyData.nValue)
                else:
                    dnd2[i, m] = historyData.nValue
        else:
            print('pointName:', pointNameList[m],
                  ',', 'no sampling history data.')
    else:
        print('query_sample_his_data_by_pointName failed, errorCode: ', errCode)

数据库登出

outCode = processdbDriver.logout()

数据赋值

x = dnd2
y = dnd1

划分训练集和测试集

x_train, x_test, y_train, y_test = train_test_split(
x, y, test_size=0.2, random_state=123)

模型训练

clf = AdaBoostClassifier(random_state=123)
clf.fit(x_train, y_train)

模型下载

joblib.dump(clf, ‘train.model’)


## 四、创建报警点位,接收模型评估结果


![](https://img-blog.csdnimg.cn/b012485f5b904c29b022f29dce6d5f4f.png)


## 五、读取泄露模型,对当前管道泄露状态进行评估



from sklearn.metrics import accuracy_score
from sklearn.ensemble import AdaBoostClassifier
import joblib
from sklearn.model_selection import train_test_split
import pandas as pd
import numpy as np
import ProcessDBDriver as processdbDriver
from sys import argv
waclf = joblib.load(‘train.model’)

查询模型预测的所需数据

pointNameList = [
‘D1.PIPELINE.PRESSURE’, ‘D1.PIPELINE.TEMPERATURE’,
‘D1.PIPELINE.OPEN’, ‘D1.PIPELINE.FLOW’
]

连接实时数据库

connectName = ‘127.0.0.1’
port = 8301
processdbDriver.connect(connectName, port)

登录

userName = ‘root’
password = ‘root’
wErrCode = processdbDriver.login(userName, password)

登录成功

if wErrCode != 0:
print('login failed. errorCode: ', wErrCode)
else:
dnd2 = []
dnd1 = []
# 点名查询实时数据
for i in range(len(pointNameList)):
count, errCode, resultSet = processdbDriver.query_realTime_data_by_pointName(
pointNameList[i])
if errCode == 0:
if count != 0 and count != ‘null’:
dnd1.append(str(resultSet.getValue()))
else:
print(‘pointName:’, pointNameList[i], ‘,’, ‘No Realtime data’)
else:
print('query_realTime_data_by_pointName failed.errorCode: ', errCode)
dnd2.append(dnd1)

数据库登出

outCode = processdbDriver.logout()

模型预测与评估

y_pre = waclf.predict(dnd2)

模型评估

a = pd.DataFrame()
a[‘预测值’] = list(y_pre)
quality = 0x1100
for i, row in a.itertuples():
# 把结果返回给实时数据库
errCode = processdbDriver.insert_real_time_data_by_name(
‘D1.PIPELINE.PREDICT’, quality, row)
if errCode == 0:
print(‘insert_realtime_data succeed!’)
else:
print(‘insert_realtime_data failed, errorCode:’, errCode)


## 五、在ProcessDB数据库中,查看管道泄露报警


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/a24db4921bf5951d4e1cc2312c040289.png)

![img](https://img-blog.csdnimg.cn/img_convert/efba7c13dc6451caa3e590299a9417c9.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/86e841878138b00d1a1461d5200a1152.png)

 **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

![img](https://img-blog.csdnimg.cn/img_convert/5892f667d3eb6e19c4ecb3d5a284a66b.png)

![img](https://img-blog.csdnimg.cn/img_convert/03fa8927bf162e7e21b424415e20fbeb.png)

 

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)**

<img src="https://img-community.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

y.csdnimg.cn/images/73bb5de17851459088c6af944156ee24.jpg" alt="img" style="zoom: 67%;" />



# 最后

**资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~**

**你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!**

**[更多资料点击此处获qu!!](https://bbs.csdn.net/topics/618376385)**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值