18, มิ.ย. 2020
R-studio : ( EP#13 ) สร้าง DEM (ตอนที่ 2/3) รูปแบบ Voronoi และ Hexagonal ด้วยโปรแกรม R

R-studio : ( EP#13 ) สร้าง DEM (ตอนที่ 2/3) รูปแบบ Voronoi และ Hexagonal ด้วยโปรแกรม R นำข้อมูลจุด Excel จากตอน EP#12 มาประมวลผลต่อในตอนนี้ เพื่อนำมาจำลองเป็น Digital Elevation Model ในรูปแบบ Voronoi และ Hexagonal ด้วยโปรแกรม R
ในตอน EP#13 นี้ เราจะต่อยอดจากข้อมูลพิกัดจุดความสูงที่เตรียมไว้ใน EP#12 โดยนำมาสร้างแบบจำลอง Digital Elevation Model (DEM) ในรูปแบบของ Voronoi Polygons และ Hexagonal Grid ซึ่งเหมาะสำหรับงานวิเคราะห์เชิงพื้นที่ที่ต้องการจัดโซนหรือทำข้อมูลพื้นผิวภูมิประเทศให้มีความละเอียดแบบเชิงเซลล์ (cell-based surface model)

เตรียมข้อมูลจุดความสูง เพื่อนำมาจำลองเป็น Digital Elevation Model ด้วยโปรแกรม R

 

แหล่งข้อมูล R markdown script สำหรับ DEM # 2/3 https://docs.google.com/forms/d/e/1FAIpQLSe4bsYI8OPKIt02cDusACXVHXyEvoMV4xO7aFUoAi1bNi-oIw/viewform

 

 

🧭 เป้าหมายของตอนที่ 2/3: สร้าง DEM ด้วย Voronoi และ Hexagonal

  • แสดงความสูงในรูปแบบ Voronoi Diagram
  • แสดงความสูงในรูปแบบ Hexbin Mapping
  • เชื่อมโยงค่าความสูง (elevation) กับ cell polygon
  • เตรียมข้อมูลสู่ขั้นตอน Interpolation แบบต่อเนื่องใน EP#14

📥 ดาวน์โหลดสคริปต์ R markdown

🔗 EP#13 DEM – Voronoi & Hexagonal Script


🧰 แพ็กเกจที่ต้องติดตั้ง

rCopyEditinstall.packages(c("deldir", "sp", "sf", "ggplot2", "hexbin", "ggvoronoi"))

🧪 ตัวอย่างโค้ดสร้าง Voronoi Polygon

rCopyEditlibrary(ggvoronoi)
library(readxl)
library(ggplot2)

# อ่านข้อมูล
elevation_data <- read_excel("elevation_points.xlsx")

# สร้าง Voronoi Diagram
ggplot(elevation_data, aes(x = longitude, y = latitude, fill = elevation)) +
  geom_voronoi(color = "white", size = 0.25, outline = NULL) +
  scale_fill_viridis_c() +
  theme_minimal() +
  labs(title = "Voronoi Elevation Map", fill = "Elevation (m)")

🧪 ตัวอย่างโค้ดสร้าง Hexagonal Elevation Map

rCopyEditlibrary(hexbin)
library(ggplot2)

# สร้าง Hexbin
ggplot(elevation_data, aes(x = longitude, y = latitude, z = elevation)) +
  stat_summary_hex(bins = 20, fun = mean, aes(fill = after_stat(z))) +
  scale_fill_viridis_c() +
  theme_minimal() +
  labs(title = "Hexagonal Elevation Grid", fill = "Elevation (m)")

🎯 เหมาะกับการนำไปใช้

รูปแบบจุดเด่นการประยุกต์
Voronoiชัดเจนในการแบ่งเขตอิทธิพลวิเคราะห์ catchment area หรือสถานีวัด
Hexbinคำนวณความหนาแน่นหรือค่าต่อเซลล์ได้ดีสร้าง Grid สำหรับ Hydrology, Ecology

🔜 ในตอนถัดไป EP#14

  • จะใช้ค่าความสูงจุด (Z) เพื่อ Interpolation แบบต่อเนื่อง
  • สร้าง DEM ด้วยเทคนิค IDW, Kriging
  • วิเคราะห์ slope / aspect จาก DEM

ใส่ความเห็น

Related Posts