Tôi có một đám mây điểm nằm rải rác trong không gian 2D Euclide. Tôi muốn tính toán diện tích bên trong đa giác liên kết các điểm cực nhất (= ngoại vi) của đám mây. Nói cách khác, tôi muốn ước tính diện tích được bao phủ bởi đám mây trong không gian này. Có công thức nào trong R không? Cảm ơn bạn rất nhiều vì đã trả lời JulienDiện tích được bao phủ bởi một đám mây điểm với R
8
A
Trả lời
15
Điều này được gọi là vấn đề lồi; R được xây dựng trong chull
chức năng nên làm công việc. Để tính diện tích, bạn có thể sử dụng công thức từ here.
CHỈNH SỬA: Tốt hơn nữa; splancs
gói có chức năng areapl
. Vì vậy, các chức năng giải quyết vấn đề của bạn sẽ giống như thế này:
cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}
Ví dụ:
library(splancs);
x<-rnorm(20);rnorm(20)->y;
#Some visualization
i<-chull(x,y);plot(x,y);polygon(x[i],y[i]);
#The area
cha(x,y);
'rgeos :: gArea' làm việc với các lớp học tạo ra để xử lý các vấn đề về không gian (xem gói' sp'). Có thể đáng khám phá theo hướng đó. –