import streamlit as st import pandas as pd import plotly.graph_objects as go import pandas as pd from datasets import load_dataset ds = load_dataset("Esmaeilkiani/moghayesecroplogging") df = pd.read_csv("hf://datasets/Esmaeilkiani/moghayesecroplogging/مقایسه سال 99 با 1403 daaset.csv") st.set_page_config(page_title="اداره زراعت و کنترل محصول", layout="wide") def show_dashboard(): st.title("داشبورد") uploaded_file = st.file_uploader("بارگذاری فایل CSV", type=["csv"]) if uploaded_file: data = pd.read_csv(uploaded_file) st.dataframe(data) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data, 'week', 'height')) def show_crop_growth_analysis(): st.title("تحلیل رشد محصول") uploaded_file = st.file_uploader("بارگذاری فایل CSV", type=["csv"]) if uploaded_file: data = pd.read_csv(uploaded_file) st.dataframe(data) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data, 'week', 'height')) def show_weather_data(): st.title("داده‌های هواشناسی") uploaded_file = st.file_uploader("بارگذاری فایل CSV", type=["csv"]) if uploaded_file: data = pd.read_csv(uploaded_file) st.dataframe(data) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data, 'week', 'height')) def show_crop_health_monitoring(): st.title("پایش سلامت محصول") uploaded_file = st.file_uploader("بارگذاری فایل CSV", type=["csv"]) if uploaded_file: data = pd.read_csv(uploaded_file) st.dataframe(data) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data, 'week', 'height')) def show_reports(): st.title("گزارش‌ها") uploaded_file = st.file_uploader("بارگذاری فایل CSV", type=["csv"]) if uploaded_file: data = pd.read_csv(uploaded_file) st.dataframe(data) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data, 'week', 'height')) def show_growth_comparison(): st.title("مقایسه رشد و ارتفاع 1399 با 1403") uploaded_file_1399 = st.file_uploader("بارگذاری فایل 1399 CSV", type=["csv"], key="1399") uploaded_file_1403 = st.file_uploader("بارگذاری فایل 1403 CSV", type=["csv"], key="1403") if uploaded_file_1399 and uploaded_file_1403: data_1399 = pd.read_csv(uploaded_file_1399) data_1403 = pd.read_csv(uploaded_file_1403) st.dataframe(data_1399) st.dataframe(data_1403) if st.button("تحلیل داده با نمودار"): st.plotly_chart(plot_3d_chart(data_1399, 'week', 'height', title="سال 1399")) st.plotly_chart(plot_3d_chart(data_1403, 'week', 'height', title="سال 1403")) st.plotly_chart(compare_growth(data_1399, data_1403, 'week', 'height')) def plot_3d_chart(data, x_column, y_column, title=""): fig = go.Figure(data=[go.Scatter3d(x=data[x_column], y=data[y_column], z=data[y_column], mode='markers+lines', marker=dict(size=5))]) fig.update_layout(title=title, scene=dict(xaxis_title=x_column, yaxis_title=y_column, zaxis_title='ارتفاع')) return fig def compare_growth(data1, data2, x_column, y_column): fig = go.Figure() fig.add_trace(go.Scatter3d(x=data1[x_column], y=data1[y_column], z=data1[y_column], mode='markers+lines', name="سال 1399", marker=dict(size=5))) fig.add_trace(go.Scatter3d(x=data2[x_column], y=data2[y_column], z=data2[y_column], mode='markers+lines', name="سال 1403", marker=dict(size=5))) fig.update_layout(title="مقایسه رشد و ارتفاع 1399 با 1403", scene=dict(xaxis_title=x_column, yaxis_title=y_column, zaxis_title='ارتفاع')) return fig st.sidebar.title("منو") menu = st.sidebar.selectbox("انتخاب کنید", ["داشبورد", "تحلیل رشد محصول", "داده‌های هواشناسی", "پایش سلامت محصول", "گزارش‌ها", "مقایسه رشد و ارتفاع 1399 با 1403"]) if menu == "داشبورد": show_dashboard() elif menu == "تحلیل رشد محصول": show_crop_growth_analysis() elif menu == "داده‌های هواشناسی": show_weather_data() elif menu == "پایش سلامت محصول": show_crop_health_monitoring() elif menu == "گزارش‌ها": show_reports() elif menu == "مقایسه رشد و ارتفاع 1399 با 1403": show_growth_comparison()