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

问题描述

我正在尝试找出如何根据纬度和经度信息将暴力事件的地点(记录在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
         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 

enter image description here