【问题标题】:Create points from a grid using R使用 R 从网格创建点
【发布时间】:2016-05-04 03:26:13
【问题描述】:

我希望实现一个.csv文件,其中包含与plot上每个网格正方形中心对应的坐标列表。

我已经能够映射 polygon 并覆盖 grid,但是我不确定 a) 在每个网格正方形的中心绘制点和 b) 提取坐标需要什么从要点 - 尽管后者应该在 a) 完成后退出。

网格图如下所示:

任何建议将不胜感激。

  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)

【问题讨论】:

  • coordinates(NGSA.grid) 会给你一个坐标矩阵吗?我不知道,因为我们没有您的数据,所以我们无法运行您的代码。请尝试使用我们都可以使用的数据做一个示例,例如来自sprgdal 包的示例数据。

标签: r sp


【解决方案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)

【讨论】:

  • 太完美了!感谢您的详细回复
猜你喜欢
  • 2014-03-16
  • 2017-03-17
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 2022-10-18
  • 1970-01-01
相关资源
最近更新 更多