在斜多边形内生成网格

时间:2020-09-28 21:15:22

标签: sf rgdal

任何人都可以指导我解决以下问题:我必须生成一个网格(我需要使用的点为中心)。与我一直使用通用贴图工具(GMT)求解的情况相反,我想在R中进行。但是,品脱需要遵循多边形的角度遵循正态分布。我举了一个例子来说明我的问题-谢谢你的想法。enter image description here

有了这个主意,我设法部分解决(Creating a regular polygon grid over a spatial extent, rotated by a given angle)。但是,我有一个多边形(带有地理坐标),该多边形应适合点。该图显示了应该与多边形一起出现的点,但是网格没有旋转,因此这些点没有均匀分布。

  library(sf)
  rotang = 45
  rot = function(a) matrix(c(cos(a), sin(a), -sin(a), cos(a)), 2, 2)
  tran = function(geo, ang, center) (geo - center) * rot(ang * pi / 180) + center
  inpoly <- st_read(system.file("shape/nc.shp", package="sf"))[1,] %>% 
  sf::st_transform(3857) %>% 
   sf::st_geometry()
   center <- st_centroid(st_union(inpoly))
   grd <- sf::st_make_grid(tran(inpoly, -rotang, center), cellsize = 3000)
   grd_rot <- tran(grd, rotang, center)
   plot(inpoly, col = "blue")
   plot(grd_rot, add = TRUE)

'''

0 个答案:

没有答案