UjjwalKGupta commited on
Commit
0faf3a8
·
verified ·
1 Parent(s): 7638c84

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -1
app.py CHANGED
@@ -209,6 +209,10 @@ if uploaded_file is not None:
209
  start_year = 2019
210
  end_year = 2023
211
 
 
 
 
 
212
  max_ndvi_geoms = []
213
  max_ndvi_buffered_geoms = []
214
  for year in range(start_year, end_year+1):
@@ -220,9 +224,28 @@ if uploaded_file is not None:
220
  # Filter data based on the date, bounds, cloud coverage and select NIR and Red Band
221
  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'])
222
 
223
- # Get Zonal NDVI based on collection and geometries (Original KML and Buffered KML)
224
  max_ndvi_geoms.append(get_zonal_ndviYoY(collection.filterBounds(geom_ee_object), geom_ee_object))
225
  max_ndvi_buffered_geoms.append(get_zonal_ndviYoY(collection.filterBounds(buffered_ee_object), buffered_ee_object))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
 
227
  # Create a DataFrame for YoY profile
228
  yoy_df = pd.DataFrame({'Year': [str(i) for i in range(start_year, end_year+1)], 'NDVI_Inside': max_ndvi_geoms, 'NDVI_Buffer': max_ndvi_buffered_geoms})
 
209
  start_year = 2019
210
  end_year = 2023
211
 
212
+ # Create an empty resultant dataframe
213
+ columns = ['Date', 'Imagery', 'AvgNDVI_Inside', 'Avg_NDVI_Buffer', 'Ratio']
214
+ combined_df = pd.DataFrame(columns=columns)
215
+
216
  max_ndvi_geoms = []
217
  max_ndvi_buffered_geoms = []
218
  for year in range(start_year, end_year+1):
 
224
  # Filter data based on the date, bounds, cloud coverage and select NIR and Red Band
225
  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'])
226
 
227
+ # Get Zonal Max composite NDVI based on collection and geometries (Original KML and Buffered KML)
228
  max_ndvi_geoms.append(get_zonal_ndviYoY(collection.filterBounds(geom_ee_object), geom_ee_object))
229
  max_ndvi_buffered_geoms.append(get_zonal_ndviYoY(collection.filterBounds(buffered_ee_object), buffered_ee_object))
230
+
231
+ # Get Zonal NDVI
232
+ df_geom = get_zonal_ndvi(collection.filterBounds(geom_ee_object), geom_ee_object)
233
+ df_buffered_geom = get_zonal_ndvi(collection.filterBounds(buffered_ee_object), buffered_ee_object)
234
+
235
+ # Merge both Zonalstats and create resultant dataframe
236
+ resultant_df = pd.merge(df_geom, df_buffered_geom, on='Date', how='inner')
237
+ resultant_df = resultant_df.rename(columns={'NDVI_x': 'AvgNDVI_Inside', 'NDVI_y': 'Avg_NDVI_Buffer', 'Imagery_x': 'Imagery'})
238
+ resultant_df['Ratio'] = resultant_df['AvgNDVI_Inside'] / resultant_df['Avg_NDVI_Buffer']
239
+ resultant_df.drop(columns=['Imagery_y'], inplace=True)
240
+
241
+ # Re-order the columns of the resultant dataframe
242
+ resultant_df = resultant_df[['Date', 'Imagery', 'AvgNDVI_Inside', 'Avg_NDVI_Buffer', 'Ratio']]
243
+
244
+ # Append to empty dataframe
245
+ combined_df = pd.concat([combined_df, resultant_df], ignore_index=True)
246
+
247
+ # Write the final table
248
+ st.write(combined_df)
249
 
250
  # Create a DataFrame for YoY profile
251
  yoy_df = pd.DataFrame({'Year': [str(i) for i in range(start_year, end_year+1)], 'NDVI_Inside': max_ndvi_geoms, 'NDVI_Buffer': max_ndvi_buffered_geoms})