2016-05-04 137 views
1

我希望能實現.csv文件,其中包含與plot上每個網格正方形的中心對應的座標列表。使用R創建網格中的點使用R

我已經能夠映射polygon並覆蓋了一個grid,但我不確定a)在每個網格正方形的中心繪製點,並且b)從點提取座標 - 儘管一旦a)完成後,它就會掉下來。

網格劃分如下:

Grid Plot

任何建議,將不勝感激。

First we need to make a regular grid 
     NGSA.grid=spsample(NGSA.union, n = 1000, type="regular", nsig = 2, offset = c(0.5,0.5),pretty = FALSE) 
     str(NGSA.grid) 
     gridded(NGSA.grid)=TRUE 
     plot(NGSA.grid,pch=19,cex=0.1,col="green",axes=TRUE) 
     plot(NGSA.OGR, add=TRUE, pch=16, cex=0.5) 
     proj4string(NGSA.grid)==proj4string(NGSA.OGR) 
+0

是否'座標( NGSA.grid)'給你一個座標矩陣?我無法分辨,因爲我們沒有你的數據,所以我們不能運行你的代碼。請嘗試用我們可以使用的數據作爲例子,例如'sp'或'rgdal'軟件包中的示例數據。 – Spacedman

回答

1

首先按照?readOGR創建我將在這裏使用的scot_BNG對象。

然後創建網格對象:

> scotgrid = spsample(scot_BNG, n=1000, type="regular", nsig=2, pretty=FALSE) 
> gridded(scotgrid)=TRUE 

然後coordinates功能讓你在網格中心。請注意,您可以在之前使用以上創建的對象scotgrid,您使其成爲gridded對象。此時它的一個SpatialPoints對象。總之:

> head(coordinates(scotgrid)) 
      x1  x2 
[1,] 211728.1 535835.7 
[2,] 247407.1 535835.7 
[3,] 238487.4 544755.4 
[4,] 247407.1 544755.4 
[5,] 265246.6 544755.4 
[6,] 274166.3 544755.4 

如果你想繪製了你可以只使用points,其提取的細胞網格單元中心繪製之前座標:

> plot(scotgrid) 
> points(scotgrid,pch=19,col="red",cex=.25) 

points in grid cells

+0

非常完美!感謝您的詳細回覆 –