水质预测

doushuo f0f4e930da 'change' 1 week ago
.idea f0f4e930da 'change' 1 week ago
__pycache__ f0f4e930da 'change' 1 week ago
Dockerfile a2e2c78ee0 'start' 1 week ago
Flask_water_server.py a2e2c78ee0 'start' 1 week ago
PGDB_Read.py a2e2c78ee0 'start' 1 week ago
README.md f0f4e930da 'change' 1 week ago
cod_20240910.pk a2e2c78ee0 'start' 1 week ago
config.ini a2e2c78ee0 'start' 1 week ago
db_params.json a2e2c78ee0 'start' 1 week ago
getData.py a2e2c78ee0 'start' 1 week ago
quality_server.py f0f4e930da 'change' 1 week ago
requirements.txt a2e2c78ee0 'start' 1 week ago
startup_request.py a2e2c78ee0 'start' 1 week ago
test_command a2e2c78ee0 'start' 1 week ago
tn_20240910.pk a2e2c78ee0 'start' 1 week ago
water_quality.log f0f4e930da 'change' 1 week ago
writeDataToCurrentLibrary.py f0f4e930da 'change' 1 week ago
writeDataToRealtimeData.py f0f4e930da 'change' 1 week ago
运行及挂载文件.txt f0f4e930da 'change' 1 week ago

README.md

flask_water_quality

水质预测

水质预测接口介绍

1、URL:http://127.0.0.1:8087/water_quality
2、method:post
3、Content-Type: application/json
4、body
{
    "lfgawqyq_plc3_Tag17": 11,        
    "lfgawqyq_plc3_Tag22": 8.2,   
    "lfgawqyq_plc3_Tag20": 9,
    "lfgawqyq_plc10_Tag45": 9,
    "lfgawqyq_plc10_Tag43": 9,
    "lfgawqyq_plc10_Tag50": 9,
    "lfgawqyq_plc10_Tag52": 9,
    "lfgawqyq_plc10_Tag51": 9,
    "lfgawqyq_plc10_Tag53": 9
}
5、返回型
[药量1, 药量2, 药量3, 药量4, 预测值1,预测值2]   对应如下顺序:
n1_dose=lfgawqyq_plc11_Tag23
s1_dose=lfgawqyq_plc11_Tag124
n2_dose=lfgawqyq_plc11_Tag25
s2_dose=lfgawqyq_plc11_Tag122
out_cod_predict=lfgawqyq_xn_cscod
out_tn_predict=lfgawqyq_xn_cstn
返回值:
     [40.234, 40.264, 3.0, 40.264, 4.689, 10.503]

数据库

db_params.json 数据库 默认使用test
docker修改需要运行时挂载文件

Flask_water_server.py

     nm_values = (
        'lfgawqyq_plc3_Tag17',
        'lfgawqyq_plc3_Tag22',
        'lfgawqyq_plc3_Tag20',
        'lfgawqyq_plc10_Tag45',
        'lfgawqyq_plc10_Tag43',
        'lfgawqyq_plc10_Tag52',
        'lfgawqyq_plc10_Tag50',
        'lfgawqyq_plc10_Tag51',
        'lfgawqyq_plc10_Tag53',
    )
从数据库读取这些字段的值,发给水质预测接口,得到返回值
     [40.234, 40.264, 3.0, 40.264, 4.689, 10.503]
顺序:
write_data_list = [
    'lfgawqyq_plc11_Tag23',
    'lfgawqyq_plc11_Tag124',
    'lfgawqyq_plc11_Tag25',
    'lfgawqyq_plc11_Tag122',
    'lfgawqyq_xn_cscod',
    'lfgawqyq_xn_cstn',
]
使用字典推导式将标签和值对应起来
data_mapping = {tag: value for tag, value in zip(write_data_list, result)}



http://localhost:8087/update_water_quality
GET 访问,返回预测值
    {
        "lfgawqyq_plc11_Tag23": 40.234,
        "lfgawqyq_plc11_Tag124": 40.264,
        "lfgawqyq_plc11_Tag25": 3.0,
        "lfgawqyq_plc11_Tag122": 40.264,
        "lfgawqyq_xn_cscod": 4.689,
        "lfgawqyq_xn_cstn": 10.503
    }

写入数据库 writeDataToRealtimeData.py

upsert_realtime_data(cursor, data_mapping)
每次预测结果写入实时数据表以及当日数据表(xsinsert{年月日} xsinsert20240912)
    实时数据:新结果更新到数据
    当日数据表:新结果插入到数据表,加ts时间戳及createtime等 ...