我有一个8个环境变量的raster.stack和美国南部的Ecoregions形状文件
files<-list.files(path='E:/Ecoregions Models/Border Bioclim/',pattern='asc', full.names=TRUE)
predictors<-stack(files)
##subset the main shape file into 12 individual shapefiles for the regions of interest
ER_11.1<-Level.2.ecoregs[Level.2.ecoregs$NA_L2CODE=="11.1",]...
我试图使用extract
函数从每个生态区域中提取5,000个随机点并将它们保存为不同的对象。
我无法将单个生态区域对象投影到光栅文件上。 我已经改变了预测,但仍然存在问题。
>bio_1
class : RasterLayer
dimensions : 324, 444, 143856 (nrow, ncol, ncell)
resolution : 0.08333333, 0.08333333 (x, y)
extent : -125, -88, 18.5, 45.5 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=48 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : E:\Ecoregions Models\Border Bioclim\ModelVariables\bio_1.asc
names : bio_1
> ER_11.1
class : SpatialPolygonsDataFrame
nfeatures : 22
extent : -1989641, -1450736, -1748693, -208349.6 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=48 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
nvariables : 8
names : NA_L2CODE, NA_L2NAME, NA_L1CODE, NA_L1NAME, NA_L2KEY, NA_L1KEY, Shape_Leng, Shape_Area
min values : 11.1, MEDITERRANEAN CALIFORNIA, 11, MEDITERRANEAN CALIFORNIA, 11.1 MEDITERRANEAN CALIFORNIA, 11 MEDITERRANEAN CALIFORNIA, 331.1174, 1.483274e+08
max values : 11.1, MEDITERRANEAN CALIFORNIA, 11, MEDITERRANEAN CALIFORNIA, 11.1 MEDITERRANEAN CALIFORNIA, 11 MEDITERRANEAN CALIFORNIA, 5417939.1114, 8.472524e+04
>
这里的问题必须在不同的范围内。 有没有人对如何在光栅包中解决这个问题有任何建议?
答案 0 :(得分:1)
bio_1的CRS显然是错误的,你有
resolution : 0.08333333, 0.08333333 (x, y)
extent : -125, -88, 18.5, 45.5 (xmin, xmax, ymin, ymax)
即美国大部分地区的经度/纬度坐标,但您正在使用
coord. ref. : +proj=utm +zone=48 +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
可能是因为您更改了投影名称,而您想要转换(投影)数据?您可以这样做:
将bio_1的CRS恢复为原始值(我推测)
projection(bio_1) <- "+proj=longlat +datum=WGS84"
将多边形转换为相同的CRS
library(rgdal)
ER <- spTransform(ER_11.1, CRS(projection(bio_1)) )
现在提取值:
v <- extract(bio_1, ER)