为什么 writeRaster() 函数在导出 ebird 栅格数据时出现错误:外部指针无效?

问题描述 投票:0回答:1

我想将 ebird 相对丰度栅格导出为 TIFF 文件,但遇到此错误:外部指针无效,我不知道为什么。

这是我的代码:

library(terra)
library(ebirdst)

set_ebirdst_access_key("q1kum0g8p0k")
# download data, Anas acuta
ebirdst_download_status(species = "Anas acuta")

# load relative abundance raster 
abd <- load_raster("Anas acuta", resolution = "27km",product = "abundance",
                   period = "full-year"
                   )

writeRaster(abd, filename = "ebrid_test.tif")

我只是想从 ebird 保存物种全年相对丰度栅格。

r save raster
1个回答
0
投票

这似乎与您的设置有关。可能是“terra”安装错误。我建议使用 RGui 或命令行(不要使用 R-Studio)在一个干净的完全空的会话中重新安装“terra”。提供示例时,您还应该从一个干净的会话开始,并显示发生的所有输出(包括“terra”的打印版本号)。

我明白了

library(ebirdst)
set_ebirdst_access_key("q1kum0g8p0k")
ebirdst_download_status(species = "Anas acuta")
abd <- load_raster("Anas acuta", resolution = "27km",product = "abundance", period = "full-year")
abd
#class       : SpatRaster 
#dimensions  : 626, 1502, 1  (nrow, ncol, nlyr)
#resolution  : 26665.26, 26665.28  (x, y)
#extent      : -20015109, 20036111, -6684911, 10007555  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +R=6371007.181 +units=m +no_defs 
#source      : norpin_abundance_full-year_mean_27km_2022.tif 
#name        : full_year 
#min value   :    0.0000 
#max value   :  108.6695 

还有

x <- terra::writeRaster(abd, filename = "ebrid_test.tif", overwrite=TRUE)
x
#class       : SpatRaster 
#dimensions  : 626, 1502, 1  (nrow, ncol, nlyr)
#resolution  : 26665.26, 26665.28  (x, y)
#extent      : -20015109, 20036111, -6684911, 10007555  (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +R=6371007.181 +units=m +no_defs 
#source      : ebrid_test.tif 
#name        : full_year 
#min value   :    0.0000 
#max value   :  108.6695 


library(terra)
#terra 1.7.78
© www.soinside.com 2019 - 2024. All rights reserved.