簡體   English   中英

為什么R scale {raster}函數提供的輸出與在PythonWin中縮放相同柵格的輸出不同?

[英]Why does R scale{raster} function give a different output than scaling the same raster in PythonWin?

我已經使用R和PythonWin來空間應用統計模型。 我在兩個程序中創建了相同的預測柵格,輸出不同(不是瘋狂不同但不同)。 我想知道兩個預測柵格之間的差異是否可能是由於縮放問題(我必須在我的柵格中縮放值,因為我縮放了我正在應用的模型中的變量)?

我有大型光柵文件,23546列x 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

如果我通過減去平均值並除以標准偏差來縮放相同柵格的值,則得到相同的輸出。 沒有驚喜。

X<-cellStats(inputras, mean)
Y<-cellStats(inputras, sd)
outras2<-(inputras-X)/Y
cellStats(outras2, mean)
# returns 7.874414e-17
cellStats(outras2, sd)
#returns 1

如果我在PythonWin中使用arcpy.GetRasterProperties為同一個柵格執行此操作,我會得到不同的輸出。

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的輸出方法不同? 提前感謝您對此事的任何想法。

你有沒有檢查一下

X<-cellStats(inputras, mean)
Y<-cellStats(inputras, sd)

返回相同

X=float(arcpy.GetRasterProperties_management (inputras, "MEAN").getOutput(0))
Y=float(arcpy.GetRasterProperties_management (inputras, "STD").getOutput(0))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM