File size: 2,913 Bytes
f4962b5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 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)