2013-10-04 6 views
0

"Handling shape files in the spatstat package" by Adrian Baddeley 자습서를 따라 가면서 SpatialPolygonsDataFrame과 같은 모양이 owin의 모음으로 변환됩니다.as.owin의 오류 spatstat 패키지의 모양 파일 처리 R

모양의 핵심 속성은 아래에 요약되어 있으며 내 목표는 점 집합이 다각형 모음 내에 있는지 테스트하는 것입니다.

요약 (모양)가 907 개 폴리곤을 가지고

Object of class SpatialPolygonsDataFrame 
Coordinates: 
     min  max 
x -43.13679 -42.95351 
y -22.98961 -22.85380 
Is projected: FALSE 
proj4string : [+proj=longlat +ellps=GRS80 +no_defs] 

여기에 제안 된 변환

cp <- as(shape, "SpatialPolygons") 
cregions <- slot(cp, "polygons") 
cregions <- lapply(cregions, function(x) { SpatialPolygons(list(x)) }) 
cwindows <- lapply(cregions, as.owin) 

는하지만 오류를 얻을

Error in as.owin.default(X[[1L]], ...) : Can't interpret W as a window 

아이디어가 있습니까? 감사합니다

+0

'class (cregions)'에게 무엇을 얻습니까? 'SpatialPolygons' 로의 변환이나'polygon'에서 의도하지 않은 무언가가있을 수 있습니다. –

답변

0

나는 똑같은 오류 메시지를 받았습니다 :

class(cregions[[1]]) 

[1] "SpatialPolygons" ATTR ("패키지") [1] "SP"나는에 있다고 생각

을 토폴로지에서 오류가 발생합니다. 나는이와 (abeit 만든) 기능을 작동 할 수있어 :

fixholes = function(sp.obj) { 
    require(rgeos) 
    require(stringr) 
    if(!inherits(sp.obj, "SpatialPolygons")) stop("Input object must be of class SpatialPolygons") 
    pls = slot(sp.obj, "polygons") 
    pls1 = lapply(pls, checkPolygonsHoles) 
    slot(sp.obj, "polygons") = pls1 
    return(sp.obj) 
} 

난 후 사용하는 함수를 만들어 아드리안 바 델리의 "를 spatstat 패키지 형태 Fi를 레 처리"에 루틴 자세한 예를 들면 다음과 같습니다

spdf2owin = function(spdf) { 
    cp <- as(spdf, "SpatialPolygons") 
    cregions <- slot(cp, "polygons") 
    cregions <- lapply(cregions, function(x) { fixholes(SpatialPolygons(list(x))) }) 
    cwindows <- lapply(cregions, as.owin) 
    ch <- hyperframe(window=cwindows) 
    ch <- cbind.hyperframe(ch, [email protected]) 
    return(ch) 
} 

,

cregions = spdf2owin(columbus)

나를 위해 일했다!