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