По определению readOGR в документации:
https://www.rdocumentation.org/packages/rgdal/versions/1.4-3/topics/readOGR
readOGR
импортируйте SpatialPolygonsDataFrame, если у вас есть многоугольник. SpatialLinesDataFrame, если у вас есть линии и точки, если нет. Это то, что мы можем проверить с помощью следующего кода для полигонов:
library(GISTools)
library(rgdal) # for readOGR
library(raster) # for shapefile function
Мы создаем полигональный пространственный объект, как в:
https://rstudio-pubs-static.s3.amazonaws.com/202536_7a122ff56e9f4062b6b012d9921afd80.html
x_coord <- c(16.48438, 17.49512, 24.74609, 22.59277, 16.48438)
y_coord <- c(59.736328125, 55.1220703125, 55.0341796875, 61.142578125, 59.736328125)
xym <- cbind(x_coord, y_coord)
p = Polygon(xym)
ps = Polygons(list(p),1)
sps = SpatialPolygons(list(ps))
class(sps)
У нас есть SpatialPolygon, который отличается от SpatialPolygonsDataFrame, мы можем экспортировать его как файл формы:
shapefile(sps, filename = 'sps')
Когда мы импортируем его с помощью readOGR
в наш текущий каталог, мы получаем объект SpatialPolygonsDataFrame:
sps_import <- readOGR("sps")
class(sps_import)
В том же духе мы можем экспортировать объект SP1 и повторно импортировать его с помощью readOGR
, мы видим, что у нас есть тот же тип объекта.
centroids <- coordinates(sps)
x <- centroids[,1]
y <- centroids[,2]
z <- 1.4 + 0.1*x + 0.2*y + 0.002*x*x
SP1 <- SpatialPolygonsDataFrame(sps,
data = data.frame(x = x, y = y, z = z,
row.names = row.names(sps)))
plot(sps)
points(centroids)
writeOGR(obj=SP1, dsn="tempdir", layer="SP1", driver="ESRI Shapefile") # this is in geographical projection
import <- readOGR("tempdir/SP1.shp")
class(import)
class(SP1)
person
Rémi Coulaud
schedule
02.05.2019
SP
в шейп-файл и прочитать его обратно с помощьюreadOGR
. - person hrbrmstr   schedule 19.08.2016