UjjwalKGupta commited on
Commit
7324e32
·
verified ·
1 Parent(s): 3676da3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -0
app.py CHANGED
@@ -93,6 +93,10 @@ def reduce_zonal_ndvi(image, ee_object):
93
  )
94
  return image.set(reduced)
95
 
 
 
 
 
96
  # Get Zonal NDVI
97
  def get_zonal_ndvi(collection, geom_ee_object):
98
  reduced_collection = collection.map(lambda image: reduce_zonal_ndvi(image, ee_object=geom_ee_object))
@@ -102,6 +106,17 @@ def get_zonal_ndvi(collection, geom_ee_object):
102
  df = pd.DataFrame({'NDVI': stats_list, 'Date': dates, 'Imagery': filenames})
103
  return df
104
 
 
 
 
 
 
 
 
 
 
 
 
105
  # put title in center
106
  st.markdown("""
107
  <style>
@@ -187,6 +202,26 @@ if uploaded_file is not None:
187
  st.write("Time Series Plot")
188
  st.line_chart(resultant_df[['AvgNDVI_Inside', 'Avg_NDVI_Buffer', 'Date']].set_index('Date'))
189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  # Visualize map on ESRI basemap
191
  st.write("Map Visualization")
192
 
 
93
  )
94
  return image.set(reduced)
95
 
96
+ def calculate_NDVI(image):
97
+ ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI')
98
+ return image.addBands(ndvi)
99
+
100
  # Get Zonal NDVI
101
  def get_zonal_ndvi(collection, geom_ee_object):
102
  reduced_collection = collection.map(lambda image: reduce_zonal_ndvi(image, ee_object=geom_ee_object))
 
106
  df = pd.DataFrame({'NDVI': stats_list, 'Date': dates, 'Imagery': filenames})
107
  return df
108
 
109
+ def get_zonal_ndviYoY(collection, geom_ee_object):
110
+ collection = collection.map(lambda image: calculate_NDVI)
111
+ max_ndvi = collection.select('NDVI').max()
112
+ reduced_max_ndvi = image.reduceRegion(
113
+ reducer=ee.Reducer.mean(),
114
+ geometry=ee_object.geometry(),
115
+ scale=10,
116
+ maxPixels=1e12)
117
+ return reduced_max_ndvi
118
+
119
+
120
  # put title in center
121
  st.markdown("""
122
  <style>
 
202
  st.write("Time Series Plot")
203
  st.line_chart(resultant_df[['AvgNDVI_Inside', 'Avg_NDVI_Buffer', 'Date']].set_index('Date'))
204
 
205
+ ####### YoY Profile ########
206
+ start_year = 2017
207
+ end_year = 2023
208
+
209
+ max_ndvi_geoms = []
210
+ max_ndvi_buffered_geoms = []
211
+ for year in range(start_year, end_year+1):
212
+ start_ddmm = start_date.strftime("%d%m") + str(year)
213
+ end_ddmm = end_date.strftime("%d%m") + str(year)
214
+
215
+ # Filter data based on the date, bounds, cloud coverage and select NIR and Red Band
216
+ collection = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED").filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', max_cloud_cover)).filter(ee.Filter.date(start_ddmm, end_ddmm)).select(['B4', 'B8'])
217
+
218
+ # Get Zonal NDVI based on collection and geometries (Original KML and Buffered KML)
219
+ max_ndvi_geoms.append(get_zonal_ndviYoY(collection.filterBounds(geom_ee_object), geom_ee_object))
220
+ max_ndvi_buffered_geoms.append(get_zonal_ndviYoY(collection.filterBounds(buffered_ee_object), buffered_ee_object))
221
+
222
+ st.write(max_ndvi_geoms)
223
+ st.write(max_ndvi_buffered_geoms)
224
+
225
  # Visualize map on ESRI basemap
226
  st.write("Map Visualization")
227