2014-08-28 74 views
1

我想提取包含柵格中不同細胞中心座標的摘要向量。以下代碼有效,但我認爲涉及n平方比較操作。有沒有更有效的方法?在{raster}的指導中沒有看到任何明顯的內容。獲取柵格細胞中心的摘要向量在R

require(raster) 
r = raster(volcano) 
pts = rasterToPoints(r) 
x_centroids = unique(pts[,1]) 
y_centroids = unique(pts[,2]) 
+1

我並不完全遵循。你現在擁有的是點的唯一x和y座標。如何轉化爲質心,我不清楚。 – 2014-08-28 13:49:12

+0

也許質心不是最好的詞,但你至少正確地解釋了所需的輸出。 – geotheory 2014-08-28 14:26:02

+0

什麼是用例?提供的例子顯然運行速度非常快。你的數據集有多大? 「獨特」似乎很快達到10^5個元素,然後變慢。 – nico 2014-08-28 14:40:17

回答

2

爲了得到光柵單元的中心,你應該使用功能xFromColyFromRow和朋友(另見幫助頁面)

在這種情況下,你會得到完全相同的結果如下:

require(raster) 
r <- raster(volcano) 
x_centers <- xFromCol(r) 
y_centers <- yFromRow(r) 

請注意,這些函數實際上並沒有做太多的事,只是檢查座標的最小值和柵格的分辨率。從這兩個值,他們計算出中心的順序如下:

xmin(r) + (seq_len(ncol(r)) - 0.5) * xres(r) 

ymin(r) + (seq_len(nrow(r)) - 0.5) * xres(r) 

但你最好使用上面提到的功能,因爲這些做一點更安全檢查。

+0

謝謝,現貨。 – geotheory 2014-08-28 15:01:10