You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac上stars包st_extract设bilinear=TRUE致R崩溃求解决方案

M1芯片Mac使用stars包st_extract双线性提取时R崩溃的问题及解决办法

在搭载M1芯片的Mac设备上,调用stars包的st_extract函数并设置bilinear = TRUE进行双线性提取时,会导致R直接崩溃;但将该参数设为FALSE时,函数能正常运行。想了解是否有其他用户遇到过相同问题,以及可行的解决办法。

环境信息

> library(stars)
Loading required package: abind
Loading required package: sf
Linking to GEOS 3.10.2, GDAL 3.4.2, PROJ 8.2.1; sf_use_s2() is TRUE
> sessionInfo()
R version 4.2.2 (2022-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Monterey 12.6

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] stars_0.5-6 sf_1.0-8    abind_1.4-5

崩溃重现代码

library(stars)

rast <- st_as_stars(volcano)
pts  <- st_point(c(50, 50)) %>% st_sfc() 

# 执行此代码会导致R崩溃
st_extract(rast, pts, bilinear = TRUE)

可行的解决办法

  • 升级相关包:将stars、sf、abind等依赖包更新到最新版本,架构相关的bug常被后续版本修复。执行以下命令更新:
    update.packages(c("stars", "sf", "abind"))
    
  • 更新底层依赖库:GDAL、GEOS、PROJ的版本兼容性可能引发问题,通过Homebrew更新这些库后重新安装stars和sf:
    brew install gdal geos proj
    install.packages(c("sf", "stars"), type = "source")
    
  • 使用替代包实现双线性提取:如果必须使用双线性插值,可以用terra包的extract函数替代,之后按需转换回stars对象:
    library(terra)
    library(stars)
    
    # 转换为terra格式
    rast_terra <- rast(rast)
    pts_terra <- vect(pts)
    # 双线性提取
    result <- extract(rast_terra, pts_terra, method = "bilinear")
    # 转换回stars对象(可选)
    result_stars <- st_as_stars(result)
    
  • 提交bug报告:若以上方法无效,可在stars包的代码仓库提交issue,附上环境信息、重现代码,帮助开发者定位修复问题。

内容的提问来源于stack exchange,提问作者SimeonL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:30:51