将对象转换为栅格的问题

时间:2019-05-03 04:32:11

标签: macos

我正在尝试使用marmap包从深水对象中创建栅格。代码是-

加载夏威夷测深数据 数据(夏威夷)

用作栅格 r.hawaii <-as.raster(hawaii)

我得到这个结果- UseMethod(“ as.raster”)中的错误:   没有将适用于'as.raster'的方法应用于“ bathy”类的对象 但在下面的代码中似乎可以正常工作- https://rdrr.io/cran/marmap/man/as.raster.html

1 个答案:

答案 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)