aryn25 commited on
Commit
b9693c8
·
verified ·
1 Parent(s): b1b287a

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -0
app.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # app.py
2
+ import pandas as pd
3
+ import numpy as np
4
+ from datetime import datetime, timedelta
5
+ from prophet import Prophet
6
+ import streamlit as st
7
+ import matplotlib.pyplot as plt
8
+
9
+ # Simulate factory sensor data
10
+ def simulate_factory_data(days=30, freq='H'):
11
+ date_rng = pd.date_range(end=datetime.now(), periods=24*days, freq=freq)
12
+ df = pd.DataFrame(date_rng, columns=['ds'])
13
+ df['temperature'] = np.random.normal(loc=70, scale=5, size=(len(date_rng)))
14
+ df['vibration'] = np.random.normal(loc=20, scale=3, size=(len(date_rng)))
15
+ df['power_usage'] = np.random.normal(loc=120, scale=10, size=(len(date_rng)))
16
+ return df
17
+
18
+ # Forecast temperature using Prophet
19
+ def forecast_temperature(df):
20
+ model = Prophet()
21
+ df_temp = df[['ds', 'temperature']].rename(columns={"temperature": "y"})
22
+ model.fit(df_temp)
23
+ future = model.make_future_dataframe(periods=48, freq='H')
24
+ forecast = model.predict(future)
25
+ return forecast
26
+
27
+ # Streamlit UI
28
+ st.title("🧠 Smart Factory AI Dashboard")
29
+ st.markdown("Forecasting machine temperature to predict maintenance needs.")
30
+
31
+ df = simulate_factory_data()
32
+ forecast = forecast_temperature(df)
33
+
34
+ # Plot forecast
35
+ st.subheader("📈 Machine Temperature Forecast (Next 48 hours)")
36
+ fig, ax = plt.subplots()
37
+ ax.plot(df['ds'], df['temperature'], label='Actual')
38
+ ax.plot(forecast['ds'], forecast['yhat'], label='Forecast')
39
+ ax.fill_between(forecast['ds'], forecast['yhat_lower'], forecast['yhat_upper'], alpha=0.2, label='Confidence Interval')
40
+ ax.set_xlabel("Time")
41
+ ax.set_ylabel("Temperature (°C)")
42
+ ax.legend()
43
+ st.pyplot(fig)