首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使环境光栅层与Maxent相同的问题

使环境光栅层与Maxent相同的问题
EN

Stack Overflow用户
提问于 2022-02-23 11:35:30
回答 1查看 139关注 0票数 1

我有九个光栅层(.tif),每个需要有相同的范围,分辨率和CRS的工作在Maxent。我尝试过将每一层转换成相同的CRS,并将它们转换成QGIS的.asc格式。之后,我尝试重采样R中的层以匹配其中的一个层,但这会导致错误,例如区域不重叠。我的问题是,如何匹配所有这些层,以便继续使用Maxent,并在R中使用“堆栈”函数?

下面是带有栅格的zip文件:https://drive.google.com/file/d/1lle95SPdQ7FyQSbFoFvmAzyuO2HUt7-L/view?usp=sharing

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-23 15:26:56

因此,最初的问题是使用光栅包中的“crs”函数来设置crs(我还没有使用新的terra软件包)。然后,您需要重新设计到同一个crs中。下一步是对光栅进行重采样,使它们都具有相同的单元分辨率和大小。最后你可以把它们放进一堆里。我当时很忙,所以我没有很好的评论,但是如果你有问题,请告诉我。最后一点是基岩档案。您需要首先使用QGIS或其他程序来对其进行地理参考。试着找一张地图,地图上有一个与之相似的已知投影。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71236193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档