मेरे पास बहुभुजों की एक आकृति है और एक अन्य बिंदु है जो बहुभुजों पर वितरित किया जाता है। मैं इसमें शामिल बिंदुओं के आधार पर प्रत्येक बहुभुज के लिए कर्नेल घनत्व अनुमान बनाना चाहता हूं। दुर्भाग्य से मैं केवल MASS पैकेज से kde2d फ़ंक्शन के साथ वर्ग KDE बनाने में सक्षम था। मैं चाहता हूं कि केडीई को बहुभुज के रूप में आकार दिया जाए। कोई सुझाव?

 kde1 <- kde2d(poly$X, poly$Y, n=100,)

छवि विवरण यहां दर्ज करें

1
Naama 27 जिंदा 2021, 17:02

2 जवाब

सबसे बढ़िया उत्तर

इसके लिए आप spatstat पैकेज का उपयोग कर सकते हैं। यहाँ पढ़ने का एक उदाहरण है sf से एक आकृति में, यादृच्छिक बिंदु उत्पन्न करना और कर्नेल घनत्व चलाना अंक की तीव्रता का अनुमान (प्रति इकाई क्षेत्र अंक):

library(sf)
#> Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
nc <- st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source `/usr/lib/R/site-library/sf/shape/nc.shp' using driver `ESRI Shapefile'
#> Simple feature collection with 100 features and 14 fields
#> geometry type:  MULTIPOLYGON
#> dimension:      XY
#> bbox:           xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> geographic CRS: NAD27
nc_flat <- st_transform(nc, crs = 26917)
W <- as.owin(nc_flat$geometry[1]) # First county of North Carolina data set in spatstat format

library(spatstat)
X <- runifpoint(100, win = W)
plot(X, "Random points")

D <- density(X)
plot(D, main = "KDE")

1
Ege Rubak 28 जिंदा 2021, 20:04

ठीक है! मैं स्पैटस्टैट पैकेज से 'पीपीपी' फ़ंक्शन का उपयोग करके अपने स्वयं के बिंदुओं का उपयोग करने में कामयाब रहा।

  C <- as.owin(polygon$geometry[n])

  p<- ppp(points$X,points$Y, window = C)

  D <- density(p)
[enter image description here][1]


  [1]: https://i.stack.imgur.com/YZN0V.png
0
Naama 1 फरवरी 2021, 20:03