我正在尝试使用marmap包从深水对象中创建栅格。代码是-
加载夏威夷测深数据 数据(夏威夷)
用作栅格 r.hawaii <-as.raster(hawaii)
我得到这个结果- UseMethod(“ as.raster”)中的错误: 没有将适用于'as.raster'的方法应用于“ bathy”类的对象 但在下面的代码中似乎可以正常工作- https://rdrr.io/cran/marmap/man/as.raster.html
答案 0 :(得分:0)
这是因为marmap程序包中的通用功能处理不当(掩盖)。您可以通过先加载raster包,然后再加载marmap包来避免此问题。 (这也令人困惑,因为它使用as.raster
而不是raster
;因为默认的as.raster
来自grDevices,并且不会创建RasterLayer)
library(marmap)
#Registered S3 methods overwritten by 'adehabitatMA':
# method from
# print.SpatialPixelsDataFrame sp
# print.SpatialPixels sp
#Registered S3 methods overwritten by 'ggplot2':
# method from
# [.quosures rlang
# c.quosures rlang
# print.quosures rlang
#
#Attaching package: ‘marmap’
#
#The following object is masked from ‘package:grDevices’:
#
# as.raster
data(hawaii)
r <- as.raster(hawaii)
现在加载栅格数据包,它将失败
library(raster)
#Loading required package: sp
r <- as.raster(hawaii)
#Error in UseMethod("as.raster") :
# no applicable method for 'as.raster' applied to an object of class "bathy"
如果可以,那么事情就可以解决
library(raster)
library(marmap)
data(hawaii)
r <- as.raster(hawaii)