Skip to content

Commit 481891d

Browse files
committed
Fix: Handle empty satellite data in LLM analysis
1 parent 51dd6bc commit 481891d

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

app/services/llm/llm.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)