Spaces:
Runtime error
Runtime error
Download app.py from Esmaeilkiani/DashboardLLM: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/spaces/Esmaeilkiani/DashboardLLM/resolve/main/app.py
- Command line
-
hf download hf://spaces/Esmaeilkiani/DashboardLLM/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Esmaeilkiani/DashboardLLM/resolve/main/app.py
3.61 kB
| import streamlit as st | |
| import ee | |
| import geemap.foliumap as geemap | |
| import pandas as pd | |
| import datetime | |
| # اعتبار سنجی و اتصال به Google Earth Engine | |
| service_account = 'earth-engine-service-account@ee-esmaeilkiani1387.iam.gserviceaccount.com' | |
| credentials = ee.ServiceAccountCredentials(service_account, 'ee-esmaeilkiani1387-1b2c5e812a1d.json') | |
| ee.Initialize(credentials) | |
| # خواندن فایل CSV مزارع | |
| farms_data = pd.read_csv('Farm_Details_Export.csv') | |
| # تعریف ناحیه مورد مطالعه | |
| region = ee.Geometry.Polygon([[[48.681879, 31.417603], [48.721447, 31.413209], [48.724279, 31.420826], | |
| [48.726768, 31.427418], [48.728228, 31.435694], [48.736382, 31.42837], | |
| [48.739557, 31.435657], [48.742261, 31.441772], [48.752303, 31.452243], | |
| [48.75226, 31.459784], [48.759127, 31.473657], [48.766809, 31.472413], | |
| [48.773203, 31.491188], [48.77758, 31.534579], [48.785563, 31.540797], | |
| [48.792601, 31.59696], [48.694668, 31.60756], [48.691921, 31.603466], | |
| [48.697586, 31.534067], [48.69381, 31.507727], [48.685226, 31.468496], | |
| [48.681879, 31.417603]]]) | |
| # تابع برای دریافت تصویر NDVI | |
| def get_ndvi_image(start_date, end_date): | |
| s2 = ee.ImageCollection('COPERNICUS/S2').filterBounds(region).filterDate(start_date, end_date) | |
| ndvi = s2.map(lambda image: image.normalizedDifference(['B8', 'B4']).rename('NDVI')).median() | |
| ndvi_params = {'min': -0.2, 'max': 0.8, 'palette': ['#0000FF', '#8A2BE2', '#FFFF00', '#00FF00', '#008000', '#006400']} | |
| return ndvi, ndvi_params | |
| # ساخت برنامه Streamlit | |
| st.title("نقشه NDVI و NDMI برای مزارع شرکت دهخدا") | |
| # انتخاب بازه زمانی | |
| start_date = st.date_input("تاریخ شروع", datetime.date(2023, 1, 1)) | |
| end_date = st.date_input("تاریخ پایان", datetime.date(2023, 12, 31)) | |
| # انتخاب شاخص | |
| index_option = st.selectbox("شاخص مورد نظر را انتخاب کنید:", ["NDVI", "NDMI"]) | |
| # انتخاب مزرعه از فایل CSV | |
| farm_name = st.sidebar.selectbox("نام مزرعه را انتخاب کنید:", farms_data['farm_name'].unique()) | |
| # پیدا کردن مختصات مزرعه انتخاب شده | |
| selected_farm = farms_data[farms_data['farm_name'] == farm_name] | |
| latitude = selected_farm['latitude'].values[0] | |
| longitude = selected_farm['longitude'].values[0] | |
| # دکمه برای نمایش نقشه | |
| if st.button("نمایش نقشه"): | |
| # بسته به شاخص انتخاب شده، نقشه را بارگذاری کنید | |
| if index_option == "NDVI": | |
| index_image, vis_params = get_ndvi_image(start_date.isoformat(), end_date.isoformat()) | |
| else: | |
| st.error("شاخص انتخابشده پشتیبانی نمیشود") | |
| st.stop() | |
| # ایجاد نقشه با Geemap | |
| map_ = geemap.Map(center=[latitude, longitude], zoom=12) | |
| map_.addLayer(index_image, vis_params, index_option) | |
| # افزودن نوار رنگ به نقشه | |
| map_.add_colorbar(vis_params, label=index_option) | |
| # افزودن مزرعه به نقشه | |
| map_.add_marker([latitude, longitude], popup=f"نام: {farm_name}") | |
| # نمایش نقشه در Streamlit | |
| map_.to_streamlit() | |
| # ایجاد لینک دانلود تصویر | |
| image_url = index_image.getThumbURL(vis_params) | |
| st.markdown(f"[دانلود نقشه با کیفیت بالا]({image_url})") | |