Upload 40 files
Browse files- .gitattributes +15 -0
- .streamlit/config.toml +3 -0
- app.py +120 -0
- data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-06-01] 01.06-01.07.csv +0 -0
- data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-08-32] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-11-37] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-17-03] 01.06-01.07.csv +3 -0
- data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-44-01] 01.06-01.07.csv +0 -0
- data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-46-35] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-19-11] 01.08-01.09.csv +0 -0
- data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-21-02] 01.09-01.10.csv +0 -0
- data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-19-05] 01.06-01.07.csv +0 -0
- data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-21-40] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/C1969/log(336802313)[26-03-2024_15-59-36] 01.06-01.07.csv +3 -0
- data/исходные данные от оператора/C1969/log(336802720)[26-03-2024_15-51-13] 01.05-01.06.csv +0 -0
- data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-06-23] 01.08-01.09.csv +3 -0
- data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-15-23] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_13-30-07] 01.07-01.08.csv +3 -0
- data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_14-09-43] 01.06-01.07.csv +0 -0
- data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-30-37] 01.10-01.11.csv +0 -0
- data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv +0 -0
- data/исходные данные от оператора/С1067/log(336802167)[25-03-2024_17-01-54] 01.07-01.08.csv +3 -0
- data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-22-07] 01.06-06.06.csv +3 -0
- data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-29-02] 06.06-18.06.csv +3 -0
- data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_10-29-13] 18.06-30.06.csv +3 -0
- data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-39-11] 01.08-01.09.csv +0 -0
- data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-41-08] 01.09-01.10.csv +3 -0
- data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-33-14] 01.05-01.06.csv +3 -0
- data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-47-56] 01.06-01.07.csv +3 -0
- data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_10-59-04] 01.07-01.08.csv +3 -0
- data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_11-45-54] 01.08-01.09.csv +3 -0
- data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-24-22] 01.07-01.08.csv +0 -0
- data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-26-50] 01.06-01.07.csv +0 -0
- data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-29-06] 01.05-01.06.csv +3 -0
- forecasting/README.md +6 -0
- forecasting/__pycache__/prediction_script.cpython-310.pyc +0 -0
- forecasting/colab_model_train.ipynb +0 -0
- forecasting/model.cbm +3 -0
- forecasting/predict.csv +0 -0
- forecasting/prediction_script.py +71 -0
- reqiurments.txt +5 -0
.gitattributes
CHANGED
@@ -33,3 +33,18 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/023T0569/log(336804727)\[26-03-2024_16-17-03\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
|
37 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/Р3106/log(336044815)\[26-03-2024_13-06-23\][[:space:]]01.08-01.09.csv filter=lfs diff=lfs merge=lfs -text
|
38 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С0790/log(336801558)\[26-03-2024_13-30-07\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
|
39 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[25-03-2024_17-01-54\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
|
40 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_09-22-07\][[:space:]]01.06-06.06.csv filter=lfs diff=lfs merge=lfs -text
|
41 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_09-29-02\][[:space:]]06.06-18.06.csv filter=lfs diff=lfs merge=lfs -text
|
42 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_10-29-13\][[:space:]]18.06-30.06.csv filter=lfs diff=lfs merge=lfs -text
|
43 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1178/log(336801334)\[25-03-2024_16-41-08\][[:space:]]01.09-01.10.csv filter=lfs diff=lfs merge=lfs -text
|
44 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2177/log(336802953)\[26-03-2024_16-33-14\][[:space:]]01.05-01.06.csv filter=lfs diff=lfs merge=lfs -text
|
45 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2177/log(336802953)\[26-03-2024_16-47-56\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
|
46 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2586/log(336801531)\[26-03-2024_10-59-04\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
|
47 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2586/log(336801531)\[26-03-2024_11-45-54\][[:space:]]01.08-01.09.csv filter=lfs diff=lfs merge=lfs -text
|
48 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2627[[:space:]]7226ом61/log(336802983)\[26-03-2024_16-29-06\][[:space:]]01.05-01.06.csv filter=lfs diff=lfs merge=lfs -text
|
49 |
+
data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/C1969/log(336802313)\[26-03-2024_15-59-36\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
|
50 |
+
forecasting/model.cbm filter=lfs diff=lfs merge=lfs -text
|
.streamlit/config.toml
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
[server]
|
2 |
+
runOnSave = false
|
3 |
+
maxUploadSize = 1000
|
app.py
ADDED
@@ -0,0 +1,120 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import datetime
|
2 |
+
from io import StringIO
|
3 |
+
from pathlib import Path
|
4 |
+
|
5 |
+
import pandas as pd
|
6 |
+
import streamlit as st
|
7 |
+
|
8 |
+
from forecasting import prediction_script
|
9 |
+
|
10 |
+
MOST_IMPORTANT_CONSTANT = 300
|
11 |
+
|
12 |
+
|
13 |
+
def predict_line_chart(dataframe: pd.DataFrame) -> None:
|
14 |
+
datetime_column = [_x for i, _x in enumerate(dataframe['datetime'].to_list())]
|
15 |
+
predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
|
16 |
+
|
17 |
+
if len(datetime_column) > MOST_IMPORTANT_CONSTANT:
|
18 |
+
datetime_column = [datetime_column[index] for index in
|
19 |
+
range(0, len(datetime_column), len(datetime_column) // MOST_IMPORTANT_CONSTANT)]
|
20 |
+
predict_column = [predict_column[index] for index in
|
21 |
+
range(0, len(predict_column), len(predict_column) // MOST_IMPORTANT_CONSTANT)]
|
22 |
+
|
23 |
+
st.line_chart(
|
24 |
+
{
|
25 |
+
'datetime': datetime_column,
|
26 |
+
'predict': predict_column,
|
27 |
+
}, y='predict'
|
28 |
+
)
|
29 |
+
|
30 |
+
st.set_page_config(page_title="Streamlit Wide Mode", layout="wide")
|
31 |
+
tractor_data_upload__tab, origin_tractor_data__tab = st.tabs(
|
32 |
+
["Загрузить данные трактора", "Валидация исходных данных тракторов от оператора", ])
|
33 |
+
|
34 |
+
with origin_tractor_data__tab:
|
35 |
+
directory_path = Path().joinpath(*['data', 'исходные данные от оператора'])
|
36 |
+
|
37 |
+
files_dict = {file_path.parent.name: file_path.name for file_path in directory_path.rglob("*") if
|
38 |
+
file_path.is_file()}
|
39 |
+
|
40 |
+
st.header("Система умной телеметрии трактора")
|
41 |
+
|
42 |
+
st.text('Для начала работы выберите трактор')
|
43 |
+
|
44 |
+
SELECT_TRACTOR_IDENTIFIER_SUGGEST = 'Выберите идентификатор'
|
45 |
+
SELECT_TRACTOR_DETAIL_SUGGEST = "Выберите деталь"
|
46 |
+
|
47 |
+
selected_tractor_id = st.selectbox("Выберите идентификатор трактора",
|
48 |
+
[SELECT_TRACTOR_IDENTIFIER_SUGGEST]
|
49 |
+
+ [f'{tractor_id}' for tractor_id in files_dict.keys()])
|
50 |
+
if selected_tractor_id != SELECT_TRACTOR_IDENTIFIER_SUGGEST:
|
51 |
+
if selected_tractor_id in files_dict:
|
52 |
+
st.success(f"Выбранный трактор: {selected_tractor_id}")
|
53 |
+
|
54 |
+
files = directory_path.joinpath(selected_tractor_id).rglob("*")
|
55 |
+
dataframes = [pd.read_csv(file, delimiter=';') for file in files]
|
56 |
+
dataframe = pd.concat(dataframes)
|
57 |
+
dataframe = prediction_script.predict(dataframe)
|
58 |
+
predict_line_chart(dataframe)
|
59 |
+
|
60 |
+
predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
|
61 |
+
|
62 |
+
if sum(predict_column) / len(predict_column) > 1.5:
|
63 |
+
st.error('Трактор сейчас определённо имеет проблемы')
|
64 |
+
|
65 |
+
detail_id = st.selectbox("Выберите деталь для замены", [
|
66 |
+
SELECT_TRACTOR_DETAIL_SUGGEST,
|
67 |
+
"ДВС",
|
68 |
+
"КПП",
|
69 |
+
"Гидравлика",
|
70 |
+
"Питание двигателя",
|
71 |
+
"Электросистема",
|
72 |
+
"Стояночный тормоз",
|
73 |
+
"Охлаждение",
|
74 |
+
"Термостат",
|
75 |
+
])
|
76 |
+
|
77 |
+
if detail_id != SELECT_TRACTOR_DETAIL_SUGGEST:
|
78 |
+
if detail_id:
|
79 |
+
st.success(f"{detail_id} заказана.\n"
|
80 |
+
f"Ждите")
|
81 |
+
else:
|
82 |
+
st.success(f"Выбранный трактор сейчас в нормальном состоянии")
|
83 |
+
|
84 |
+
else:
|
85 |
+
st.error("Идентификатор не найдет. ")
|
86 |
+
with tractor_data_upload__tab:
|
87 |
+
uploaded_file = st.file_uploader("Choose a file", )
|
88 |
+
if uploaded_file is not None:
|
89 |
+
bytes_data = uploaded_file.getvalue()
|
90 |
+
|
91 |
+
stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
|
92 |
+
dataframe = pd.read_csv(uploaded_file, delimiter=';')
|
93 |
+
|
94 |
+
dataframe = prediction_script.predict(dataframe)
|
95 |
+
|
96 |
+
predict_line_chart(dataframe)
|
97 |
+
|
98 |
+
predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
|
99 |
+
|
100 |
+
if sum(predict_column) / len(predict_column) > 1.5:
|
101 |
+
st.error('Трактор сейчас определённо имеет проблемы')
|
102 |
+
|
103 |
+
detail_id = st.selectbox("Выберите деталь для замены", [
|
104 |
+
SELECT_TRACTOR_DETAIL_SUGGEST,
|
105 |
+
"ДВС",
|
106 |
+
"КПП",
|
107 |
+
"Гидравлика",
|
108 |
+
"Питание двигателя",
|
109 |
+
"Электросистема",
|
110 |
+
"Стояночный тормоз",
|
111 |
+
"Охлаждение",
|
112 |
+
"Термостат",
|
113 |
+
])
|
114 |
+
|
115 |
+
if detail_id != SELECT_TRACTOR_DETAIL_SUGGEST:
|
116 |
+
if detail_id:
|
117 |
+
st.success(f"{detail_id} заказана.\n"
|
118 |
+
f"Ждите")
|
119 |
+
else:
|
120 |
+
st.success(f"Выбранный трактор сейчас в нормальном состоянии")
|
data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-06-01] 01.06-01.07.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-08-32] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-11-37] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-17-03] 01.06-01.07.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a15f589e57587d952603ebac39d911644e98c3d036c57c148f068ce9d7aee5f0
|
3 |
+
size 10486177
|
data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-44-01] 01.06-01.07.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-46-35] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-19-11] 01.08-01.09.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-21-02] 01.09-01.10.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-19-05] 01.06-01.07.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-21-40] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/C1969/log(336802313)[26-03-2024_15-59-36] 01.06-01.07.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1eb1810fcc53cebba01b7d73918a0be2e8b042ae29f1fdb0428ba263ce08be87
|
3 |
+
size 31401385
|
data/исходные данные от оператора/C1969/log(336802720)[26-03-2024_15-51-13] 01.05-01.06.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-06-23] 01.08-01.09.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c92ca39be6165457ffb198286c6100ab3bd91b5cf88ece7a5211d50831ae27c4
|
3 |
+
size 15450403
|
data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-15-23] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_13-30-07] 01.07-01.08.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:f2671c530e89ac7962bcbe6ff2d402fa6043fe1b4ead55926bdff65eb4956082
|
3 |
+
size 49849217
|
data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_14-09-43] 01.06-01.07.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-30-37] 01.10-01.11.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С1067/log(336802167)[25-03-2024_17-01-54] 01.07-01.08.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:229d3d52af9cd9b97b10603173b7f77ad2424f59ac40a3504ae096cf3819e9ac
|
3 |
+
size 48275328
|
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-22-07] 01.06-06.06.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:42a14d6540abaf9032d6bb8a66c9d7b3806cf2840181907e0ffd928075b9a817
|
3 |
+
size 14988548
|
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-29-02] 06.06-18.06.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:981e48a0f93f88a475dc68ffa29820384af547afce8ff0eb74efffa9ee22996c
|
3 |
+
size 50824644
|
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_10-29-13] 18.06-30.06.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ad3f945987dc403ced3fa032db9bddf741e3de261f52865deff0ac110ff022a6
|
3 |
+
size 54165574
|
data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-39-11] 01.08-01.09.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-41-08] 01.09-01.10.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c7e8fb62b2fd278a99d8021dd3e1741b87e410bd062975fa53d985accb576f58
|
3 |
+
size 24615603
|
data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-33-14] 01.05-01.06.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:fd4f4ff2312acb16a4bff3ea8889d442cf3a4c8aed0a66c903a1b07e55e0977c
|
3 |
+
size 24505901
|
data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-47-56] 01.06-01.07.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8a7a67dbe2ba875b8dfbf21804c4152bb51cf50383c825ac8bc2cef80755e354
|
3 |
+
size 22347280
|
data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_10-59-04] 01.07-01.08.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1d99b37818479900f00335c29237cb76477daff82091d5e980a6e054edb21001
|
3 |
+
size 51963905
|
data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_11-45-54] 01.08-01.09.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e76f94bfb84e1355bf80f6081d40ca60631134ede0acaa1dc4e5ef415f30ab08
|
3 |
+
size 91456950
|
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-24-22] 01.07-01.08.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-26-50] 01.06-01.07.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-29-06] 01.05-01.06.csv
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:3930e47b6283b102e2992f657f71a83cbdc75e3a5992a0cacac9820dc5ed0afd
|
3 |
+
size 13333833
|
forecasting/README.md
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Данная папка должна содержать:
|
2 |
+
|
3 |
+
- код обучения модели прогнозирования;
|
4 |
+
- сохраненный файл с весами обученной модели прогнозирования;
|
5 |
+
- описание проделанной работы, обоснование выбора модели, анализ производительности и качества предложенного решения, логика работы модели и другие комментарии от разработчиков;
|
6 |
+
- `.ipynb`-ноутбук, демонстрирующий запуск модели на тестовых данных с кодом выгрузки предсказаний для проверяющей системы. Если данные были изменены перед тем, как обучать модель, приложите файл обработанных данных или проведите изменения непосредственно в ноутбуке. У жюри должна быть возможность склонировать ваш репозиторий и без дополнительных усилий запустить предсказания, получив в результате работы ноутбука файл с ответами для проверки в проверяющей системе.
|
forecasting/__pycache__/prediction_script.cpython-310.pyc
ADDED
Binary file (3.85 kB). View file
|
|
forecasting/colab_model_train.ipynb
ADDED
The diff for this file is too large to render.
See raw diff
|
|
forecasting/model.cbm
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8079d39ec7b196aad7fbb5f6bf0314683e16143f0775446da8486557803722d5
|
3 |
+
size 104737304
|
forecasting/predict.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
forecasting/prediction_script.py
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
from catboost import CatBoostClassifier
|
4 |
+
from pathlib import Path
|
5 |
+
|
6 |
+
|
7 |
+
# PATH = 'data\исходные данные от оператора\С0873\log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv'
|
8 |
+
def predict(dataframe):
|
9 |
+
dataframe = dataframe.replace(r'^\s*-', np.nan, regex=True)
|
10 |
+
|
11 |
+
dataframe.reset_index(drop=True, inplace=True)
|
12 |
+
|
13 |
+
dataframe.drop_duplicates(inplace=True)
|
14 |
+
|
15 |
+
data_time = dataframe['Дата и время']
|
16 |
+
|
17 |
+
dataframe.drop(columns=['Дата и время', 'iButton2', 'Нагрузка на двигатель, %', 'Крутящий момент (spn513), Нм',
|
18 |
+
'Положение рейки ТНВД (spn51), %', 'Расход топлива (spn183), л/ч',
|
19 |
+
'ДВС. Температура наддувочного воздуха, °С',
|
20 |
+
'Давление наддувочного воздуха двигателя (spn106), кПа', 'Текущая передача (spn523)',
|
21 |
+
'Температура масла гидравлики (spn5536), С', 'Педаль слива (spn598)'], inplace=True)
|
22 |
+
|
23 |
+
dataframe.drop(['Нейтраль КПП (spn3843)', 'Стояночный тормоз (spn3842)',
|
24 |
+
'Аварийная температура охлаждающей жидкости (spn3841)', 'Засоренность воздушного фильтра (spn3840)',
|
25 |
+
'Засоренность фильтра КПП (spn3847)', 'Аварийное давление масла ДВС (spn3846)',
|
26 |
+
'Засоренность фильтра ДВС (spn3845)',
|
27 |
+
'Засоренность фильтра рулевого управления (spn3844)',
|
28 |
+
'Засоренность фильтра навесного оборудования (spn3851)',
|
29 |
+
'Недопустимый уровень масла в гидробаке (spn3850)',
|
30 |
+
'Аварийная температура масла в гидросистеме (spn3849)',
|
31 |
+
'Аварийное давление в I контуре тормозной системы (spn3848)',
|
32 |
+
'Аварийное давление в II контуре тормозной системы (spn3855)',
|
33 |
+
'Зарядка АКБ (spn3854)', 'Отопитель (spn3853)',
|
34 |
+
'Выход блока управления двигателем (spn3852)',
|
35 |
+
'Включение тормозков (spn3859)', 'Засоренность фильтра слива (spn3858)',
|
36 |
+
'Аварийное давление масла КПП (spn3857)',
|
37 |
+
'Аварийная температура масла ДВС(spn3856)',
|
38 |
+
'Неисправность тормозной системы (spn3863)', 'Термостарт (spn3862)',
|
39 |
+
'Разрешение запуска двигателя (spn3861)', 'Низкий уровень ОЖ (spn3860)',
|
40 |
+
'Аварийная температура масла ГТР (spn3867)',
|
41 |
+
'Необходимость сервисного обслуживания (spn3866)',
|
42 |
+
'Подогрев топливного фильтра (spn3865)', 'Вода в топливе (spn3864)',
|
43 |
+
'Холодный старт (spn3871)'], axis=1, inplace=True)
|
44 |
+
|
45 |
+
dataframe = dataframe.astype(str)
|
46 |
+
|
47 |
+
dataframe["Сост.пед.сцепл."] = dataframe["Сост.пед.сцепл."].astype(bool)
|
48 |
+
|
49 |
+
dataframe['Обор.двиг.,об/мин'] = dataframe['Обор.двиг.,об/мин'].str.replace(',', '.').astype(float)
|
50 |
+
|
51 |
+
dataframe['Значение счетчика моточасов, час:мин'] = dataframe['Значение счетчика моточасов, час:мин'].str.replace(
|
52 |
+
':', '').astype(float)
|
53 |
+
|
54 |
+
dataframe['Сост.пед.сцепл.'] = dataframe['Сост.пед.сцепл.'].replace(',', '.').astype(float)
|
55 |
+
dataframe['Сост.пед.сцепл.'] = dataframe['Сост.пед.сцепл.'].astype(str)
|
56 |
+
|
57 |
+
dataframe['Полож.пед.акселер.,%'] = dataframe['Полож.пед.акселер.,%'].str.replace(',', '.').astype(float)
|
58 |
+
|
59 |
+
dataframe['Темп.масла двиг.,°С'] = dataframe['Темп.масла двиг.,°С'].str.replace(',', '.').astype(float)
|
60 |
+
|
61 |
+
dataframe['КПП. Температура масла'] = dataframe['КПП. Температура масла'].astype(float)
|
62 |
+
|
63 |
+
model = CatBoostClassifier()
|
64 |
+
|
65 |
+
model.load_model(Path().joinpath(*['forecasting', 'model.cbm']))
|
66 |
+
|
67 |
+
dataframe['predict'] = model.predict(dataframe)
|
68 |
+
|
69 |
+
dataframe['datetime'] = data_time
|
70 |
+
|
71 |
+
return dataframe
|
reqiurments.txt
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
streamlit
|
2 |
+
pandas
|
3 |
+
numpy
|
4 |
+
|
5 |
+
catboost
|