एक spatialpolygon gSimplify द्वारा सरलीकृत के साथ राइटॉग


12

मैं एक gSimplifyशेफाइल की ज्यामिति को सरल बनाने के लिए (rgeos पैकेज) का उपयोग कर रहा हूं । फंकी अच्छा काम करता है, लेकिन अब मैं आउटपुट को नए आकार में नहीं लिख सकता। मैंने कुछ तरीके आजमाए:

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

मुझे मिला

obj एक SpatialPointsDataFrame, SpatialLinesDataFrame या SpatialPolygonsDataFrame होना चाहिए

और साथ:

writePolyShape(simplyshape, file)

मुझे मिला:

त्रुटि: (x, "SpatialPolygonsDataFrame") TRUE नहीं है

जवाबों:


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")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.