Analysiszaliai / app.py
Esmaeilkianii's picture
Update app.py
5cf160f verified
raw
history blame
4.5 kB
import streamlit as st
import pandas as pd
from datetime import datetime
import plotly.express as px
import plotly.graph_objects as go
from io import BytesIO
# Page configuration
st.set_page_config(page_title="مدیریت داده‌های مزرعه", layout="wide")
# Load data
@st.cache_data
def load_data():
try:
df = pd.read_csv('پایگاه داده.csv')
return df
except Exception as e:
st.error(f"Error loading data: {str(e)}")
return pd.DataFrame()
# Initialize session state
if 'data' not in st.session_state:
st.session_state.data = load_data()
# Main title
st.title("سیستم مدیریت داده‌های مزرعه")
# Create three tabs
tab1, tab2, tab3 = st.tabs(["اطلاعات پایه", "اطلاعات نیتروژن", "اطلاعات ایستگاه‌ها"])
with tab1:
# Basic Information Form
st.subheader("ورود اطلاعات پایه")
with st.form("basic_info_form"):
col1, col2, col3 = st.columns(3)
with col1:
farm_id = st.text_input("نماینده")
channel = st.text_input("کانال")
department = st.text_input("اداره")
with col2:
production = st.text_input("تولید")
area = st.number_input("مساحت داشت", 0.0)
sub_area = st.number_input("مساحت زیرمجموعه", 0.0)
with col3:
variety = st.text_input("واریته")
age = st.text_input("سن")
date = st.date_input("تاریخ برداشت")
submit_basic = st.form_submit_button("ثبت اطلاعات پایه")
if submit_basic:
st.success("اطلاعات پایه با موفقیت ثبت شد")
with tab2:
# Nitrogen Information Form
st.subheader("ورود اطلاعات نیتروژن")
with st.form("nitrogen_info_form"):
col1, col2 = st.columns(2)
with col1:
nitrogen_current = st.number_input("نیتروژن فعلی", 0.0)
nitrogen_std = st.number_input("نیتروژن استاندارد قبلی", 0.0)
nitrogen_prev = st.number_input("نیتروژن قبلی", 0.0)
with col2:
nitrogen_std_prev = st.number_input("نیتروژن استاندارد قبلی فعلی", 0.0)
moisture_current = st.number_input("رطوبت فعلی", 0.0)
moisture_std = st.number_input("رطوبت استاندارد قبلی", 0.0)
submit_nitrogen = st.form_submit_button("ثبت اطلاعات نیتروژن")
if submit_nitrogen:
st.success("اطلاعات نیتروژن با موفقیت ثبت شد")
with tab3:
# Station Information Form
st.subheader("ورود اطلاعات ایستگاه‌ها")
with st.form("station_info_form"):
col1, col2, col3 = st.columns(3)
with col1:
station1 = st.number_input("ایستگاه ۱", 0.0)
station2 = st.number_input("ایستگاه ۲", 0.0)
station3 = st.number_input("ایستگاه ۳", 0.0)
with col2:
station4 = st.number_input("ایستگاه ۴", 0.0)
station5 = st.number_input("ایستگاه ۵", 0.0)
height_current = st.number_input("ارتفاع هفته جاری", 0.0)
with col3:
height_prev = st.number_input("ارتفاع هفته گذشته", 0.0)
growth_current = st.number_input("رشد هفته جاری", 0.0)
growth_prev = st.number_input("رشد هفته گذشته", 0.0)
submit_station = st.form_submit_button("ثبت اطلاعات ایستگاه‌ها")
if submit_station:
st.success("اطلاعات ایستگاه‌ها با موفقیت ثبت شد")
# Display data table
st.header("نمایش داده‌ها")
st.dataframe(st.session_state.data)
# Export functionality
st.header("خروجی داده‌ها")
if st.button("دانلود داده‌ها"):
output = BytesIO()
st.session_state.data.to_excel(output, index=False)
output.seek(0)
st.download_button(
label="دانلود فایل اکسل",
data=output,
file_name=f"farm_data_export_{datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx",
mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)