为什么我不能在 terra::rast 中添加日期作为标题?
Why can I not add a date as a title in terra::rast?
我正慢慢从 raster
过渡到 terra::rast
,我发现我无法在标题中添加日期。我已经想出了一个解决方法(重新分配给角色),但我想知道为什么它在 raster
中工作时不起作用?错误消息信息量不大。
这是一个例子:
dates <- seq(as.Date("2015-06-24"), as.Date("2016-01-01"), by=1)
test <- terra::rast(nrows=100, ncols=100, xmin=0, xmax=100, ymin=0, ymax=100,
crs="+proj=utm +zone=46 +datum=WGS84 +units=m +no_defs",
resolution=10)
values(test) <- runif(10000)
plot(test, col=viridis::plasma(11), main=dates[4], breaks = c(seq(0, 1, by=0.1)))
Error in if (main != "") { : missing value where TRUE/FALSE needed
此代码在执行以下操作时有效:
plot(test, col=viridis::plasma(11), main=as.character(dates[4]),
breaks = c(seq(0, 1, by=0.1)))
想法?
错误正是问题所在。在代码中的某个位置,main
参数被测试以查看它是否是带有行 if(main != "")
的空字符串 ""
。但是将 Date
class 对象与空字符串进行比较会给出缺失值 NA
结果:
Sys.Date() == ""
# [1] NA
并且 if()
语句在你给它 NA
:
时抛出一个错误
if(NA){}
# Error in if (NA) { : missing value where TRUE/FALSE needed
所以代码假设 main
是一个 character
class 对象。这是记录在案的,main
参数的 ?terra::plot
描述是:
character
. Main plot titles (one for each layer to be plotted)
幸运的是(见评论),似乎最近添加了对日期的支持,因此您可以从 Github 安装新版本!
我正慢慢从 raster
过渡到 terra::rast
,我发现我无法在标题中添加日期。我已经想出了一个解决方法(重新分配给角色),但我想知道为什么它在 raster
中工作时不起作用?错误消息信息量不大。
这是一个例子:
dates <- seq(as.Date("2015-06-24"), as.Date("2016-01-01"), by=1)
test <- terra::rast(nrows=100, ncols=100, xmin=0, xmax=100, ymin=0, ymax=100,
crs="+proj=utm +zone=46 +datum=WGS84 +units=m +no_defs",
resolution=10)
values(test) <- runif(10000)
plot(test, col=viridis::plasma(11), main=dates[4], breaks = c(seq(0, 1, by=0.1)))
Error in if (main != "") { : missing value where TRUE/FALSE needed
此代码在执行以下操作时有效:
plot(test, col=viridis::plasma(11), main=as.character(dates[4]),
breaks = c(seq(0, 1, by=0.1)))
想法?
错误正是问题所在。在代码中的某个位置,main
参数被测试以查看它是否是带有行 if(main != "")
的空字符串 ""
。但是将 Date
class 对象与空字符串进行比较会给出缺失值 NA
结果:
Sys.Date() == ""
# [1] NA
并且 if()
语句在你给它 NA
:
if(NA){}
# Error in if (NA) { : missing value where TRUE/FALSE needed
所以代码假设 main
是一个 character
class 对象。这是记录在案的,main
参数的 ?terra::plot
描述是:
character
. Main plot titles (one for each layer to be plotted)
幸运的是(见评论),似乎最近添加了对日期的支持,因此您可以从 Github 安装新版本!