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

时间:2016-06-09 11:23:17

标签: r coordinates gis spatial shapefile

我在R中有一张landcover数据地图,想要剪切一个特定区域的圆圈,比如20km,然后提取得到的圆形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

谢谢

2 个答案:

答案 0 :(得分:1)

你的多边形

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')

答案 1 :(得分:0)

@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)