我不知道如何解决这个问题,有人有什么建议吗?
我在投影光栅时遇到问题。 我收到消息了
警告:PROJ 支持由 sf 和 terra 包等提供项目中的错误(r,“+proj=longlat +datum=WGS84”):xy 不是数字
对于两个项目栅格
projected <- project(r, "+proj=longlat +datum=WGS84")
# Warning: PROJ support is provided by the sf and terra packages among others
# Error in project(r, "+proj=longlat +datum=WGS84") : xy not numeric
# Project raster
projected <- project(r, elevation)
# Warning: PROJ support is provided by the sf and terra packages among others
# Error in project(r, elevation) : xy not numeric
elevation
#class : SpatRaster
#dimensions : 12000, 9600, 1 (nrow, ncol, nlyr)
#resolution : 0.008333333, 0.008333333 (x, y)
#extent : -20, 60, -60, 40 (xmin, xmax, ymin, ymax)
#coord. ref. : lon/lat WGS 84 (EPSG:4326)
#source : Elev_gtopo30_Africa.tif
#name : Elev_gtopo30_Africa
#min value : -407
#max value : 5825
下面的示例代码直接来自文档(Package 'terra'---December 15, 2023---Type Package---Title Spatial Data Analysis---Version 1.7-65 ---Date 2023-12-14 )对于函数“project”也给出了相同的错误,所以我不知道如何解决这个问题,有人有任何建议吗?
library(terra)
library(sf)
packageVersion("terra")
#[1] ‘1.7.55’
## SpatRaster
a <- rast(ncols=40, nrows=40, xmin=-110, xmax=-90, ymin=40, ymax=60,
crs="+proj=longlat +datum=WGS84")
values(a) <- 1:ncell(a)
newcrs="+proj=lcc +lat_1=48 +lat_2=33 +lon_0=-100 +datum=WGS84"
b <- rast(ncols=94, nrows=124, xmin=-944881, xmax=935118, ymin=4664377, ymax=7144377, crs=newcrs)
w <- project(a, b)
#Error in project(a, b) : xy not numeric
#In addition: Warning message:
#PROJ support is provided by the sf and terra packages among others
当您遇到这样的问题时,请在新会话中启动 R,不要加载任何内容,没有包,没有数据。请参阅
ls()
和 sessionInfo()
。只需加载几个基础包。
然后尝试该示例(您会发现它有效)。
在您的情况下,问题是您在加载“terra”后加载了(过时的)rgdal 包。两个包都有一个
project
方法,最后加载的包的版本隐藏了另一个。
通过显式使用可以看出这是问题所在
w <- terra::project(a, b)
而不是
w <- project(a, b)