Esmaeilkianii commited on
Commit
1e831d3
1 Parent(s): 48ad1d8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +73 -50
app.py CHANGED
@@ -1,58 +1,81 @@
1
  import streamlit as st
2
- from PyPDF2 import PdfReader
3
- from transformers import MarianMTModel, MarianTokenizer
4
- import torch
5
-
6
- # مدل و توکنایزر برای ترجمه انگلیسی به فارسی
7
- model_name = "Helsinki-NLP/opus-mt-en-fa"
8
- tokenizer = MarianTokenizer.from_pretrained(model_name)
9
- model = MarianMTModel.from_pretrained(model_name)
10
-
11
- def translate_text_en_to_fa(text, summary=False, summary_length=100):
12
- if summary:
13
- # برای خلاصه کردن، ابتدا ترجمه را انجام می‌دهیم
14
- inputs = tokenizer(text, return_tensors="pt")
15
- outputs = model.generate(**inputs)
16
- translation = [tokenizer.decode(t, skip_special_tokens=True) for t in outputs][0]
17
- # سپس خلاصه می‌کنیم (در اینجا به سادگی primera 100 کاراکتر را برمی‌گردانیم)
18
- return translation[:summary_length] + "..."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  else:
20
- inputs = tokenizer(text, return_tensors="pt")
21
- outputs = model.generate(**inputs)
22
- return [tokenizer.decode(t, skip_special_tokens=True) for t in outputs][0]
23
 
24
- def process_pdf(file):
25
- pdf_reader = PdfReader(file)
26
- text = ''
27
- for page in range(len(pdf_reader.pages)):
28
- text += pdf_reader.pages[page].extract_text()
29
- return text
30
 
 
31
  def main():
32
- st.title("ترجمه مقالات و فایل‌های PDF انگلیسی به فارسی")
33
- choice = st.selectbox("گزینه ترجمه:", ["خلاصه ترجمه", "ترجمه کامل"])
34
- file_or_text = st.selectbox("انتخاب منبع:", ["فایل PDF", "متن"])
35
-
36
- if file_or_text == "فایل PDF":
37
- file = st.file_uploader("آپلود فایل PDF", type=['pdf'])
38
- if file:
39
- if choice == "خلاصه ترجمه":
40
- text = process_pdf(file)
41
- translation = translate_text_en_to_fa(text, summary=True)
42
- else:
43
- text = process_pdf(file)
44
- translation = translate_text_en_to_fa(text)
45
- st.write("ترجمه:")
46
- st.write(translation)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  else:
48
- text = st.text_area("متن انگلیسی خود را وارد کنید:", height=200)
49
- if text:
50
- if choice == "خلاصه ترجمه":
51
- translation = translate_text_en_to_fa(text, summary=True)
52
- else:
53
- translation = translate_text_en_to_fa(text)
54
- st.write("ترجمه:")
55
- st.write(translation)
56
 
57
  if __name__ == "__main__":
58
- main()
 
1
  import streamlit as st
2
+ import geemap
3
+ import pandas as pd
4
+ import ee
5
+ import folium
6
+ from streamlit_folium import st_folium
7
+
8
+ # تنظیمات احراز هویت Google Earth Engine
9
+ service_account = 'ee-esmaeilkiani1387@xxxxxxxxxx.iam.gserviceaccount.com'
10
+ credentials = ee.ServiceAccountCredentials(service_account, 'ee-esmaeilkiani1387-1b2c5e812a1d.json')
11
+ ee.Initialize(credentials)
12
+
13
+ # تابع برای دریافت NDVI یا NDMI از Sentinel-2
14
+ def get_ndvi_ndmi_map(lat, lon, index='NDVI'):
15
+ # محدوده منطقه مورد نظر
16
+ point = ee.Geometry.Point([lon, lat])
17
+ area = point.buffer(5000) # بافر به شعاع 5 کیلومتر
18
+
19
+ # لایه Sentinel-2
20
+ collection = ee.ImageCollection('COPERNICUS/S2').filterBounds(area).filterDate('2023-01-01', '2023-12-31').sort('CLOUDY_PIXEL_PERCENTAGE').first()
21
+
22
+ # شاخص NDVI یا NDMI
23
+ if index == 'NDVI':
24
+ ndvi = collection.normalizedDifference(['B8', 'B4']).rename('NDVI')
25
+ vis_params = {'min': 0, 'max': 1, 'palette': ['blue', 'white', 'green']}
26
+ else:
27
+ ndmi = collection.normalizedDifference(['B8', 'B11']).rename('NDMI')
28
+ vis_params = {'min': -1, 'max': 1, 'palette': ['brown', 'white', 'blue']}
29
+
30
+ # نقشه ایجاد کنید
31
+ m = geemap.Map(center=[lat, lon], zoom=13)
32
+ if index == 'NDVI':
33
+ m.addLayer(ndvi, vis_params, 'NDVI')
34
  else:
35
+ m.addLayer(ndmi, vis_params, 'NDMI')
36
+
37
+ return m
38
 
39
+ # بارگذاری اطلاعات مزرعه از CSV
40
+ def load_farm_data(csv_url):
41
+ df = pd.read_csv(csv_url)
42
+ return df
 
 
43
 
44
+ # برنامه اصلی
45
  def main():
46
+ st.title("نمایش نقشه شاخص NDVI یا NDMI با Sentinel-2")
47
+
48
+ # دریافت نام مزرعه از کاربر
49
+ st.sidebar.header("ورودی کاربر")
50
+ farm_name = st.sidebar.text_input("نام مزرعه را وارد کنید:")
51
+
52
+ # انتخاب شاخص
53
+ index_option = st.sidebar.selectbox("شاخص مورد نظر:", ['NDVI', 'NDMI'])
54
+
55
+ # بارگذاری داده‌های مزارع
56
+ csv_url = 'https://huggingface.co/spaces/Esmaeilkianii/Drghezzi/raw/main/Farm_Details_Export.csv'
57
+ farm_data = load_farm_data(csv_url)
58
+
59
+ # پیدا کردن اطلاعات مزرعه بر اساس نام
60
+ if farm_name:
61
+ selected_farm = farm_data[farm_data['Farm'] == farm_name]
62
+ if not selected_farm.empty:
63
+ lat = selected_farm['Latitude'].values[0]
64
+ lon = selected_farm['Longitude'].values[0]
65
+ age = selected_farm['Age'].values[0]
66
+ variety = selected_farm['Variety'].values[0]
67
+
68
+ # نمایش اطلاعات مزرعه
69
+ st.write(f"مزرعه: {farm_name}, سن: {age} سال، واریته: {variety}")
70
+
71
+ # دریافت و نمایش نقشه با شاخص انتخابی
72
+ st.write(f"نقشه شاخص {index_option} برای مزرعه {farm_name}:")
73
+ map_ndvi_ndmi = get_ndvi_ndmi_map(lat, lon, index=index_option)
74
+ st_folium(map_ndvi_ndmi, width=700, height=500)
75
+ else:
76
+ st.write("مزرعه مورد نظر یافت نشد.")
77
  else:
78
+ st.write("لطفاً نام مزرعه را وارد کنید.")
 
 
 
 
 
 
 
79
 
80
  if __name__ == "__main__":
81
+ main()