R 为UTM中的平面点阵列定义舍入参数

R 为UTM中的平面点阵列定义舍入参数,r,gps,digits,spatstat,R,Gps,Digits,Spatstat,我正在分析一个平面点模式,该模式是使用高分辨率GPS设备记录的,精确到~1厘米。我的数据框由UTM坐标(米)组成,小数点后两位,然后我使用同样在UTM中的研究区域多边形将其转换为ppp对象 一切都在按预期导入和打印,我可以在我要查找的ppp对象上运行任何spatstat函数。但是,将数据帧转换为ppp对象时,坐标将四舍五入到最接近的0.1 m 在创建ppp对象时,是否有方法定义/控制小数位数?我想将有效数字保留到0.01 m,以便分析相关性和间距 dat <- ppp(df[,1],df[

我正在分析一个平面点模式,该模式是使用高分辨率GPS设备记录的,精确到~1厘米。我的数据框由UTM坐标(米)组成,小数点后两位,然后我使用同样在UTM中的研究区域多边形将其转换为ppp对象

一切都在按预期导入和打印,我可以在我要查找的ppp对象上运行任何
spatstat
函数。但是,将数据帧转换为ppp对象时,坐标将四舍五入到最接近的0.1 m

在创建ppp对象时,是否有方法定义/控制小数位数?我想将有效数字保留到0.01 m,以便分析相关性和间距

dat <- ppp(df[,1],df[,2], window = poly_owin)
summary(dat)
Planar point pattern:  1755 points

*Pattern contains duplicated points*

Coordinates are given to 1 decimal place
i.e. rounded to the nearest multiple of 0.1 m
编辑2

head(coords(frypoints(dat)))
        x             y
1 10.4333 17.4160000002
2 10.6676 15.8789999997
3 14.4048 15.2609999999
4 14.2222 13.5329999998
5 13.9725 12.7280000001
6 10.7175 12.7379999999

fryplot(dat, width = 0.3)


这听起来很奇怪。在
spatstat
中,未进行四舍五入——汇总 方法只是检测坐标是否被赋予了某些属性 小数位数,然后发出此信号

库(spatstat)
df 1 0.2025274 3.458709
#> 2 9.2649444 2.272643
#> 3 5.3580148 1.270116
#> 4 8.4807510 7.745455
摘要(dat)
#>平面点模式:4点
#>平均强度每平方单位0.04点
#> 
#>坐标的小数点后7位
#> 
#>窗口:矩形=[0,10]x[0,10]单位
#>窗面积=100平方单位
df2 1 0.20 3.46
#> 2 9.26 2.27
#> 3 5.36 1.27
#> 4 8.48 7.75
摘要(dat2)
#>平面点模式:4点
#>平均强度每平方单位0.04点
#> 
#>坐标的小数点后两位
#>即四舍五入至0.01单位的最接近倍数
#> 
#>窗口:矩形=[0,10]x[0,10]单位
#>窗面积=100平方单位
请尝试将以下内容的输出添加到您的 问题

头部(df)
主管(协调人(dat))

编辑:当前
spatstat
使用
all.equal
猜测数据的舍入。然而,这只适用于8位有效数字,所以当坐标值较大时,它就被愚弄了。这并不意味着坐标实际上被截断了——只是猜测机制被愚弄了。输入数据被逐字复制。您如何观察到“一个
dat
的Fry图以10 cm的增量显示规则间距”?请报告
头部(坐标(frypoints(dat))
的输出,好吗?

spatstat
不舍入坐标数据。功能
ppp
将输入数据直接复制到点模式对象中,而无需更改数据

print.ppp
的打印输出提到舍入,因为它试图猜测数据的精度级别。猜测由
spatstat
函数
rounding
执行,该函数基本上检查给定位数
k
round(x,k)
是否与
x
相同


因此,我的解释是,尽管记录的空间坐标数据精度更高,但实际上离散到最接近的0.1 m。虽然
rounding.ppp
有时会因为数字错误而出错,但您对Fry图的描述支持相同的解释。

非常感谢您的回复。我已经将您要求的输出添加到了我的原始问题中。我还应该补充一点,UTM坐标以米为单位,并且包含的小数位数远远超过输出中显示的3或4位(尽管超过毫米的小数位数并不重要)。据我所知,输出中显示的位数由数字设置控制。再次感谢。作为第二次编辑提供的其他信息。感谢您的解释和时间。UTM坐标是原始数据还是从lat、lon转换而来?可能是转换导致了离散化?至少,
spatstat
中没有任何东西会导致这种情况。
head(coords(frypoints(dat)))
        x             y
1 10.4333 17.4160000002
2 10.6676 15.8789999997
3 14.4048 15.2609999999
4 14.2222 13.5329999998
5 13.9725 12.7280000001
6 10.7175 12.7379999999

fryplot(dat, width = 0.3)