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