@@ -212,15 +212,37 @@ def generate_satellite_analysis(ndvi_data, ndwi_data, landcover_data, incident_t
212212 Returns:
213213 str: Detailed analysis of the satellite data, formatted in markdown
214214 """
215+ # Check for empty data and handle gracefully
216+ if ndvi_data .empty or len (ndvi_data ) < 2 :
217+ ndvi_mean = 0.0
218+ ndvi_trend = 'données insuffisantes'
219+ else :
220+ ndvi_mean = ndvi_data ['NDVI' ].mean ()
221+ ndvi_trend = 'augmentation' if ndvi_data ['NDVI' ].iloc [- 1 ] > ndvi_data ['NDVI' ].iloc [0 ] else 'diminution'
222+
223+ if ndwi_data .empty or len (ndwi_data ) < 2 :
224+ ndwi_mean = 0.0
225+ ndwi_trend = 'données insuffisantes'
226+ else :
227+ ndwi_mean = ndwi_data ['NDWI' ].mean ()
228+ ndwi_trend = 'augmentation' if ndwi_data ['NDWI' ].iloc [- 1 ] > ndwi_data ['NDWI' ].iloc [0 ] else 'diminution'
229+
230+ if not landcover_data or len (landcover_data ) == 0 :
231+ dominant_cover = 'données non disponibles'
232+ dominant_cover_percentage = 0.0
233+ else :
234+ dominant_cover = max (landcover_data , key = landcover_data .get )
235+ dominant_cover_percentage = landcover_data [dominant_cover ] / sum (landcover_data .values ()) * 100
236+
215237 # Prepare the context
216238 context = {
217239 "type_incident" : incident_type ,
218- "ndvi_mean" : ndvi_data [ 'NDVI' ]. mean () ,
219- "ndvi_trend" : 'augmentation' if ndvi_data [ 'NDVI' ]. iloc [ - 1 ] > ndvi_data [ 'NDVI' ]. iloc [ 0 ] else 'diminution' ,
220- "ndwi_mean" : ndwi_data [ 'NDWI' ]. mean () ,
221- "ndwi_trend" : 'augmentation' if ndwi_data [ 'NDWI' ]. iloc [ - 1 ] > ndwi_data [ 'NDWI' ]. iloc [ 0 ] else 'diminution' ,
222- "dominant_cover" : max ( landcover_data , key = landcover_data . get ) ,
223- "dominant_cover_percentage" : landcover_data [ max ( landcover_data , key = landcover_data . get )] / sum ( landcover_data . values ()) * 100
240+ "ndvi_mean" : ndvi_mean ,
241+ "ndvi_trend" : ndvi_trend ,
242+ "ndwi_mean" : ndwi_mean ,
243+ "ndwi_trend" : ndwi_trend ,
244+ "dominant_cover" : dominant_cover ,
245+ "dominant_cover_percentage" : dominant_cover_percentage
224246 }
225247
226248 # System prompt content remains the same
0 commit comments