navjotk commited on
Commit
61eef06
·
verified ·
1 Parent(s): 991f167

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -22
app.py CHANGED
@@ -13,7 +13,7 @@ from PIL import Image
13
  # ---------------------------
14
  # Crop Recommendation Setup
15
  # ---------------------------
16
- url = "https://raw.githubusercontent.com/sehajpreet22/data/refs/heads/main/cleaned_crop_data_with_pbi_labels.csv"
17
  data = pd.read_csv(url)
18
 
19
  X = data.drop('label', axis=1)
@@ -25,33 +25,36 @@ X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.3,
25
  model = lgb.LGBMClassifier()
26
  model.fit(X_train, y_train)
27
 
28
- def predict_crop(ਨਾਈਟ੍ਰੋਜਨ, ਫਾਸਫੋਰਸ, ਪੋਟਾਸ਼ੀਅਮ, ਤਾਪਮਾਨ, ਨਮੀ, ਮਿੱਟੀ_pH, ਵਰਖਾ):
29
- input_data = np.array([[ਨਾਈਟ੍ਰੋਜਨ, ਫਾਸਫੋਰਸ, ਪੋਟਾਸ਼ੀਅਮ, ਤਾਪਮਾਨ, ਨਮੀ, ਮਿੱਟੀ_pH, ਵਰਖਾ]])
30
  pred = model.predict(input_data)[0]
31
  crop_name = le.inverse_transform([pred])[0]
32
  image_path = f"crop_images/{crop_name}.jpeg"
33
  if not os.path.exists(image_path):
34
  image_path = None
35
- return image_path, f"🌾ਤੁਹਾਡੇ ਖੇਤ ਲਈ ਸੁਝਾਈ ਗਈ ਫਸਲ: *{crop_name}*"
36
 
37
  with gr.Blocks() as demo:
38
- gr.Markdown("# 🌾 **ਕਿਹੜੀ ਫਸਲ ਲਾਈਏ?**")
39
 
40
  with gr.Tabs():
41
- with gr.Row():
42
- ਨਾਈਟ੍ਰੋਜਨ= gr.Slider(0, 140, step=1, label="ਨਾਈਟ੍ਰੋਜਨ (kg/ha)")
43
- ਫਾਸਫੋਰਸ= gr.Slider(5, 95, step=1, label="ਫਾਸਫੋਰਸ (kg/ha)")
44
- ਪੋਟਾਸ਼ੀਅਮ= gr.Slider(5, 82, step=1, label="ਪੋਟਾਸ਼ੀਅਮ (kg/ha)")
45
- with gr.Row():
46
- ਤਾਪਮਾਨ= gr.Slider(15.63, 36.32, step=0.1, label="ਤਾਪਮਾਨ (°C)")
47
- ਨਮੀ= gr.Slider(14.2,99.98 , step=1, label="ਨਮੀ (%)")
48
- with gr.Row():
49
- ਮਿੱਟੀ_pH= gr.Slider(0, 14, step=0.1, label="ਮਿੱਟੀ ਦਾ pH")
50
- ਵਰਖਾ= gr.Slider(20.21, 253.72, step=1, label="ਵਰਖਾ (mm)")
51
- predict_btn = gr.Button("ਫਸਲ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰੋ")
52
- crop_image_output = gr.Image(label="🌿 ਫਸਲ ਦੀ ਤਸਵੀਰ")
53
- crop_text_output = gr.Markdown()
54
- predict_btn.click(fn=predict_crop,
55
- inputs=[ਨਾਈਟ੍ਰੋਜਨ,ਫਾਸਫੋਰਸ,ਪੋਟਾਸ਼ੀਅਮ,ਤਾਪਮਾਨ,ਨਮੀ,ਮਿੱਟੀ_pH,ਵਰਖਾ],
56
- outputs=[crop_image_output, crop_text_output])
57
- demo.launch()
 
 
 
 
13
  # ---------------------------
14
  # Crop Recommendation Setup
15
  # ---------------------------
16
+ url = "https://raw.githubusercontent.com/Pushpinder-Singh06/CSV-Files/refs/heads/main/crop_cleaned%20data.csv "
17
  data = pd.read_csv(url)
18
 
19
  X = data.drop('label', axis=1)
 
25
  model = lgb.LGBMClassifier()
26
  model.fit(X_train, y_train)
27
 
28
+ def predict_crop(nitrogen, phosphorus, potassium, temperature, humidity, soil_pH, rainfall):
29
+ input_data = np.array([[nitrogen, phosphorus, potassium, temperature, humidity, soil_pH, rainfall]])
30
  pred = model.predict(input_data)[0]
31
  crop_name = le.inverse_transform([pred])[0]
32
  image_path = f"crop_images/{crop_name}.jpeg"
33
  if not os.path.exists(image_path):
34
  image_path = None
35
+ return image_path, f"🌾 Recommended crop for your field: *{crop_name}*"
36
 
37
  with gr.Blocks() as demo:
38
+ gr.Markdown("# 🌾 **Which Crop Should I Grow?**")
39
 
40
  with gr.Tabs():
41
+ with gr.Row():
42
+ nitrogen = gr.Slider(0, 140, step=1, label="Nitrogen (kg/ha)")
43
+ phosphorus = gr.Slider(5, 95, step=1, label="Phosphorus (kg/ha)")
44
+ potassium = gr.Slider(5, 82, step=1, label="Potassium (kg/ha)")
45
+ with gr.Row():
46
+ temperature = gr.Slider(15.63, 36.32, step=0.1, label="Temperature (°C)")
47
+ humidity = gr.Slider(14.2, 99.98, step=1, label="Humidity (%)")
48
+ with gr.Row():
49
+ soil_pH = gr.Slider(0, 14, step=0.1, label="Soil pH")
50
+ rainfall = gr.Slider(20.21, 253.72, step=1, label="Rainfall (mm)")
51
+
52
+ predict_btn = gr.Button("Predict Crop")
53
+ crop_image_output = gr.Image(label="🌿 Crop Image")
54
+ crop_text_output = gr.Markdown()
55
+
56
+ predict_btn.click(fn=predict_crop,
57
+ inputs=[nitrogen, phosphorus, potassium, temperature, humidity, soil_pH, rainfall],
58
+ outputs=[crop_image_output, crop_text_output])
59
+
60
+ demo.launch()