问题
I have a shapefile downloaded from the worldwildlife.org for the terrestrial ecoregions of the world. The file can be loaded here: http://worldwildlife.org/publications/terrestrial-ecoregions-of-the-world.
It comes as a standard shape file and I would like to do two things with it. First: take the shapefile from my local directory and clip it to an extent of eastern North America (ext= extent (-95, -50, 24, 63))
# Read shapefile using package "maptools"
eco_shp <- readShapeLines("F:/01_2013/Ecoregions/Global/wwf_terr_ecos.shp",
proj4string=CRS("+proj=utm +zone=33 +datum=WGS84"))
# Set the desired extent for the final raster using package "raster"
ext <- extent(-95, -50, 24, 63)
I am sure I have to use the rasterize function in the package "raster" but I am still not able to get it work correctly. I would appreciate any suggestions on how to do this.
回答1:
You are right to think that you should be using raster
(rather than the sp
raster Spatial classes) for spatial raster data. You should also use rgdal
(rather than maptools
) for reading, writing, and otherwise manipulating spatial vector data.
This should get you started:
library(rgdal)
library(raster)
## Read in the ecoregion shapefile (located in R's current working directory)
teow <- readOGR(dsn = "official_teow/official", layer = "wwf_terr_ecos")
## Set up a raster "template" to use in rasterize()
ext <- extent (-95, -50, 24, 63)
xy <- abs(apply(as.matrix(bbox(ext)), 1, diff))
n <- 5
r <- raster(ext, ncol=xy[1]*n, nrow=xy[2]*n)
## Rasterize the shapefile
rr <-rasterize(teow, r)
## A couple of outputs
writeRaster(rr, "teow.asc")
plot(rr)
来源:https://stackoverflow.com/questions/14992197/shapefile-to-raster-conversion-in-r