Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import numpy as np | |
| import joblib | |
| st.set_page_config( | |
| page_title="Wildfire Threat Analysis", | |
| page_icon="🔥", | |
| layout="centered" | |
| ) | |
| model = joblib.load("src/wildfire_threat_model.pkl") | |
| feature_columns = joblib.load("src/feature_columns.pkl") | |
| st.title("🔥 Wildfire Threat Analysis") | |
| st.write( | |
| "Bu uygulama, orman yangınının tahliye bölgesine yönelik oluşturduğu tehdidi " | |
| "erken dönem yangın özelliklerine göre tahmin eder." | |
| ) | |
| st.info( | |
| "Model, yangının 72 saat içinde tahliye bölgesine ulaşıp ulaşmama riskini " | |
| "tahmin etmek üzere eğitilmiştir." | |
| ) | |
| st.sidebar.header("Yangın Özellikleri") | |
| input_data = {} | |
| for col in feature_columns: | |
| input_data[col] = st.sidebar.number_input( | |
| label=col, | |
| value=0.0, | |
| step=1.0 | |
| ) | |
| input_df = pd.DataFrame([input_data]) | |
| st.subheader("Girilen Değerler") | |
| st.dataframe(input_df) | |
| if st.button("Risk Tahmini Yap"): | |
| risk_prob = model.predict_proba(input_df)[0, 1] | |
| prob_12h = risk_prob * 0.40 | |
| prob_24h = risk_prob * 0.65 | |
| prob_48h = risk_prob * 0.85 | |
| prob_72h = risk_prob | |
| probs = { | |
| "12 Saat": prob_12h, | |
| "24 Saat": prob_24h, | |
| "48 Saat": prob_48h, | |
| "72 Saat": prob_72h | |
| } | |
| st.subheader("Tahmin Sonuçları") | |
| for time_label, prob in probs.items(): | |
| st.write(f"**{time_label} içinde tehdit olasılığı:** %{prob * 100:.2f}") | |
| st.progress(min(float(prob), 1.0)) | |
| st.subheader("Genel Risk Değerlendirmesi") | |
| if risk_prob >= 0.70: | |
| st.error("Yüksek risk: Yangının tahliye bölgesine ulaşma ihtimali güçlü görünüyor.") | |
| elif risk_prob >= 0.40: | |
| st.warning("Orta risk: Yangının takip edilmesi ve hazırlık yapılması önerilir.") | |
| else: | |
| st.success("Düşük risk: Mevcut verilere göre tehdit seviyesi düşük görünüyor.") | |
| st.caption( | |
| "Not: Bu uygulama eğitim ve portföy amacıyla hazırlanmıştır. " | |
| "Gerçek afet yönetimi kararları için resmi kurumların verileri ve uzman değerlendirmeleri esas alınmalıdır." | |
| ) |