gpt4 book ai didi

r - 如何按纬度过滤 sf 对象?

转载 作者:行者123 更新时间:2023-12-04 16:28:47 25 4
gpt4 key购买 nike

数据

我有一个安大略省边界的形状文件,我阅读如下:

library(sf)
library(here)
ontario <- sf::st_read(here::here("data", "messy_data", "Ontario.shp"), quiet = TRUE) %>%
st_transform(4326)

它可以绘制如下:

enter image description here



我要保留 ontario数据仅适用于 latitude < 51 .但既然是 sf对象, dplyr::filter(latitude < 51)不起作用。我知道我可以用 st_coordinates() 提取坐标,但我怎样才能将它们加入到数据中以过滤掉更高的海拔?
或者, sf 中是否有任何功能?我可以用来做过滤器吗?我查看了帮助,但到目前为止找不到任何相关内容。

最佳答案

让我们从 GADM 数据中获取加拿大:

library(raster)
library(sf)
cdn = getData("GADM",country="can",level=1)

这应该是安大略省:
ont = cdn[9,]
ont$NAME_1

转换为 sf目的:
ont = st_as_sf(ont)

现在开始营业 - 裁剪到北纬 51 度:
ont_south = st_crop(ont, xmin=-180, xmax=180, ymin=-90, ymax=51)
plot(ont_south$geometry)

enter image description here

关于r - 如何按纬度过滤 sf 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com