Milestone_2 / app.py
7sugiwa
Add application file
a9d560d
# app.py
import streamlit as st
import pandas as pd
import numpy as np
import prediction
import eda # Import the eda module
# Set up the main structure of the app
def main():
st.title("Rainfall Prediction in Australia")
st.write("This app predicts whether it will rain tomorrow in Australia based on weather data.")
# Sidebar navigation
st.sidebar.title("Navigation")
app_mode = st.sidebar.selectbox("Choose the app mode",
["Home", "Exploratory Data Analysis", "Make a Prediction"])
if app_mode == "Home":
st.write("Welcome to the Weather Forecasting Application!")
st.write("Navigate to different sections using the sidebar.")
elif app_mode == "Exploratory Data Analysis":
st.subheader("Exploratory Data Analysis")
# Call the EDA function from eda.py
eda.main() # Call the main function from eda.py
elif app_mode == "Make a Prediction":
st.subheader("Make a Prediction")
# Get user input for prediction
user_input = get_user_input()
if st.button("Predict"):
# Call the prediction function from prediction.py
result = prediction.predict_rainfall(*user_input)
st.write(f"Prediction: {'It will rain tomorrow.' if result else 'No rain tomorrow.'}")
def get_user_input():
humidity_3pm = st.number_input('Humidity at 3 PM', min_value=0, max_value=100, value=50)
rainfall = st.number_input('Rainfall (mm)', min_value=0.0, max_value=1000.0, value=0.0)
rain_today = st.selectbox('Did it rain today?', options=['Yes', 'No'])
temp_range = st.number_input('Temperature Range (°C)', min_value=0.0, max_value=50.0, value=10.0)
wind_gust_speed = st.number_input('Wind Gust Speed (km/h)', min_value=0, max_value=100, value=20)
pressure_9am = st.number_input('Pressure at 9 AM (hPa)', min_value=980, max_value=1040, value=1010)
avg_pressure = st.number_input('Average Daily Pressure (hPa)', min_value=980, max_value=1040, value=1010)
humidity_change = st.number_input('Change in Humidity', min_value=-100, max_value=100, value=0)
avg_humidity = st.number_input('Average Daily Humidity', min_value=0, max_value=100, value=50)
return humidity_3pm, rainfall, rain_today, temp_range, wind_gust_speed, pressure_9am, avg_pressure, humidity_change, avg_humidity
if __name__ == "__main__":
main()