您可以像这样从头开始创建对象:
library(terra)
r <- rast()
s <- rast(ncols=22, nrows=25, nlyrs=5, xmin=0)
请参阅?terra::rast 了解您可以使用的其他参数和替代方法。
您也可以使用 R 附带的文件。例如:
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)
您还可以从头开始创建一个新的 SpatRaster,其属性(大部分)与返回的属性相同
as.character(r)
然后用类似的东西重新创建它
r <- rast(ncols=95, nrows=90, nlyrs=1, xmin=5.74166666666667, xmax=6.53333333333333, ymin=49.4416666666667, ymax=50.1916666666667, names=c('elevation'), crs='GEOGCRS[\"WGS 84\",DATUM[\"World Geodetic System 1984\",ELLIPSOID[\"WGS 84\",6378137,298.257223563,LENGTHUNIT[\"metre\",1]]],PRIMEM[\"Greenwich\",0,ANGLEUNIT[\"degree\",0.0174532925199433]],CS[ellipsoidal,2],AXIS[\"geodetic latitude (Lat)\",north,ORDER[1],ANGLEUNIT[\"degree\",0.0174532925199433]],AXIS[\"geodetic longitude (Lon)\",east,ORDER[2],ANGLEUNIT[\"degree\",0.0174532925199433]],ID[\"EPSG\",4326]]')
r <- init(r, "cell")
如果您无法使用示例数据复制您的错误,这可能会为您提供有关问题的提示。和NAs 有关系吗?文件在磁盘上?文件格式?一种棘手的情况是,如果实际文件大得多,则会出现差异。您可以通过设置terraOptions(todisk=TRUE) 并在函数中使用steps 参数来模拟大文件,例如
b <- clamp(x, steps=5)
如果这些都不允许您复制错误,那么您最后的手段是提供文件的链接,以便其他人可以下载它。如果你不能这样做,那么至少show SpatRaster 的内容x 和show(x) 并提供代码以使用as.character(x) 创建类似的对象