将点转换为R中的网格
convert point to a grid in R
我有经纬度
locs <- structure(list(Latitude = 0.176094639, Longitude = 117.4955225), row.names = 1L, class = "data.frame")
我想将其转换为尺寸为 5 公里 X 5 公里的正方形多边形网格并保存 shapefile。我似乎无法在 R 中找到一个函数来执行此操作,想知道是否有人做过
类似的工作?
假设您提供的点是您想要的网格中心,
- 使点成为 sf 对象
- 缓冲2.5公里
- 获取缓冲区的边界框
- 制作一个网格(下面使用 10x10)
- 写入 shapefile(注释掉)
library(sf)
library(tidyverse) # pipe & plotting
locs <- structure(list(Latitude = 0.176094639, Longitude = 117.4955225), row.names = 1L, class = "data.frame")
# Make the point an sf object
locs_sf <- locs %>%
st_as_sf(coords = c('Longitude', 'Latitude')) %>%
st_set_crs(4326)
# get the bounding box of a 2500m buffered circle around the point
box <- st_buffer(locs_sf, 2500) %>%
st_bbox() %>%
st_as_sfc()
# make a 10x10 grid of the bounding box
grid <- st_make_grid(box, n = c(10,10))
# Use st_write() to write your shapefile
#st_write(grid, '/path/to/file.shp')
ggplot() +
geom_sf(data = locs_sf, color = 'red', size = 5) +
geom_sf(data = grid, fill = NA, color = 'black')
由 reprex package (v2.0.1)
于 2022-03-24 创建
我有经纬度
locs <- structure(list(Latitude = 0.176094639, Longitude = 117.4955225), row.names = 1L, class = "data.frame")
我想将其转换为尺寸为 5 公里 X 5 公里的正方形多边形网格并保存 shapefile。我似乎无法在 R 中找到一个函数来执行此操作,想知道是否有人做过 类似的工作?
假设您提供的点是您想要的网格中心,
- 使点成为 sf 对象
- 缓冲2.5公里
- 获取缓冲区的边界框
- 制作一个网格(下面使用 10x10)
- 写入 shapefile(注释掉)
library(sf)
library(tidyverse) # pipe & plotting
locs <- structure(list(Latitude = 0.176094639, Longitude = 117.4955225), row.names = 1L, class = "data.frame")
# Make the point an sf object
locs_sf <- locs %>%
st_as_sf(coords = c('Longitude', 'Latitude')) %>%
st_set_crs(4326)
# get the bounding box of a 2500m buffered circle around the point
box <- st_buffer(locs_sf, 2500) %>%
st_bbox() %>%
st_as_sfc()
# make a 10x10 grid of the bounding box
grid <- st_make_grid(box, n = c(10,10))
# Use st_write() to write your shapefile
#st_write(grid, '/path/to/file.shp')
ggplot() +
geom_sf(data = locs_sf, color = 'red', size = 5) +
geom_sf(data = grid, fill = NA, color = 'black')
由 reprex package (v2.0.1)
于 2022-03-24 创建