File size: 3,048 Bytes
def8563
 
 
1e83e7b
def8563
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import streamlit
import pickle
import numpy

 # web app  on your desktop local host
#run  on your pycharm terminal ' streamlit run app.py '
# if using  command window ensure the path is correct..  c:\users\idom...\pycharm..\machin learing>
# that is pionting to your python file
loaded_model = pickle.load(open('MWmodel.sav','rb'))
#create function to handle predicition
def microwave_fault_prediction (user_input_data):
    #convert to array
    Input_array = numpy.asarray(user_input_data)
    Input_array_reshaped = Input_array.reshape(1, -1)
    make_prediction = loaded_model.predict(Input_array_reshaped)
    print(make_prediction)  # make_prediction= [10],  pos is 0

    if make_prediction== 0:
        return 'site  is up'
    elif make_prediction == 1:
        return'site  is down: fault: 1. inteference 2. misalignment 3. one of the odu is faulty'
    elif make_prediction == 2:
        return 'site  is down: fault: 1. NO power at remote site(A),2.ODU offline remote site(A)(check alarm \'IF cable open\') '
    elif make_prediction == 3:
        return 'site  is down: fault:1.ODu hunged at remote site(A), reset power at both sites(A,B)'
    elif make_prediction == 4:
        return 'site  is down: fault: 1. cascaded cable  faulty at hub  Site (B), 2.  ODU/IDU/If cable offline,at remote end'
    elif make_prediction == 5:
        return'site is down: fault: 1 ODU at hub site(B)degraded( reset ODU, reterminate IF cable,check alarm)'
    elif make_prediction == 6:
        return 'site  is down: faulty: if power is okay, odu burnt at either remote site (A) OR (B)'
    else:  # do feature elimination for data irrelevant to outcome
        return 'case 7: site status  cannot be determined by RSL data'

#construct interface for user data input
def main():
    #give a title
    streamlit.title('microwave fault detection web app')
    #get input data from user
    RSLA = streamlit.number_input('Site A Local end: enter RSL of the site, it must be negative number, input zero for no supervision',min_value=-99, max_value=0, value=-30, step=1,key= 'rsla')
    #key= 'rslb' is to distinguish two similar widgets 'text_input' in streamlit
    RSLB = streamlit.number_input('Site B Remote end: enter RSL of the Hub site, it  must be negative number, input zero for no supervision',min_value=-99, max_value=0, value=-30, step=1,key= 'rslb')
    #code for prediction
    detection =""   #declare this variable to hold result like empty list
    #mylist = []
    if streamlit.button('click here for  fault prediction'):
        detection=microwave_fault_prediction([RSLA,RSLB])
        #convert inputs into a single parameter using list [1,2]
        #microwave_fault_prediction ...call the function to process input
    streamlit.success(detection)
if __name__ == '__main__':
    main()


 # web app  on your desktop local host
#run  on your pycharm terminal ' streamlit run microwaveAPP.py '
# if using  command window ensure the path is correct..  c:\users\idom...\pycharm..\machin learing>
# that is pionting to your python file