library(sf)
library(tidyverse)
load("../histmaps/data/par_to_county.rda")
par_to_county <- par_to_county %>% as_tibble()
load("../histmaps/data/hist_parish.rda")
load("../histmaps/data/hist_county.rda")
meta <- hist_parish@data %>% as_tibble()
meta2 <- hist_county@data %>% as_tibble()
meta_parish <- meta %>%
mutate(ref_code = sprintf("SE/%09d", nadkod)) %>%
select(geomid, ref_code, nadkod, socken, grkod, dedik, dedikscb, forkod, start = from, end = tom)
overlapps <- function(x1,y1,x2,y2){
(pmin(x1, y1) <= pmax(x2, y2)) &
(pmax(x1, y1) >= pmin(x2, y2))
}
meta_parish <- meta_parish %>% left_join(par_to_county) %>%
filter(overlapps(start, end, from, tom)) %>%
mutate(id = row_number())
meta2 %>%
mutate(
ref_code = sprintf("SE/%09d", lan*1e7)
)
res <- hist_county %>% st_as_sf()
load("../histmaps/data/geom_sp.rda")
res <- st_set_crs(res, st_crs(geom_sp)) %>% mutate(
ref_code = sprintf("SE/%09d", lan*1e7),
ref_code = ifelse(lan == 27, "SE/180000004", ref_code)
)
res3 <- geom_sp %>% filter(type_id == "county") %>% histmaps::st_as_data_frame()
res3 <- res3 %>% distinct(topo_id, ref_code, name, type, type_id) %>%
mutate(ref_code = ifelse(str_detect(name, "Dalar"), "SE/200000000", ref_code))
res4 <- left_join(res, res3, by = c("ref_code"))
res4 <- res4 %>%
mutate(
geom_id = (max(geom_sp$geom_id):(max(geom_sp$geom_id)+nrow(res4)-1)+1)
)
res5 <- res4 %>%
select(
geom_id, topo_id, ref_code, name = name.x, type, type_id, start =from, end = tom
) %>%
mutate(
type_id = "county",
type = "County"
)
meta2 <- res4 %>% select(geom_id, topo_id, ref_code, lan, letter, center, name.x, name.y) %>%
histmaps::st_as_data_frame() %>% mutate(type_id = "county")
geom_sp <- geom_sp %>% filter(type_id != "county") %>%
rbind(res5)
# geom_sp <- st_transform(geom_sp, 3006)
save(geom_sp, file= "data/geom_sp.rda", compress = "xz")
# post match through intersection
meta_parish <- st_as_sf(hist_parish) %>%
mutate(ref_code = sprintf("SE/%09d", nadkod)) %>%
select(geomid, ref_code, nadkod, socken, grkod, dedik, dedikscb, forkod, start = from, end = tom)
overlapps <- function(x1,y1,x2,y2){
(pmin(x1, y1) <= pmax(x2, y2)) &
(pmax(x1, y1) >= pmin(x2, y2))
}
meta_parish <- meta_parish %>% left_join(par_to_county) %>%
filter(overlapps(start, end, from, tom)) %>%
mutate(id = row_number())
par_d <- geom_sp %>% filter(type_id == "parish")
meta_parish <- st_set_crs(meta_parish, st_crs(par_d))
d0 <- st_intersection(meta_parish, par_d)
d1 <- d0 %>% mutate(area = as.numeric(st_area(geometry)))
d2 <- d1 %>%
filter(overlapps(start.1, end.1, from, tom)) %>%
group_by(id) %>%
filter(area == max(area)) %>%
ungroup()
# d2
no_meta <- par_d %>% filter(!geom_id %in% unique(d2$geom_id)) %>% histmaps::st_as_data_frame()
manual_meta <- read_csv("data-raw/meta-manual.csv") %>% select(-name)
d3 <- d2 %>%
select(
geom_id, id, start = from, end = tom
) %>% histmaps::st_as_data_frame() %>%
bind_rows(manual_meta)
d4 <- d3 %>%
left_join(par_d %>% select(-start, -end), .)
d5 <- d4 %>%
mutate(
geom_id = (max(geom_sp$geom_id):(max(geom_sp$geom_id)+nrow(d4)-1)+1)
)
meta_p <- meta_parish %>% histmaps::st_as_data_frame() %>%
left_join(d5 %>% histmaps::st_as_data_frame() %>% select(geom_id, topo_id, name, id, type_id)) %>%
select(geom_id, type_id ,topo_id, ref_code, name.x = name, name.y = socken, nadkod, grkod:forkod, county, from, tom)
geom_p <- d5 %>% select(-id)
geom_sp2 <- rbind(geom_sp %>% filter(type_id != "parish"), geom_p) %>%
select(-topo_id)
geom_sp <- geom_sp2
all(geom_sp$geom_id[geom_sp$type_id == "parish"] %in% meta_p$geom_id[meta_p$type_id == "parish"])
all(meta_p$geom_id[meta_p$type_id == "parish"] %in% geom_sp$geom_id[geom_sp$type_id == "parish"])
geom_sp <- st_transform(geom_sp, crs = 3006)
save(geom_sp, file = "data/geom_sp.rda", compress = "xz")
geom_meta <- meta2 %>% rename(county = lan) %>%
bind_rows(meta_p)
save(geom_meta, file = "data/geom_meta.rda", compress = "xz")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.