问题描述
我想要一套“环绕”国家的盒子。
我从未处理过地理(空间)数据,所以我不知道从哪里开始。
我知道有一个 st_as_sfc
函数形式 sf
包可以从现有多边形生成一组多边形,但我不确定如何为该国家/地区获取多边形以及这是否是正确的方法。
所以应该有一组坐标为'6538128.30144595,4918255.70658098,6540571.54819537,4920698.9533303995'的框
国家是波斯尼亚
解决方法
有关为波黑绘制边界框的可重现示例,请考虑以下代码;它从 gadm.org 下载波斯尼亚 shapefile - 所以一定要检查他们的条款和条件(这是一个流行的存储库,他们的条款和条件并不繁琐,但是......)
代码将返回对象 box
,其格式为 sfc,可以被 {sf} 包理解。
您可能会发现自己需要盒子的坐标;您可以通过打印框对象的 sf::st_coordinates()
来获取它们。有 5 个点,这是可以的,因为第一个和最后一个点是相同的(类似矩形的正方形是封闭的 = 它的起点和终点都在同一点/所有四个边都必须由两个点定义)。>
library(dplyr)
library(sf)
# GADM.org data for Bosna i Hercegovina
bosnia <- readRDS(url("https://biogeo.ucdavis.edu/data/gadm3.6/Rsf/gadm36_BIH_0_sf.rds"))
# get the bounding box
box <- st_bbox(bosnia) %>%
st_as_sfc() # makes the box a polygon - much easier to plot
# a visual check
plot(st_geometry(bosnia),col = "blue")
plot(box,border = "red",add = T)
# print coordinates
st_coordinates(box)
X Y L1 L2
[1,] 15.72739 42.56531 1 1
[2,] 19.61471 42.56531 1 1
[3,] 19.61471 45.27468 1 1
[4,] 15.72739 45.27468 1 1
[5,] 15.72739 42.56531 1 1