esp_get_munic_siane: Municipalities of Spain from SIANE

View source: R/esp-get-munic-siane.R

esp_get_munic_sianeR Documentation

Municipalities of Spain from SIANE

Description

Get boundaries of municipalities in Spain.

Usage

esp_get_munic_siane(
  year = Sys.Date(),
  epsg = 4258,
  cache = TRUE,
  update_cache = FALSE,
  cache_dir = NULL,
  verbose = FALSE,
  resolution = c(3, 6.5, 10),
  region = NULL,
  munic = NULL,
  moveCAN = TRUE,
  rawcols = FALSE
)

Arguments

year

Character string or number. Release year. It must use format YYYY (assuming end of year) or YYYY-MM-DD. Historical information starts as of 2005.

epsg

Character string or number. Projection of the map: 4-digit EPSG code. One of:

cache

Logical. Whether to cache downloaded files. Defaults to TRUE. See Caching.

update_cache

Logical. If TRUE, refreshes the cached file and forces a new download. Defaults to FALSE.

cache_dir

Character string. A path to a cache directory. See Caching.

verbose

A logical value indicating whether to display informational messages.

resolution

Character string or number. Resolution of the geospatial data. One of:

  • "10": 1:10 million.

  • "6.5": 1:6.5 million.

  • "3": 1:3 million.

region

Optional. A vector of region names, NUTS or ISO codes (see esp_dict_region_code()).

munic

Character string. A name or regex expression with the names of the required municipalities. Use NULL to return all municipalities.

moveCAN

A logical TRUE/FALSE or a vector of coordinates c(lat, lon). It places the Canary Islands close to Spain's mainland. Initial position can be adjusted using the vector of coordinates. See Displacing the Canary Islands in esp_move_can().

rawcols

Logical. If TRUE, retains the raw columns of the resulting object as provided by IGN.

Details

When using region you can use and mix names and NUTS codes (levels 1, 2 or 3), ISO codes (corresponding to level 2 or 3) or "cpro" (see esp_codelist).

When calling a higher level, such as a province, Autonomous Community, Autonomous City or NUTS 1 region, all municipalities of that level are added.

Value

A sf object.

Caching

Functions that download data store files in cache_dir. When cache_dir is NULL, they use the active package cache, which defaults to a temporary directory. Set update_cache = TRUE to replace an existing cached file. See Caching strategies in esp_set_cache_dir() to configure a persistent cache.

Note

Although mapSpain supplies cartographically suitable datasets, a historical database of Spanish municipal boundaries is also available, offering higher-resolution geometries that may be more appropriate for GIS-oriented workflows:

Source

CartoBase ANE (Atlas Nacional de España) provided by Instituto Geográfico Nacional (IGN), https://www.ign.es/web/ign/portal. Data are available from 2005 to the present.

Copyright: https://centrodedescargas.cnig.es/CentroDescargas/cartobase-ane

Always acknowledge authorship using the following statements:

  1. When the original digital product is not modified or altered, use one of the following statements:

    • CartoBase ANE 2006-2024 CC-BY 4.0 ign.es.

    • CartoBase ANE 2006-2024 CC-BY 4.0 Instituto Geográfico Nacional.

  2. When a new product is generated:

    • Obra derivada de CartoBase ANE 2006-2024 CC-BY 4.0 ign.es.

Data distributed through the sianedata data branch, see https://github.com/rOpenSpain/mapSpain/tree/sianedata.

See Also

esp_get_munic().

CartoBase ANE boundaries and utilities: esp_get_capimun(), esp_get_ccaa_siane(), esp_get_countries_siane(), esp_get_prov_siane(), esp_get_spain_siane(), esp_siane_bulk_download()

Municipality-level datasets: esp_get_capimun(), esp_get_munic()

Examples



# Municipalities that have changed in the past: three snapshots.
munis2005 <- esp_get_munic_siane(year = 2005, rawcols = TRUE)
munis2015 <- esp_get_munic_siane(year = 2015, rawcols = TRUE)
munis2024 <- esp_get_munic_siane(year = 2024, rawcols = TRUE)

# Manipulate data.
library(dplyr)
allmunis_unique <- bind_rows(munis2005, munis2015, munis2024) |>
  distinct()

id_all <- allmunis_unique |>
  sf::st_drop_geometry() |>
  group_by(id_ine, name) |>
  count() |>
  ungroup() |>
  arrange(desc(n)) |>
  slice_head(n = 1) |>
  glimpse()

library(ggplot2)
allmunis_unique |>
  filter(id_ine == id_all$id_ine) |>
  ggplot() +
  geom_sf(aes(fill = as.factor(fecha_alta)),
    alpha = 0.7,
    show.legend = FALSE
  ) +
  scale_fill_viridis_d() +
  facet_wrap(~fecha_alta) +
  labs(
    title = id_all$name,
    subtitle = "Boundary changes over time",
    fill = ""
  )



mapSpain documentation built on Aug. 31, 2026, 5:07 p.m.