我遇到了get.depth问题。我在W7上使用R 3.1.1和marmap 0.8。 我在SO上找到的示例和其他脚本工作正常但下面给出了错误或奇怪的输出。
library(marmap)
search()
gombathy<-getNOAA.bathy(-98, -79, 18,32)
glat<-seq(27,29,1)
glon<-rep(-93,length(glat))
data.frame(glon,glat)
get.depth(gombathy, x=glon, y=glat, locator=FALSE)
glat<-seq(27,30,1)
glon<-rep(-93,length(glat))
data.frame(glon,glat)
get.depth(gombathy, x=glon, y=glat, locator=FALSE)
输出:
[1] ".GlobalEnv" "package:marmap" "package:stats" "package:graphics" "package:grDevices" "package:utils" "package:datasets"
[8] "package:stringr" "package:methods" "Autoloads" "package:base"
Querying NOAA database ...
This may take seconds to minutes, depending on grid size
Building bathy matrix ...
glon glat
1 -93 27
2 -93 28
3 -93 29
Error in `$<-.data.frame`(`*tmp*`, "Depth", value = c(-1323L, -1284L, :
replacement has 4 rows, data has 3
glon glat
1 -93 27
2 -93 28
3 -93 29
4 -93 30
Lon Lat Depth.1 Depth.2 Depth.3 Depth.4
1 -93 27 -1323 -129 -23 3
2 -93 28 -1284 -128 -23 2
3 -93 29 -1416 -104 -23 2
4 -93 30 -1259 -103 -24 0
几个小时后:
在看到Eric在Githup上的帖子之后,我在每个纬度的lon上添加了.00001,程序按预期运行。
get.depth(gombathy, x=glon, y=glat, locator=FALSE) Lon Lat Depth
1 -92.99999 27.00001 -1259
2 -92.99999 28.00001 -103
3 -92.99999 29.00001 -24
答案 0 :(得分:0)
非常感谢:你发现了一个错误!这是因为get.depth()
返回bathy
对象的单元格深度,该对象最接近请求深度的点。在你的例子中,这些点落在gombathy
的四个单元格的中间,这是造成奇怪行为的原因。
稍微改变点的坐标会导致get.depth()
的预期行为:
glat<-seq(27.1,29.1,1)
glon<-rep(-93.1,length(glat))
我更新了代码以更正错误。您可以立即从github安装新版本,或等待在CRAN上发布新版本的marmap。
install.packages("devtools")
library(devtools)
install_github("marmap","ericpante")