# 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='เขื่อนจุฬาภรณ์
ต้นน้ำชี', tooltip='คลิกดูข้อมูล' ).add_to(m) folium.Marker( [15.7956, 104.1494], popup='จังหวัดยโสธร
ลุ่มน้ำตอนล่าง', 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)