我有九个光栅层(.tif),每个需要有相同的范围,分辨率和CRS的工作在Maxent。我尝试过将每一层转换成相同的CRS,并将它们转换成QGIS的.asc格式。之后,我尝试重采样R中的层以匹配其中的一个层,但这会导致错误,例如区域不重叠。我的问题是,如何匹配所有这些层,以便继续使用Maxent,并在R中使用“堆栈”函数?
下面是带有栅格的zip文件:https://drive.google.com/file/d/1lle95SPdQ7FyQSbFoFvmAzyuO2HUt7-L/view?usp=sharing
发布于 2022-02-23 15:26:56
因此,最初的问题是使用光栅包中的“crs”函数来设置crs(我还没有使用新的terra软件包)。然后,您需要重新设计到同一个crs中。下一步是对光栅进行重采样,使它们都具有相同的单元分辨率和大小。最后你可以把它们放进一堆里。我当时很忙,所以我没有很好的评论,但是如果你有问题,请告诉我。最后一点是基岩档案。您需要首先使用QGIS或其他程序来对其进行地理参考。试着找一张地图,地图上有一个与之相似的已知投影。
library(raster)
ls = list.files(".",pattern ="tif")
ls = ls[-which(ls == "bedrock.tif")]
r = lapply(ls,raster)
names(r) = ls
wgs84 = "+proj=longlat +datum=WGS84 +no_defs"
ETRS = "+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs"
crs(r$wc2.1_2.5m_bio_1.tif) = wgs84
crs(r$wc2.1_2.5m_bio_12.tif) = wgs84
crs(r$wc2.1_2.5m_elev.tif) = wgs84
crs(r$SBPC1.tif) = ETRS
crs(r$SBPC2.tif) = ETRS
crs(r$SPPC1.tif) = ETRS
crs(r$SPPC2.tif) = ETRS
crs(r$U2018_CLC2018_V2020_20u1.tif) = ETRS
# aggregate for faster processing -- you'll want to change this, but my machine couldn't process it
ra <- lapply(r,aggregate,fact=10, fun=max)
# not all need to be reprojected - this is me being lazy
rp = lapply(ra,projectRaster, crs = ETRS)
# resample rasters to match
sapply(rp,area)
rpr = lapply(rp,resample, y = rp$SBPC1.tif)
sapply(rpr,area)
rs = stack(rpr)
plot(rs)https://stackoverflow.com/questions/71236193
复制相似问题