Esmaeilkianii commited on
Commit
227ec11
·
verified ·
1 Parent(s): 7e3ff61

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -7
app.py CHANGED
@@ -68,18 +68,18 @@ def load_farm_data():
68
  return None
69
 
70
  @st.cache_data
71
- def get_safe_index_value(image, index_type, band_selection, farm_geometry):
72
  """محاسبه ایمن شاخص‌های گیاهی"""
73
- if image is None:
74
  return None
75
  try:
76
  if index_type == "MSAVI":
77
- index_image = image.expression(
78
  "(2 * NIR + 1 - sqrt((2 * NIR + 1) ** 2 - 8 * (NIR - RED))) / 2",
79
- {"NIR": image.select("B8"), "RED": image.select("B4")}
80
  ).rename("MSAVI")
81
  else:
82
- index_image = image.normalizedDifference(band_selection[index_type]).rename(index_type)
83
 
84
  mean_value = index_image.reduceRegion(
85
  reducer=ee.Reducer.mean(),
@@ -89,7 +89,7 @@ def get_safe_index_value(image, index_type, band_selection, farm_geometry):
89
 
90
  return mean_value if mean_value is not None else 0
91
  except Exception as e:
92
- st.error(f"خطا در محاسبه شاخص {index_type}: {str(e)}")
93
  return 0
94
 
95
  def calculate_lai(ndvi):
@@ -284,7 +284,7 @@ def main():
284
  if s2_collection.size().getInfo() > 0:
285
  s2 = s2_collection.first()
286
  for index in band_selection.keys():
287
- value = get_safe_index_value(s2, index, band_selection, farm_geometry)
288
  index_values[index].append(value)
289
  else:
290
  for index in band_selection.keys():
 
68
  return None
69
 
70
  @st.cache_data
71
+ def get_safe_index_value(_image, index_type, band_selection, farm_geometry, image_date):
72
  """محاسبه ایمن شاخص‌های گیاهی"""
73
+ if _image is None:
74
  return None
75
  try:
76
  if index_type == "MSAVI":
77
+ index_image = _image.expression(
78
  "(2 * NIR + 1 - sqrt((2 * NIR + 1) ** 2 - 8 * (NIR - RED))) / 2",
79
+ {"NIR": _image.select("B8"), "RED": _image.select("B4")}
80
  ).rename("MSAVI")
81
  else:
82
+ index_image = _image.normalizedDifference(band_selection[index_type]).rename(index_type)
83
 
84
  mean_value = index_image.reduceRegion(
85
  reducer=ee.Reducer.mean(),
 
89
 
90
  return mean_value if mean_value is not None else 0
91
  except Exception as e:
92
+ st.error(f"خطا در محاسبه شاخص {index_type} برای تاریخ {image_date}: {str(e)}")
93
  return 0
94
 
95
  def calculate_lai(ndvi):
 
284
  if s2_collection.size().getInfo() > 0:
285
  s2 = s2_collection.first()
286
  for index in band_selection.keys():
287
+ value = get_safe_index_value(s2, index, band_selection, farm_geometry, date_str)
288
  index_values[index].append(value)
289
  else:
290
  for index in band_selection.keys():