AbdullahImran commited on
Commit
8c9a116
·
verified ·
1 Parent(s): 04fa07a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -5
app.py CHANGED
@@ -5,13 +5,14 @@ import numpy as np
5
  import joblib
6
  import google.generativeai as genai
7
  import gradio as gr
8
- from google.colab import drive, userdata
9
  from datetime import datetime, timedelta
10
  from tensorflow.keras.models import load_model
11
  from tensorflow.keras.preprocessing import image as keras_image
12
  from tensorflow.keras.applications.vgg16 import preprocess_input as vgg_preprocess
13
  from tensorflow.keras.applications.xception import preprocess_input as xce_preprocess
14
  from tensorflow.keras.losses import BinaryFocalCrossentropy
 
15
 
16
  # --- CONFIGURATION ---
17
  # Coordinates for a representative forest area in Pakistan
@@ -27,7 +28,10 @@ API_URL = (
27
  )
28
 
29
  # --- GEMINI SETUP ---
30
- GOOGLE_API_KEY = userdata.get('GOOGLE_API_KEY')
 
 
 
31
  genai.configure(api_key=GOOGLE_API_KEY)
32
  flash = genai.GenerativeModel('gemini-1.5-flash')
33
 
@@ -74,7 +78,7 @@ def detect_fire(img):
74
  x = keras_image.img_to_array(img.resize((128,128)))[None]
75
  x = vgg_preprocess(x)
76
  prob = float(vgg_model.predict(x)[0][0])
77
- return prob >= 0.5, prob
78
 
79
 
80
  def classify_severity(img):
@@ -84,7 +88,7 @@ def classify_severity(img):
84
  rf_p = rf_model.predict(preds)[0]
85
  xgb_p = xgb_model.predict(preds)[0]
86
  ensemble = int(round((rf_p + xgb_p)/2))
87
- return target_map.get(ensemble, 'moderate')
88
 
89
 
90
  def fetch_weather_trend(lat, lon):
@@ -135,7 +139,7 @@ def pipeline(image):
135
  img = Image.fromarray(image).convert('RGB')
136
  fire, prob = detect_fire(img)
137
  if not fire:
138
- return f"No wildfire detected (prob={prob:.2f})", "N/A", "No wildfire detected. Stay alert."
139
  severity = classify_severity(img)
140
  trend = fetch_weather_trend(*FOREST_COORDS['Pakistan Forest'])
141
  recs = generate_recommendations(True, severity, trend)
 
5
  import joblib
6
  import google.generativeai as genai
7
  import gradio as gr
8
+ from google.colab import drive
9
  from datetime import datetime, timedelta
10
  from tensorflow.keras.models import load_model
11
  from tensorflow.keras.preprocessing import image as keras_image
12
  from tensorflow.keras.applications.vgg16 import preprocess_input as vgg_preprocess
13
  from tensorflow.keras.applications.xception import preprocess_input as xce_preprocess
14
  from tensorflow.keras.losses import BinaryFocalCrossentropy
15
+ from PIL import Image
16
 
17
  # --- CONFIGURATION ---
18
  # Coordinates for a representative forest area in Pakistan
 
28
  )
29
 
30
  # --- GEMINI SETUP ---
31
+ # Retrieve API key from environment variable (set in Hugging Face Secrets)
32
+ GOOGLE_API_KEY = os.environ.get('GOOGLE_API_KEY')
33
+ if not GOOGLE_API_KEY:
34
+ raise ValueError("Missing GOOGLE_API_KEY environment variable")
35
  genai.configure(api_key=GOOGLE_API_KEY)
36
  flash = genai.GenerativeModel('gemini-1.5-flash')
37
 
 
78
  x = keras_image.img_to_array(img.resize((128,128)))[None]
79
  x = vgg_preprocess(x)
80
  prob = float(vgg_model.predict(x)[0][0])
81
+ return prob>=0.5, prob
82
 
83
 
84
  def classify_severity(img):
 
88
  rf_p = rf_model.predict(preds)[0]
89
  xgb_p = xgb_model.predict(preds)[0]
90
  ensemble = int(round((rf_p + xgb_p)/2))
91
+ return target_map.get(ensemble,'moderate')
92
 
93
 
94
  def fetch_weather_trend(lat, lon):
 
139
  img = Image.fromarray(image).convert('RGB')
140
  fire, prob = detect_fire(img)
141
  if not fire:
142
+ return f"No wildfire detected (prob={prob:.2f})", "N/A", "**No wildfire detected. Stay alert.**"
143
  severity = classify_severity(img)
144
  trend = fetch_weather_trend(*FOREST_COORDS['Pakistan Forest'])
145
  recs = generate_recommendations(True, severity, trend)