gpt4 book ai didi

R 包错误获取 ("rgeos",envir = .MAPTOOLS_CACHE) : object 'rgeos' not found

转载 作者:行者123 更新时间:2023-12-04 08:50:45 26 4
gpt4 key购买 nike

我是 R 及其包系统的新手,刚刚编写了我的第一个包,目的是将它与 OpenCPU 一起使用。

执行这个函数时:

#' Create a PNG which shows interpolated senseMap Data
#'
#' @export
#' @import jsonlite
#' @import sp
#' @import gstat
#' @import rgeos
#' @import maptools
#' @param JSON

inteRidwTest <- function(input){
### JSON to data.frame ###
oSeM_df <- input
### data.frame to spatialPointsDataFrame ###
coordinates(oSeM_df) =~longitude+latitude
### adding CRS to the data ###
proj4string(oSeM_df)="+proj=longlat +datum=WGS84"
project_df=spTransform(oSeM_df, CRS("+proj=longlat +datum=WGS84"))
### creating a bounding box ###
bbox <- bbox(oSeM_df)
### creating a grid based on the bbox ###
x.range <- as.numeric(c(floor(bbox[1]), ceiling(bbox[3]))) # min/max longitude of the interpolation area
y.range <- as.numeric(c(floor(bbox[2]), ceiling(bbox[4])))# min/max latitude of the interpolation area
grd <- expand.grid(x = seq(from = x.range[1], to = x.range[2], by = 0.1), y = seq(from = y.range[1], to = y.range[2], by = 0.1))
coordinates(grd) <- ~x + y
gridded(grd) <- TRUE
grdSp <- as(grd, "SpatialPolygons")
### adding CRS to grid ###
proj4string(grdSp)="+proj=longlat +datum=WGS84"
grd_df=spTransform(grdSp, CRS("+proj=longlat +datum=WGS84"))
### setting up basegrid for the png ###
grdSp.union <- unionSpatialPolygons(grd_df, rep("x", length(slot(grd_df,"polygons"))))
llGRD <- GE_SpatialGrid(grdSp.union)
llGRD_in <- over(llGRD$SG, grdSp.union)
llSGDF <- SpatialGridDataFrame(grid = slot(llGRD$SG,"grid"), proj4string = CRS(proj4string(llGRD$SG)), data = data.frame(in0 = llGRD_in))
llSPix <- as(llSGDF, "SpatialPixelsDataFrame")
### IDW ###
llSPix$pred <- idw(value ~ 1, oSeM_df, llSPix)$var1.pred
return(llSPix$pred)
# ### create the png ###
# png(file = "idw.png", width = llGRD$width,height = llGRD$height, bg = "transparent")
# par(mar = c(0, 0, 0, 0), xaxs = "i", yaxs = "i")
# image(llSPix, "pred", col = bpy.colors(20, alpha=0.7))
# dev.off()
}

使用此输入:https://gist.githubusercontent.com/mdragunski/643a8557a4a0e37d30a1/raw/02d26c3ce83ee0c0c704b7c53984c640002c331f/oSeM-Data-processed.json

抛出以下错误:

OpenCPU error HTTP 400 object 'rgeos' not found

In call: get("rgeos", envir = .MAPTOOLS_CACHE)

尝试在本地使用此包和函数时抛出相同的错误。如果在我的 inteRsense 包之前安装并添加了 rgeos 包,它会按预期工作。

错误似乎与我的包导入的 rgeos 和 maptools 包有关,我想在使用我的包时更改这些包的导入顺序。但我不知道如何在 NAMESPACE 文件中执行此操作:

# Generated by roxygen2: do not edit by hand

export(helloWorld)
export(inteRidw)
export(inteRidwTest)
import(gstat)
import(jsonlite)
import(maptools)
import(rgeos)
import(sp)

所以我想我的问题是:如何更改 R 包中的 NAMESPACE 文件?但我真的很感激任何帮助。

最佳答案

如何更改R包中的NAMESPACE文件?

要更改 R 包中的 NAMESPACE 文件,您必须:

  1. 从可用来源(如 maptools package link)下载包源 *.tar 或 *.zip
  2. 编辑 NAMESPACE 文件并添加一行说明要导入的包或函数/包
  3. 编辑 DESCRIPTION 文件并将包添加到 'depends' 或 'imports' 字段
  4. 重新构建包

问题是更改将是本地的,您必须自己分发修改后的包。

在这种情况下,也许最好的解决方案是联系软件包的维护者,看看是否可以解决问题并更新 cran 存储库中的软件包。

但是我遇到了同样的问题。我收到此错误:

Error in get("rgeos", envir = .MAPTOOLS_CACHE) : object 'rgeos' not found

当我正在开发的包调用 maptools 函数“unionSpatialPolygons”时。我正在处理的包同时导入了 maptools 和 rgeos 包,但仍然失败。如果用户手动加载 maptools 包,则一切正常。

所以另一个临时解决方案是在加载包后加载 maptools 包。

更新

我编辑了我正在处理的包的 DESCRIPTION 文件。我将“maptools”包从“imports”字段移到了“depends”字段,问题似乎消失了!

关于R 包错误获取 ("rgeos",envir = .MAPTOOLS_CACHE) : object 'rgeos' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com