我可以通过指定坐标在 R 中裁剪 shapefile 周围的区域吗?

Can I clip an area around a shapefile in R by specifying the coordinates?

我在 R 中有一张土地覆盖数据地图,想剪裁一个特定区域的圆,比如 20 公里,然后提取生成的圆形 shapefile。

# read in the shape file, assign the CRS and plot it
area <- readShapePoly("Corrine Land Use ITM Projection - Copy.shp", proj4string = CRS("+init=epsg:2157"))
plot(area, xlim = c(560000,600000), ylim = c(530000,580000), axes=TRUE)

# create a dataframe of the location where the buffer should be made and plot it
locations<-data.frame(latitude=584503.3,longitude = 560164.5)
points(locations, bg='tomato2', pch=21, cex=3)

在执行此操作之前是否需要先将我的点更改为坐标系? 形状文件是 Corine Landcover 2012 - National http://gis.epa.ie/GetData/Download

谢谢

@Manassa:我相信你在剪辑之前需要确保shapefile和栅格在同一个投影中,然后你可以使用栅格库中的裁剪功能。请注意,输出将是裁剪后的栅格,而不是原始问题中所述的 shapefile。

# Reproject shapefile to same projection as the raster
#shp = shapefile
#r = raster
library(rdgal)
shp.reproject <- spTransform(shp, crs(r))

#crop raster with polygon
library(raster)
r.crop <- crop(r, shp.reproject)

你的多边形

area <- shapefile("Corrine Land Use ITM Projection - Copy.shp")

您可以像这样创建一个(或多个)圈子:

library(dismo)
p <- polygons(circles(cbind(0,0), sqrt(20000 / pi), lonlat=FALSE, dissolve=FALSE))
crs(p) <- crs(area) 

相交

int <- crop(area, p)

shapefile(int, 'landcover_circle.shp')