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

R语言move包brownian.bridge.dyn函数投影匹配错误求助

问题

我协助合作者在其设备上运行R语言代码,使用move包的brownian.bridge.dyn函数为多只动物计算利用分布,代码如下:

dbb.swan <- brownian.bridge.dyn(swan_move, raster=300, ext=0.3, location.error=5, margin=15)

这段代码在我的设备上运行正常,但合作者遇到如下错误:

Error in .local(object, raster, location.error = location.error, ext = ext,  : 
  The projection of the raster and the Move object are not equal. 
 raster: +proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +units=m +no_defs 
 object: +proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +units=m +no_defs

错误信息显示栅格与Move对象的投影参数完全一致,且我们未指定栅格对象,仅设置了像元大小,推测栅格为函数自动生成,希望了解该错误的成因。

可能的成因及解决思路
  • 投影字符串的隐性差异:看似完全一致的投影字符串,可能存在字符编码、空格数量/位置差异,或参数顺序不同。虽然PROJ库理论上不关心参数顺序,但move包的内部校验可能采用严格的字符串匹配,这类细微差异会触发不匹配错误。可以尝试手动提取两者的投影字符串,用nchar()或strsplit()检查字符层面的区别。
  • 依赖包版本不一致:你与合作者的move包(或其依赖的raster、sp包)版本不同。不同版本的函数在自动生成栅格投影时的逻辑可能有变化,比如新版本增加了更严格的校验规则,或旧版本存在导致投影字符串生成不一致的bug。建议统一双方的包版本后重试。
  • 底层PROJ库版本差异:R空间包依赖系统底层的PROJ库,若两人设备上的PROJ版本不同,自动生成栅格时输出的投影字符串格式可能存在细微差别(如参数缩写、空格处理),进而触发错误。可通过rgdal::projVersion()查看PROJ版本,确认是否一致。
  • Move对象投影属性损坏:合作者的swan_move对象的投影信息可能在读取、保存或传输过程中出现隐性损坏,表面字符串一致但底层存储结构异常。可尝试用proj4string(swan_move) <- "+proj=tmerc +lat_0=0 +lon_0=173 +k=0.9996 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +units=m +no_defs"重新赋值投影信息后再运行函数。

内容的提问来源于stack exchange,提问作者james.mccarthy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 05:22:52