import streamlit as st import joblib #import pickle #from datetime import date import numpy as np #import sklearn html_temp = """

Streamlit AIR Pollution Prediciton ML App

""" st.markdown(html_temp, unsafe_allow_html=True) image_url="https://wallpapercave.com/wp/wp6100544.jpg" st.image(image_url, caption="Image from URL", use_container_width=True) st.markdown(f""" """, unsafe_allow_html=True) col1,col2=st.columns(2) with col1: # Name name=st.selectbox("Select Name" ,options=['Emissions',"Pollution","Asthma-Related","Hospitalizations"]) name_index=['Emissions',"Pollution","Asthma-Related","Hospitalizations"] name_value= name_index.index(name) with col2: # Measure measure=st.selectbox("Select Measure ",options=["Density","Miles","Rates","Concentration"]) measure_index=["Density","Miles","Rates","Concentration"] measure_value =measure_index.index(measure) col1,col2 = st.columns(2) with col1: # Geo_Type_Name Geo_Type_Name=st.selectbox('Select Geo_Type_Name',options=["UHF42",'UHF34','Borough','CD','Citywi']) Geo_Type_Name_index=["UHF42",'UHF34','Borough','CD','Citywi'] Geo_Type_Name_value =Geo_Type_Name_index.index(Geo_Type_Name) with col2: # Geo_Place_Name Geo_Place_Name=st.selectbox('Select Geo_Place_Name',options=['Queens','Unknown','Brooklyn','Bronx','Manhattan','Staten Island=5']) Geo_Place_Name_index=['Queens','Unknown','Brooklyn','Bronx','Manhattan','Staten Island=5'] Geo_Place_Name_value=Geo_Place_Name_index.index(Geo_Place_Name) #time_period time_period=st.selectbox('select Time Period',options=['Other','Annual Average','Summer','Winter']) time_period_index=['Other','Annual Average','Summer','Winter'] time_period_value=time_period_index.index(time_period) # Data_Values Data_values=st.slider("Enter The Data Values",min_value=0,max_value=424,value=1) # model model=joblib.load('Air_pollution_prediction_rf_model.joblib') # with open('Air_pollution_prediction_rf_model.joblib', 'rb') as f: # model= pickle.load(f) st.markdown(""" """, unsafe_allow_html=True) if st.button("Submit"): # Prepare input features for the model input_features = np.array([[ name_value, measure_value, Geo_Type_Name_value, Geo_Place_Name_value, time_period_value, Data_values ]]) # Get prediction from the model try: output = model.predict(input_features)[0] except Exception as e: st.error(f"⚠️ Error in prediction: {e}") output = None # Define pollution status messages and colors pollution_status = { 0: ("🌤️ Air Pollution is Moderate", "#FFD700"), # Gold 1: ("✅ Air Pollution is Good", "#32CD32"), # Green 2: ("⚠️ Air Pollution is Bad", "#FF4500") # Red-Orange } # Retrieve prediction result and corresponding color result_text, result_color = pollution_status.get(output, ("❓ Unknown Prediction", "#808080")) # Default to gray if unknown # st.write(result_text) # # Display styled result if output is not None: st.markdown(f"""
{result_text}
""", unsafe_allow_html=True) st.write("") st.write("")