gSimplify로 단순화 된 공간 폴리곤을 사용한 writeOGR


12

gSimplify(rgeos 패키지)를 사용하여 셰이프 파일의 형상을 단순화하고 있습니다. 기능은 잘 작동하지만 이제 새 모양 파일로 출력을 쓸 수 없습니다. 나는 몇 가지 방법을 시도했다.

writeOGR(simplyshape, file, driver="ESRI Shapefile", layer='test')

나는 얻다

obj는 SpatialPointsDataFrame, SpatialLinesDataFrame 또는 SpatialPolygonsDataFrame이어야합니다.

와 함께 :

writePolyShape(simplyshape, file)

나는 얻다:

오류 : is (x, "SpatialPolygonsDataFrame")이 참이 아닙니다

답변:


8

Spatial*DataFrame예를 들어 다음을 SpatialPolygons사용 하기 위해 객체를 적절한 클래스 (점 / 선 / 다각형)로 강제 변환합니다 as(x, "SpatialPolygonsDataFrame" ).

R> l <- readWKT("LINESTRING(0 7,1 6,2 1,3 4,4 1,5 7,6 6,7 4,8 6,9 4)")
R> x1 <- gSimplify(p, tol=10)
R> class(x1)
[1] "SpatialPolygons"
attr(,"package")
[1] "sp"
R> x2 <- as(x, "SpatialPolygonsDataFrame")
R> class(x2)
[1] "SpatialPolygonsDataFrame"
attr(,"package")
[1] "sp"

5

SpatialPolygons수업을 수업 으로 전환해야합니다 SpatialPolygonsDataFrame. 예를 들면 다음과 같습니다.

require(rgdal)
require(rgeos)

# Read shapefile
shp = 'C:/temp/myshp.shp'
myshp = readOGR(shp, layer = basename(strsplit(shp, "\\.")[[1]])[1])

# Read shapefile attributes
df = data.frame(myshp)

# Simplify geometry using rgeos
simplified = gSimplify(myshp, tol = 1000, topologyPreserve=FALSE)

# Create a spatial polygon data frame (includes shp attributes)
spdf = SpatialPolygonsDataFrame(simplified, df)

# Write to shapefile
writeOGR(spdf, layer = 'myshp_simplified', 'C:/temp', driver="ESRI Shapefile")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.