2014-01-19 5 views
0

저는 R이 처음이므로 프로그래밍의 새로운 기능이 있습니다. 내가 R로 가져온 shapefile을 가지고 Spatial Polygons Data Frame이라는 것을 알았습니다. 나는 spatstat에서 crossdist 함수를 사용하기를 원하지만 그 전에 이것을 owin으로 변환하고 psp 클래스로 변환하려고 시도하고 있습니다.이 문제를 해결하기 위해 읽은 방법입니다. 내 문제는 내 데이터를 owin으로 변환하는 방법을 모르겠다는 것입니다. 이 문제를 해결하는 방법에 대한 도움을 주시면 감사하겠습니다. 감사.공간 폴리곤 데이터 프레임을 OWIN으로 변환

+0

PSP는 선분의 ​​집합입니다 참조? – mdsumner

답변

1

당신이 찾고있는 것이 확실치 않지만 도움이됩니까?

setwd("<directory with shapefile>") 

library(rgdal) 
library(spatstat) 
# polygon TIGER/Line shapefile of US States (Census Bureau) 
US.States <- readOGR(dsn=".",layer="tl_2013_us_state") 
# centroids of each state 
centroids <- data.frame(coordinates(US.States)) 
# distance from every state to every other state 
dist.matrix <- crossdist(centroids$X1,centroids$X2, centroids$X1,centroids$X2) 
dist  <- data.frame(State=US.States$NAME,dist.matrix) 
colnames(dist)[-1] <- as.character(dist$State) 
# dist[1:5,1:5] 
#   State West Virginia Florida Illinois Minnesota 
# 1 West Virginia  0.000000 10.32684 8.662579 15.618328 
# 2  Florida  10.326844 0.00000 13.422915 21.373925 
# 3  Illinois  8.662579 13.42292 0.000000 8.015524 
# 4  Minnesota  15.618328 21.37393 8.015524 0.000000 
# 5  Maryland  3.938274 11.95297 12.516987 19.011532 

이 예제의 shapefile은 here입니다.

1

SpatialPolygons 또는 SpatialPolygonsDataFrame 객체는 몇 개의 별개의 공간 영역 목록을 나타냅니다. owin 객체는 하나의 공간 영역 (아마도 여러 개의 분리 된 부분으로 이루어져있을 수 있음)을 나타냅니다. 하와이.

owin 개체의 목록에 SpatialPolygonsDataFrame (말 x를) 변환하려면 : 결과 winlist가리스트

y <- as(x, "SpatialPolygons") 
p <- slot(y, "polygons") 
v <- lapply(p, function(z) { SpatialPolygons(list(z)) } 
winlist <- lapply(v, as.owin) 

은 각 항목에 다각형 지역 중 하나를 나타내는 'owin'객체이다 엑스. spatstat 패키지 형 vignette('shapefiles')을로드 R을 시작 SpatialPolygonsDataFrame 개체 섹션을 볼 : 추가 정보

은 쉐이프 파일에 spatstat 림 참조. 자세한 내용

, 나는 당신이 점, 선, 다각형 또는 이들의 혼합물을 원하는 여부에 혼란 스러워요, the book on spatstat.

관련 문제