File size: 2,503 Bytes
00751c0
 
6d51ff5
03e0ab0
558ada5
00751c0
 
 
 
 
 
 
 
 
 
 
03e0ab0
 
5c49502
 
 
03e0ab0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d305188
03e0ab0
 
 
 
 
 
698e304
03e0ab0
698e304
00751c0
d7f8bf9
00751c0
 
 
d7f8bf9
00751c0
 
 
 
03e0ab0
 
 
5c49502
03e0ab0
 
5c49502
03e0ab0
 
5c49502
00751c0
03e0ab0
 
00751c0
03e0ab0
5c49502
00751c0
03e0ab0
 
00751c0
03e0ab0
5c49502
00751c0
03e0ab0
 
00751c0
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import numpy as np
import pandas as pd
import streamlit as st
import pickle
from PIL import Image

st.set_page_config(
    page_title="Recommendation System for Agriculture",
    page_icon=":random:",
    layout="centered",
    initial_sidebar_state="expanded",
    menu_items={
        'About': "# This application will help provide crop recommendations!"
    }
)

model = pickle.load(open('crop_model.pkl','rb'))

ss = pickle.load(open('standardscaler.pkl','rb'))
ms = pickle.load(open('minmaxscaler.pkl','rb'))

check_crops = {1: 'rice',
 2: 'maize',
 3: 'jute',
 4: 'cotton',
 5: 'coconut',
 6: 'papaya',
 7: 'orange',
 8: 'apple',
 9: 'muskmelon',
 10: 'watermelon',
 11: 'grapes',
 12: 'mango',
 13: 'banana',
 14: 'pomegranate',
 15: 'lentil',
 16: 'blackgram',
 17: 'mungbean',
 18: 'mothbeans',
 19: 'pigeonpeas',
 20: 'kidneybeans',
 21: 'chickpea',
 22: 'coffee'}

def recommend(N, P, K, temperature, humidity, ph, rainfall):
    features = np.array([[N, P, K, temperature, humidity, ph, rainfall]]).reshape(1,-1)
    features = ms.transform(features)
    features = ss.transform(features)
    prediction = model.predict(features)
    return prediction[0]

def output(N, P, K, temperature, humidity, ph, rainfall):
    predict = recommend(N, P, K, temperature, humidity, ph, rainfall)
    if predict in check_crops:
        crop = check_crops[predict]
        st.write("""# Our crop recommendation is """, crop)
    else:
        st.write("""# No recommendation""")

image = Image.open('./title.jpg')
st.image(image)

with st.sidebar:
    image = Image.open('./sidebar_image.jpg')
    st.image(image)
    st.markdown("<h2 style='text-align: center; color: red;'>Settings Tab</h2>", unsafe_allow_html=True)


    st.write("Input Settings:")

    #define the N for the model
    n_value = st.slider('N :', 0.0, 150.0, 20.0)

    #define the P for the model
    p_value = st.slider('P :', 0.0, 150.0, 20.0)

    #define the K for the model
    k_value = st.slider('K  :', 0.0, 200.0, 40.0)

    #define the temperature for the model
    temperature = st.slider('Temperature :', 0.0, 50.0, 10.0)

    #define the humidity for the model
    humidity = st.slider('Humidity  :', 0.0, 100.0, 40.0)

    #define the ph for the model
    ph_value = st.slider('ph  :', 0.0, 10.0, 2.0)

    #define the rainfall for the model
    rainfall = st.slider('Rainfall  :', 10.0, 300.0, 40.0)

    if st.button("Recommend"):
        output(n_value, p_value, k_value, temperature, humidity, ph_value, rainfall)