R 如何按纬度过滤sf对象? 资料

R 如何按纬度过滤sf对象? 资料,r,sf,R,Sf,我有一个安大略省边界的形状文件,如下所示: library(sf) library(here) ontario <- sf::st_read(here::here("data", "messy_data", "Ontario.shp"), quiet = TRUE) %>% st_transform(4326) 库(sf) 图书馆(这里) 安大略省% st_变换(4326) 它可以绘制如下: 问题: 我只想保留安大略省纬度

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

library(sf)
library(here)
ontario <- sf::st_read(here::here("data", "messy_data", "Ontario.shp"), quiet = TRUE) %>%
  st_transform(4326)
库(sf)
图书馆(这里)
安大略省%
st_变换(4326)
它可以绘制如下:

问题: 我只想保留安大略省
纬度<51
数据。但由于它是一个
sf
对象,
dplyr::filter(纬度<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)

让我们从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)

你说的“保持”是什么意思?创建一个新形状,将该特征裁剪为51N?如果你能用一些常见的数据做一个可复制的例子,而不在这里使用
,这会有所帮助。你说的“保留”是什么意思?创建一个新形状,将该特征裁剪为51N?如果您能用一些常用数据制作一个可复制的示例,而不在此处使用
,这将有所帮助。谢谢。我不知道事情会这么简单!这正是我想做的。这样做的原因是我想用点数据插值天气,而在51度纬度以上只有1个气象站数据可用。谢谢。我不知道事情会这么简单!这正是我想做的。这样做的原因是我想用点数据插值天气,而在51度纬度以上只有1个气象站数据可用。