Spaces:
Sleeping
Sleeping
File size: 4,500 Bytes
1075a41 a3a8670 e6bdc5a 37f36df 5cf160f 1075a41 5cf160f e6bdc5a 5cf160f 37f36df 5cf160f 37f36df 5cf160f 37f36df 5cf160f 37f36df 5cf160f fc53fed 5cf160f 37f36df 5cf160f 37f36df 5cf160f 37f36df 5cf160f 37f36df 5cf160f 37f36df 5cf160f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
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"
) |