为什么R scale{raster}函数的输出与PythonWin中缩放相同光栅的输出不同?

2024-09-27 00:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我用R和PythonWin在空间上应用了一个统计模型。我在两个程序中创建了相同的预测光栅,并且输出的结果是不同的(不是疯狂的不同,而是不同的)。我想知道这两个预测光栅之间的差异是否是由于缩放问题(我必须缩放光栅中的值,因为我缩放了我应用的模型中的变量)?在

我有23546列9157行的大光栅文件,30 x 30单元格大小,浮动像素类型。如果我使用scale{raster}缩放R中的光栅值,则输出的平均值为7.9e-17和stdev 1。在

inputras<-raster(file)
outras1<-scale(inputras)
cellStats(outras1, mean)
# returns 7.874414e-17
cellStats(outras1, sd)
# returns 1

如果我通过减去平均值并除以标准差来缩放同一光栅的值,我得到相同的输出。不奇怪。在

^{pr2}$

如果我用Python做这个arcpy.getras解释对于同一个光栅,我得到了不同的输出。在

inputras=arcpy.Raster(file)
X=float(arcpy.GetRasterProperties_management (inputras, "MEAN").getOutput(0))
Y=float(arcpy.GetRasterProperties_management (inputras, "STD").getOutput(0))
outras=(inputras-X)/Y
A=arcpy.GetRasterProperties_management (outras, "MEAN")
B=arcpy.GetRasterProperties_management (outras, "STD")
print A, B
#returns a mean of -6.8e-8 and a stdev of 0.999

我应该指出,对于所有输出,最小值和最大值是相同的。在

为什么在使用(据我所知)相同的缩放值的方法时,R和PythonWin的输出的方法不同?提前感谢您对此事的任何想法。在


Tags: 模型光栅managementreturnsfile平均值scaleraster

热门问题