| import gradio as gr |
| import numpy as np |
| import joblib |
|
|
| |
| crop_yield_model = joblib.load('voting_yield.sav') |
|
|
| |
| states = ['Andaman and Nicobar Islands', 'Andhra Pradesh', 'Arunachal Pradesh', 'Assam', 'Bihar', 'Chandigarh', |
| 'Chhattisgarh', 'Dadra and Nagar Haveli', 'Goa', 'Gujarat', 'Haryana', 'Himachal Pradesh', |
| 'Jammu and Kashmir', 'Jharkhand', 'Karnataka', 'Kerala', 'Madhya Pradesh', 'Maharashtra', |
| 'Manipur', 'Meghalaya', 'Mizoram', 'Nagaland', 'Odisha', 'Puducherry', 'Punjab', |
| 'Rajasthan', 'Sikkim', 'Tamil Nadu', 'Telangana', 'Tripura', 'Uttar Pradesh', |
| 'Uttarakhand', 'West Bengal'] |
|
|
| crops = ['Arecanut', 'Barley', 'Banana', 'Blackpepper', 'Brinjal', 'Cabbage', 'Cardamom', 'Cashewnuts', 'Cauliflower', |
| 'Coriander', 'Cotton', 'Garlic', 'Grapes', 'Horsegram', 'Jowar', 'Jute', 'Ladyfinger', 'Maize', |
| 'Mango', 'Moong', 'Onion', 'Orange', 'Papaya', 'Pineapple', 'Potato', 'Rapeseed', 'Ragi', 'Rice', |
| 'Sesamum', 'Soyabean', 'Sunflower', 'Sweetpotato', 'Tapioca', 'Tomato', 'Turmeric', 'Wheat'] |
|
|
| seasons = ['Kharif', 'Rabi', 'Summer', 'Whole Year'] |
|
|
|
|
| def predict_yield(state, crop, season, pH, rainfall, temperature, area, production): |
| try: |
| |
| state_encoded = [1 if state == s else 0 for s in states] |
| crop_encoded = [1 if crop == c else 0 for c in crops] |
| season_encoded = [1 if season == s else 0 for s in seasons] |
|
|
| |
| input_features = np.array(state_encoded + crop_encoded + season_encoded + [pH, rainfall, temperature, area, production]).reshape(1, -1) |
|
|
| |
| expected_features = len(states) + len(crops) + len(seasons) + 5 |
| if input_features.shape[1] != expected_features: |
| return "Error: Feature shape mismatch!" |
| else: |
| predicted_yield = crop_yield_model.predict(input_features) |
| return f"The predicted yield is: {predicted_yield[0]:.2f} tons/hectare" |
| except Exception as e: |
| return f"Error: {str(e)}" |
|
|
| |
| interface = gr.Interface( |
| fn=predict_yield, |
| inputs=[ |
| gr.Dropdown(states, label="Select State"), |
| gr.Dropdown(crops, label="Select Crop"), |
| gr.Dropdown(seasons, label="Select Season"), |
| gr.Number(label="Soil pH Value", value=6.5, precision=2), |
| gr.Number(label="Rainfall (mm)", value=100.0, precision=2), |
| gr.Number(label="Temperature (°C)", value=25.0, precision=2), |
| gr.Number(label="Area (hectares)", value=1.0, precision=2), |
| gr.Number(label="Production (tons)", value=1.0, precision=2), |
| ], |
| outputs="text", |
| title="Crop Yield Prediction", |
| description="Enter the required parameters to predict the crop yield in tons/hectare.", |
| ) |
|
|
| |
| interface.launch() |
|
|
|
|