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

关于geomorph包读取TPS数据时负数值被转为NA的原因咨询

问题原因与解决办法

我来帮你拆解这个问题——当用geomorph包的readland.tps()读取TPS文件时,负数坐标被转换成NA,核心原因和两个关键点有关:

1. TPS格式的传统约定

传统的TPS文件(比如用TPSdig工具生成的)是基于图像像素坐标设计的,像素坐标的原点在图像左上角,X、Y轴的数值都是非负的。readland.tps()的默认逻辑遵循了这个传统规范,所以当遇到负数坐标时,会直接判定为无效值,自动转为NA。

2. 函数的默认参数设置

readland.tps()有一个默认参数negNA = TRUE,这个参数的作用就是将负数坐标转换为NA。这是函数为了兼容传统TPS文件的标准格式而设置的默认行为,避免不符合规范的坐标干扰后续的形态学分析。


解决办法

只需要在调用readland.tps()时,手动将negNA参数设置为FALSE,就能保留负数坐标,不会被转为NA:

install.packages("geomorph")
library(geomorph)
# 修改negNA参数为FALSE,保留负数坐标
LM1 <- readland.tps("LM1.TPS", specID = "ID", negNA = FALSE)

如果你的TPS文件是由非TPSdig的工具生成的(比如坐标原点设在图像中心,允许正负坐标),这个设置就完全适用,能正常读取所有坐标值。

内容的提问来源于stack exchange,提问作者T.P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:06:00