2013-02-22 45 views
2

我有兩個二維文件(柵格)具有相同的尺寸:第一個代表2個數據之間的相關性,第二個代表10個類別的土地覆蓋圖。我想根據土地覆蓋類別取我的相關性的平均值。所以最後我們會得到一張和土地覆蓋圖一樣的地圖,但是平均相關性而不是類數。如何根據另一個二進制文件中的類來計算一個二進制文件中變量的平均值?

下面是兩個文件:

1- to read the first file correlation map: 

    conne <- file("C:\\corr.bin","rb") 
    corr<- readBin(conne, numeric(), size=4, n=1440*720, signed=TRUE) 
    y<-t(matrix((data=corr), ncol=720, nrow=1440)) 
    r = raster(y) 

2-讀取第二文件土地覆蓋圖:

conne <- file("C:\\land cover.bin","rb") 
    over<- readBin(conne, integer(), size=1, n=1440*720, signed=F) 
    y1<-t(matrix((data=over), ncol=720, nrow=1440)) 
    r1 = raster(y1) 

3-寫的結果:

 to.write = file(paste("/orcomplete.bin",sep=""),"wb") 
    writeBin(as.double(results), to.write, size = 4) 

回答

1

不會告發這就像是:

tapply(y, y1, mean, na.rm=TRUE) 

如果你想在類均值進行相同的佈置相關聯的輸入矩陣,然後做到這一點:

outmat <- matrix(ave(y, y1, FUN=mean, na.rm=TRUE), nrow(y), ncol(y)) 
+1

我很驚訝你有這麼大的文件。 (也讓你感到驚訝,認爲它會更大。)你說'y1'只有10個班級。我會預測你只能得到長度爲10的矢量。頭部(結果)是什麼樣的? – 2013-02-22 19:36:19

+0

如果你想讓類的平均值與數據的排列方式相同,那麼我會以不同的方式進行。上面編輯。 – 2013-02-22 21:01:45

+0

我不明白你在暗示什麼。 – 2013-02-22 21:10:00

1

如果土地覆蓋光柵具有地理參照特徵,你想保持(例如,投影信息) ,你可以從光柵工具箱使用分區工具:

corr_raster <- raster('correlation raster filename') 
land_raster <- raster('landcover raster filename') 
zv <- zonal(corr_raster , land_raster, fun=mean) 

然後,所有你需要做的就是從分配結果表平均值的土地覆蓋像素。柵格包有很多替代方法來做到這一點(例如重新分類函數)。

相關問題