使用纬度和经度信息将位置分配给阿富汗的地区

Using latitude and longitude information to assign locations to districts in Afghanistan

我想弄清楚如何根据纬度和经度信息将 ICEWS 中记录的暴力事件的位置分配给阿富汗的地区。

我查看了相关答案,但它们似乎侧重于基于纬度和经度信息的确定国家和大陆,而不是地方行政单位。此外,推荐的数据来源主要涵盖西方国家。

因此,我正在寻找一种方法来识别特定事件的地理位置落在哪个地区的边界内。我的目标是获取地区名称的字符串字符 e。这将作为新变量添加到数据集中。

使用阿富汗境内的采样点:

library(rnaturalearth)
library(dplyr)
library(sf)

afg_states <- ne_states(country = 'Afghanistan', 
                        returnclass = 'sf') %>%
  select(name, name_en)

set.seed(42)
sampled_points <- st_sample(afg_states, 10) %>% st_as_sf()

joined <- st_join(sampled_points, afg_states)

joined

#######################################
Simple feature collection with 10 features and 2 fields
geometry type:  POINT
dimension:      XY
bbox:           xmin: 62.42672 ymin: 32.72415 xmax: 71.09772 ymax: 37.57243
CRS:            +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0
         name    name_en                  geometry
1      Paktya     Paktia POINT (69.73146 33.93802)
2      Ghazni     Ghazni  POINT (67.96463 32.8195)
3  Badakhshan Badakhshan POINT (71.09772 37.57243)
4       Hirat      Herat POINT (62.42672 33.32973)
5      Takhar     Takhar  POINT (69.9511 36.91266)
6  Badakhshan Badakhshan POINT (70.64361 35.99117)
7       Balkh      Balkh   POINT (67.08079 36.678)
8       Balkh      Balkh POINT (67.14635 36.88358)
9      Bamyan     Bamyan POINT (67.32936 34.82846)
10    Paktika    Paktika POINT (68.55867 32.72415)
###########################################

mapview::mapview(joined) + afg_states