import streamlit as st import numpy as np import tensorflow as tf from joblib import load scaler = load('scaler.joblib') model = tf.keras.models.load_model("TCM.h5") st.title("Cover Type Classification App") with st.form(key='TC23'): Elevation = st.number_input('Elevation', min_value=0, max_value=10000, value=500) Aspect = st.number_input('Aspect', min_value=0, max_value=10000, value=500) Slope = st.number_input('Slope', min_value=0, max_value=10000, value=500) Horizontal_Distance_To_Hydrology = st.number_input('Horizontal Distance to Hydrology', min_value=0, max_value=10000, value=500) Vertical_Distance_To_Hydrology = st.number_input('Vertical Distance to Hydrology', min_value=0, max_value=10000, value=500) Horizontal_Distance_To_Roadways = st.number_input('Horizontal Distance to Roadways', min_value=0, max_value=10000, value=500) Hillshade_9am = st.number_input('Hillshade at 9am', min_value=0, max_value=10000, value=500) Hillshade_Noon = st.number_input('Hillshade at 12pm', min_value=0, max_value=10000, value=500) Hillshade_3pm = st.number_input('Hillshade at 3pm', min_value=0, max_value=10000, value=500) Horizontal_Distance_To_Fire_Points = st.number_input('Horizontal Distance to Fire Points', min_value=0, max_value=10000, value=500) Wilderness_Area = st.number_input('Wilderness Area', min_value=1, max_value=4, value=1) Soil_Type = st.number_input('Soil Type', min_value=1, max_value=40, value=1) submitted = st.form_submit_button('Predict') input_data = { 'Elevation': Elevation, 'Aspect': Aspect, 'Slope': Slope, 'Horizontal_Distance_To_Hydrology': Horizontal_Distance_To_Hydrology, 'Vertical_Distance_To_Hydrology': Vertical_Distance_To_Hydrology, 'Horizontal_Distance_To_Roadways': Horizontal_Distance_To_Roadways, 'Hillshade_9am': Hillshade_9am, 'Hillshade_Noon': Hillshade_Noon, 'Hillshade_3pm': Hillshade_3pm, 'Horizontal_Distance_To_Fire_Points': Horizontal_Distance_To_Fire_Points, 'Wilderness_Area': Wilderness_Area, 'Soil_Type': Soil_Type } class_to_cover_type = { 0: "Spruce/Fir", 1: "Lodgepole Pine", 2: "Ponderosa Pine", 3: "Cottonwood/Willow", 4: "Aspen", 5: "Douglas-fir", 6: "Krummholz", } new_test = np.array(list(input_data.values())).reshape(1, -1) new_test = scaler.transform(new_test) if submitted: prediction = model.predict(new_test) predicted_class = np.argmax(prediction) cover_type = class_to_cover_type.get(predicted_class, "Unknown") st.write(f"Predicted Cover Type: {cover_type}")