R中的rasterToPoints不返回整数值

我正在尝试使用以下方法将栅格转换为空间点数据框:

mypts <- rasterToPoints(myraster,spatial=T) 

输入栅格“ myraster”仅采用整数值:1、2、3、4、5。但是输出mypts@data具有非整数值,例如4.638932。

我的临时解决方案是进行简单的舍入:

mydata <- round(mypts@data) # deal with floating points - temporary solution

我进行了一些搜索,发现问题在于转换后的空间点未位于像素的中心。我想这与范围有关。有人对此有建议的解决方案吗?谢谢。

iCMS 回答:R中的rasterToPoints不返回整数值

我认为您的假设是错误的。如果得到类似4.638932的值,则栅格的值不是整数。请参阅这些示例。

library(raster)
r <- raster(ncol=36,nrow=18,vals=1:(18*36))
x <- rasterToPoints(r,spatial=T) 
head(x,3)
#  layer
#1     1
#2     2
#3     3

非整数数据

rr <- sqrt(r)
xx <- rasterToPoints(rr,spatial=T) 
head(xx,3)
#     layer
#1 1.000000
#2 1.414214
#3 1.732051

要检查数据,您可以进行等效操作(舍入栅格值)

rrr <- round(rr)
xxx <- rasterToPoints(rrr,spatial=T) 
head(xxx,3)
#  layer
#1     1
#2     1
#3     2

它与单元格的中心或范围无关。

本文链接:https://www.f2er.com/2292730.html

大家都在问