GLUE-FInDMOS / app.py
Phakamas's picture
Create app.py
f4962b5 verified
Raw History Blame Contribute Delete
2.91 kB
# huggingface/app.py
"""
Dashboard อย่างง่ายสำหรับ Hugging Face Spaces
"""
import gradio as gr
import folium
import pandas as pd
import numpy as np
from datetime import datetime
def create_simple_map():
"""สร้างแผนที่อย่างง่าย"""
# สร้างแผนที่ศูนย์กลางลุ่มน้ำชี
m = folium.Map(location=[16.0, 103.5], zoom_start=8)
# เพิ่มจุดตัวอย่าง
folium.Marker(
[16.5436, 101.6589],
popup='เขื่อนจุฬาภรณ์<br>ต้นน้ำชี',
tooltip='คลิกดูข้อมูล'
).add_to(m)
folium.Marker(
[15.7956, 104.1494],
popup='จังหวัดยโสธร<br>ลุ่มน้ำตอนล่าง',
tooltip='คลิกดูข้อมูล'
).add_to(m)
# เพิ่มเส้นทางแม่น้ำ (ตัวอย่าง)
river_points = [
[16.5436, 101.6589],
[16.4326, 102.8236],
[15.7956, 104.1494],
[15.2287, 104.8563]
]
folium.PolyLine(river_points, color='blue', weight=3).add_to(m)
return m._repr_html_()
def create_dashboard():
"""สร้าง Gradio Dashboard"""
with gr.Blocks(title="GLUE-FIN DMOS", theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🌊 GLUE-FIN DMOS v2.5")
gr.Markdown("ระบบพยากรณ์น้ำท่วมลุ่มน้ำชี")
with gr.Row():
with gr.Column():
# สถิติ
gr.Markdown("## 📊 สถิติลุ่มน้ำชี")
gr.Markdown("""
- **พื้นที่:** 49,500 ตร.กม.
- **ความยาว:** 765 กม.
- **จังหวัด:** 7 จังหวัด
- **ประชากร:** ~5 ล้านคน
""")
# ปุ่มควบคุม
update_btn = gr.Button("อัปเดตข้อมูล", variant="primary")
with gr.Column():
# แผนที่
gr.Markdown("## 🗺️ แผนที่ลุ่มน้ำชี")
map_html = gr.HTML(value=create_simple_map())
# Footer
gr.Markdown(f"""
---
*อัปเดตล่าสุด: {datetime.now().strftime('%d/%m/%Y %H:%M')}*
""")
# Events
update_btn.click(
fn=create_simple_map,
outputs=[map_html]
)
return demo
if __name__ == "__main__":
demo = create_dashboard()
demo.launch(server_name="0.0.0.0", server_port=7860)