18, มิ.ย. 2020
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 เพื่อวิเคราะห์เชิงพื้นที่

ใส่ความเห็น

Related Posts