微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

包围国家的坐标BOX

如何解决包围国家的坐标BOX

我想要一套“环绕”国家的盒子。

我从未处理过地理(空间)数据,所以我不知道从哪里开始。 我知道有一个 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)

BiH bounding box

# 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。