R-studio : ( EP#11 ) ข้อมูล Excel จุดวัดน้ำฝน Rainfall Data นำมาแสดง Leaflet Map ด้วยโปรแกรม R
R-studio : ( EP#11 ) ข้อมูล Excel จุดวัดน้ำฝน Rainfall Data นำมาแสดง Leaflet Map ด้วยโปรแกรม R
ในตอน R-Studio (EP#11) นี้ เราจะเรียนรู้การ นำเข้าข้อมูลจุดวัดน้ำฝนจากไฟล์ Excel และ สร้างแผนที่เชิงโต้ตอบ (Interactive Map) ด้วย Leaflet บนโปรแกรม R โดยสามารถตกแต่งสัญลักษณ์ให้แสดงระดับ ปริมาณน้ำฝน (Rainfall Intensity) และสุดท้าย ส่งออกเป็น HTML เพื่อใช้แสดงบนเว็บไซต์ หรือ Dashboard ได้
เตรียมข้อมูลปริมาณน้ำฝนใน Excel แล้วดึงข้อมูลมาแสดงเป็น Points บนแผนที่ Leaflet
และตกแต่งตามค่าปริมาณน้ำฝน ได้พอใจแล้ว ส่งออกเป็น HTML เพื่อนำไปแสดงผลงานได้ต่อไป
แหล่งข้อมูล R markdown script https://docs.google.com/forms/d/e/1FAIpQLSedJs13_-7w6WRTssHnNMk2QCTwUdn5RI-h02xa0T8v-CATXQ/viewform
🎯 วัตถุประสงค์
- สร้างแผนที่ Leaflet แสดงข้อมูลฝนจาก Excel
- แสดงค่า latitude, longitude, และ rainfall เป็น point บนแผนที่
- ปรับขนาด/สีของ marker ตามปริมาณน้ำฝน
- ส่งออกเป็น HTML สำหรับ embed หรือรายงาน
📥 ดาวน์โหลดชุดสคริปต์และข้อมูลตัวอย่าง
🔗 แบบฟอร์มลงทะเบียนรับ R markdown script:
👉 EP#11 – Rainfall Leaflet Map Script
🧪 ตัวอย่าง R Script (Leaflet + Rainfall Visualization)
rCopyEdit# ติดตั้งแพ็กเกจที่จำเป็น
install.packages(c("readxl", "leaflet", "htmlwidgets"))
# โหลดแพ็กเกจ
library(readxl)
library(leaflet)
library(htmlwidgets)
# โหลดข้อมูลจาก Excel
rain_data <- read_excel("rainfall_data.xlsx")
# ตรวจสอบข้อมูล
head(rain_data)
# สร้างแผนที่ Leaflet
rain_map <- leaflet(data = rain_data) %>%
addTiles() %>%
addCircleMarkers(
lng = ~longitude,
lat = ~latitude,
radius = ~sqrt(rainfall), # ปรับขนาดตามปริมาณฝน
color = ~ifelse(rainfall > 100, "red", ifelse(rainfall > 50, "orange", "blue")),
label = ~paste("Rainfall:", rainfall, "mm"),
popup = ~paste("สถานี:", station_name, "<br>ปริมาณน้ำฝน:", rainfall, "mm")
)
# แสดงแผนที่
rain_map
# ส่งออกเป็น HTML
saveWidget(rain_map, "RainfallMap.html", selfcontained = TRUE)
🎨 เทคนิคการตกแต่งเพิ่มเติม
ปรับแต่ง | คำอธิบาย |
---|---|
radius = ~log(rainfall) | ใช้ log scale สำหรับค่าที่กระจายกว้าง |
color = colorNumeric("Blues", domain = rainfall) | ใช้ color scale อัตโนมัติ |
clusterOptions = markerClusterOptions() | รวมจุดแสดงแบบกลุ่ม |
🧠 การประยุกต์ใช้งาน
- ติดตามสถานการณ์น้ำฝนภาคสนาม แบบวันต่อวัน
- เชื่อมต่อกับ Google Sheets เพื่อทำแผนที่แบบ Real-time
- ส่งออกแผนที่ไปฝังในเว็บไซต์ของโครงการ หรือ Dashboard รายงานผู้บริหาร
- ใช้ร่วมกับข้อมูล DEM หรือ Flood Risk Layer เพื่อวิเคราะห์เชิงพื้นที่