library(mapSpain)
library(dplyr)
library(ggplot2)
library(giscoR)
# Año 2021: Peninsula y alrededores
municipios <- esp_get_munic_siane(year = "2021", moveCAN = FALSE) %>%
st_transform(25830) %>%
filter(!ine.ccaa.name %in% c("Canarias", "Balears, Illes"))
# Lineas de costa
costa <- gisco_get_coastallines(resolution = 1) %>%
st_transform(25830) %>%
st_cast("MULTILINESTRING") %>%
st_geometry()
# Acota a un bbox de España para intentar optimizar el cruce
costa_crop <- st_crop(costa, st_bbox(st_buffer(municipios, 10000)))
ggplot(costa_crop) +
geom_sf() +
geom_sf(data = municipios, fill = NA, color = "red")
# Ver si tocan
test <- municipios
# Añade un ligero buffer a la costa (100m)
costa_logi <- st_intersects(test, st_buffer(costa_crop, 100), sparse = FALSE)
munic_costa <- test[as.vector(costa_logi), ]
ggplot(munic_costa) +
geom_sf()
# Año 2021: Baleares
baleares <- esp_get_munic_siane(
year = "2021", moveCAN = FALSE,
region = "Baleares"
) %>%
st_transform(25830)
ggplot(baleares) +
geom_sf()
# Costas para canarias
costa_bal <- baleares %>%
st_union() %>%
st_cast("MULTILINESTRING")
costa_logi_bal <- st_intersects(baleares, st_buffer(costa_bal, 10), sparse = FALSE)
munic_costa_bal <- baleares[as.vector(costa_logi_bal), ]
ggplot(munic_costa_bal) +
geom_sf(fill = "red")
# Año 2021: Canarias
canarias <- esp_get_munic_siane(
year = "2021", moveCAN = FALSE,
region = "Canarias"
) %>%
st_transform(25830)
ggplot(canarias) +
geom_sf()
# Costas para canarias
costa_can <- canarias %>%
st_union() %>%
st_cast("MULTILINESTRING")
costa_logi_can <- st_intersects(canarias, st_buffer(costa_can, 10), sparse = FALSE)
munic_costa_can <- canarias[as.vector(costa_logi_can), ]
ggplot(munic_costa_can) +
geom_sf(fill = "red")
# Une todo: objeto sf (espacial)
munic_con_costa <- bind_rows(munic_costa, munic_costa_can, munic_costa_bal)
ggplot(munic_con_costa) +
geom_sf(fill = "red", color = NA)
# Si lo queremos como tabla
munic_con_costa_df <- st_drop_geometry(munic_con_costa) %>%
as_tibble()
munic_con_costa_df
#> # A tibble: 493 x 7
#> codauto ine.ccaa.name cpro ine.prov.name cmun name LAU_CODE
#> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 01 Andalucía 04 Almería 003 Adra 04003
#> 2 01 Andalucía 04 Almería 013 Almería 04013
#> 3 01 Andalucía 04 Almería 032 Carboneras 04032
#> 4 01 Andalucía 04 Almería 035 Cuevas del Almanzora 04035
#> 5 01 Andalucía 04 Almería 041 Enix 04041
#> 6 01 Andalucía 04 Almería 049 Garrucha 04049
#> 7 01 Andalucía 04 Almería 064 Mojácar 04064
#> 8 01 Andalucía 04 Almería 066 Níjar 04066
#> 9 01 Andalucía 04 Almería 075 Pulpí 04075
#> 10 01 Andalucía 04 Almería 079 Roquetas de Mar 04079
#> # ... with 483 more rows
Created on 2022-03-09 by the reprex package (v2.0.1)