Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -6,13 +6,13 @@ import requests
|
|
| 6 |
import json
|
| 7 |
from datetime import datetime
|
| 8 |
|
| 9 |
-
# تنظیمات
|
| 10 |
st.set_page_config(page_title="تجزیه و تحلیل سری زمانی", layout="wide")
|
| 11 |
|
| 12 |
# تابع برای خواندن دادهها
|
| 13 |
@st.cache_data
|
| 14 |
def load_data():
|
| 15 |
-
# اینجا میتوانید دادهها را از Hugging Face بارگ
|
| 16 |
data = pd.read_json("tableConvert.com_w440rj.json")
|
| 17 |
data['Date'] = pd.to_datetime(data['Date'] + ' ' + data['time'])
|
| 18 |
data.drop(columns=['time'], inplace=True)
|
|
@@ -23,24 +23,29 @@ def get_weather_forecast(api_key, lat, lon):
|
|
| 23 |
url = f"http://api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&appid={api_key}&units=metric"
|
| 24 |
response = requests.get(url)
|
| 25 |
data = response.json()
|
| 26 |
-
forecast =
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
-
# بارگ
|
| 33 |
data = load_data()
|
| 34 |
|
| 35 |
# صفحه اصلی
|
| 36 |
-
st.title("تجزیه و تحلیل سری زمانی
|
| 37 |
|
| 38 |
# نمایش دادهها به صورت جدول
|
| 39 |
st.subheader("دادهها")
|
| 40 |
st.write(data)
|
| 41 |
|
| 42 |
-
# فیلترها
|
| 43 |
-
st.sidebar.
|
| 44 |
start_date = st.sidebar.date_input("تاریخ شروع", data['Date'].min())
|
| 45 |
end_date = st.sidebar.date_input("تاریخ پایان", data['Date'].max())
|
| 46 |
filtered_data = data[(data['Date'] >= pd.to_datetime(start_date)) & (data['Date'] <= pd.to_datetime(end_date))]
|
|
@@ -49,35 +54,35 @@ filtered_data = data[(data['Date'] >= pd.to_datetime(start_date)) & (data['Date'
|
|
| 49 |
st.subheader("دادههای فیلتر شده")
|
| 50 |
st.write(filtered_data)
|
| 51 |
|
| 52 |
-
# نمودار خطی
|
| 53 |
-
st.subheader("نمودار خطی
|
| 54 |
fig = px.line(filtered_data, x='Date', y='T[°C]', title='تغییرات دما در طول زمان')
|
| 55 |
st.plotly_chart(fig)
|
| 56 |
|
| 57 |
-
# هیستوگرام
|
| 58 |
-
st.subheader("هیستوگرام
|
| 59 |
-
|
| 60 |
-
st.plotly_chart(
|
| 61 |
|
| 62 |
-
# تحلیل آماری
|
| 63 |
-
st.subheader("تحلیل آماری")
|
| 64 |
st.write(f"میانگین دما: {filtered_data['T[°C]'].mean():.2f} °C")
|
| 65 |
st.write(f"حداقل دما: {filtered_data['T[°C]'].min()} °C")
|
| 66 |
st.write(f"حداکثر دما: {filtered_data['T[°C]'].max()} °C")
|
| 67 |
st.write(f"انحراف معیار دما: {filtered_data['T[°C]'].std():.2f}")
|
| 68 |
|
| 69 |
# پیشبینی با استفاده از OpenWeatherMap API
|
| 70 |
-
st.subheader("پیشبینی
|
| 71 |
api_key = "ed47316a45379e2221a75f813229fb46"
|
| 72 |
lat = 31.534442
|
| 73 |
lon = 48.724416
|
| 74 |
-
|
| 75 |
-
st.write(
|
| 76 |
|
| 77 |
# نمودار پیشبینی
|
| 78 |
st.subheader("نمودار پیشبینی دما")
|
| 79 |
-
|
| 80 |
-
st.plotly_chart(
|
| 81 |
|
| 82 |
# ذخیره گزارش
|
| 83 |
st.subheader("ذخیره گزارش")
|
|
|
|
| 6 |
import json
|
| 7 |
from datetime import datetime
|
| 8 |
|
| 9 |
+
# تنظیمات اولیه
|
| 10 |
st.set_page_config(page_title="تجزیه و تحلیل سری زمانی", layout="wide")
|
| 11 |
|
| 12 |
# تابع برای خواندن دادهها
|
| 13 |
@st.cache_data
|
| 14 |
def load_data():
|
| 15 |
+
# اینجا میتوانید دادهها را از Hugging Face بارگذاری کنید
|
| 16 |
data = pd.read_json("tableConvert.com_w440rj.json")
|
| 17 |
data['Date'] = pd.to_datetime(data['Date'] + ' ' + data['time'])
|
| 18 |
data.drop(columns=['time'], inplace=True)
|
|
|
|
| 23 |
url = f"http://api.openweathermap.org/data/2.5/forecast?lat={lat}&lon={lon}&appid={api_key}&units=metric"
|
| 24 |
response = requests.get(url)
|
| 25 |
data = response.json()
|
| 26 |
+
forecast = []
|
| 27 |
+
for item in data['list']:
|
| 28 |
+
forecast.append({
|
| 29 |
+
'Date': datetime.fromtimestamp(item['dt']),
|
| 30 |
+
'Temperature': item['main']['temp'],
|
| 31 |
+
'Humidity': item['main']['humidity'],
|
| 32 |
+
'Wind Speed': item['wind']['speed'],
|
| 33 |
+
'Weather': item['weather'][0]['description']
|
| 34 |
+
})
|
| 35 |
+
return pd.DataFrame(forecast)
|
| 36 |
|
| 37 |
+
# بارگذاری دادهها
|
| 38 |
data = load_data()
|
| 39 |
|
| 40 |
# صفحه اصلی
|
| 41 |
+
st.title("تجزیه و تحلیل سری زمانی")
|
| 42 |
|
| 43 |
# نمایش دادهها به صورت جدول
|
| 44 |
st.subheader("دادهها")
|
| 45 |
st.write(data)
|
| 46 |
|
| 47 |
+
# فیلترها
|
| 48 |
+
st.sidebar.header("فیلترها")
|
| 49 |
start_date = st.sidebar.date_input("تاریخ شروع", data['Date'].min())
|
| 50 |
end_date = st.sidebar.date_input("تاریخ پایان", data['Date'].max())
|
| 51 |
filtered_data = data[(data['Date'] >= pd.to_datetime(start_date)) & (data['Date'] <= pd.to_datetime(end_date))]
|
|
|
|
| 54 |
st.subheader("دادههای فیلتر شده")
|
| 55 |
st.write(filtered_data)
|
| 56 |
|
| 57 |
+
# نمودار خطی
|
| 58 |
+
st.subheader("نمودار خطی دما در طول زمان")
|
| 59 |
fig = px.line(filtered_data, x='Date', y='T[°C]', title='تغییرات دما در طول زمان')
|
| 60 |
st.plotly_chart(fig)
|
| 61 |
|
| 62 |
+
# هیستوگرام
|
| 63 |
+
st.subheader("هیستوگرام دما")
|
| 64 |
+
fig = px.histogram(filtered_data, x='T[°C]', nbins=20, title='توزیع دما')
|
| 65 |
+
st.plotly_chart(fig)
|
| 66 |
|
| 67 |
+
# تجزیه و تحلیل آماری
|
| 68 |
+
st.subheader("تجزیه و تحلیل آماری")
|
| 69 |
st.write(f"میانگین دما: {filtered_data['T[°C]'].mean():.2f} °C")
|
| 70 |
st.write(f"حداقل دما: {filtered_data['T[°C]'].min()} °C")
|
| 71 |
st.write(f"حداکثر دما: {filtered_data['T[°C]'].max()} °C")
|
| 72 |
st.write(f"انحراف معیار دما: {filtered_data['T[°C]'].std():.2f}")
|
| 73 |
|
| 74 |
# پیشبینی با استفاده از OpenWeatherMap API
|
| 75 |
+
st.subheader("پیشبینی آب و هوا")
|
| 76 |
api_key = "ed47316a45379e2221a75f813229fb46"
|
| 77 |
lat = 31.534442
|
| 78 |
lon = 48.724416
|
| 79 |
+
forecast_data = get_weather_forecast(api_key, lat, lon)
|
| 80 |
+
st.write(forecast_data)
|
| 81 |
|
| 82 |
# نمودار پیشبینی
|
| 83 |
st.subheader("نمودار پیشبینی دما")
|
| 84 |
+
fig = px.line(forecast_data, x='Date', y='Temperature', title='پیشبینی دما برای 5 روز آینده')
|
| 85 |
+
st.plotly_chart(fig)
|
| 86 |
|
| 87 |
# ذخیره گزارش
|
| 88 |
st.subheader("ذخیره گزارش")
|