Returns municipalities of Spain sf POLYGON` at a specified scale.
esp_get_munic()uses GISCO (Eurostat) as source. Please usegiscoR::gisco_attributions().
esp_get_munic_siane()uses CartoBase ANE as source, provided by Instituto Geografico Nacional (IGN), http://www.ign.es/web/ign/portal. Years available are 2005 up to today.
Usage
esp_get_munic(
year = "2019",
epsg = "4258",
cache = TRUE,
update_cache = FALSE,
cache_dir = NULL,
verbose = FALSE,
region = NULL,
munic = NULL,
moveCAN = TRUE
)
esp_get_munic_siane(
year = Sys.Date(),
epsg = "4258",
cache = TRUE,
update_cache = FALSE,
cache_dir = NULL,
verbose = FALSE,
resolution = 3,
region = NULL,
munic = NULL,
moveCAN = TRUE,
rawcols = FALSE
)Source
IGN data via a custom CDN (see https://github.com/rOpenSpain/mapSpain/tree/sianedata).
Arguments
- year
Release year. See Details for years available.
- epsg
projection of the map: 4-digit EPSG code. One of:
"4258": ETRS89."4326": WGS84."3035": ETRS89 / ETRS-LAEA."3857": Pseudo-Mercator.
- cache
A logical whether to do caching. Default is
TRUE. See About caching.- update_cache
A logical whether to update cache. Default is
FALSE. When set toTRUEit would force a fresh download of the source file.- cache_dir
A path to a cache directory. See About caching.
- verbose
Logical, displays information. Useful for debugging, default is
FALSE.- region
A vector of names and/or codes for provinces or
NULLto get all the municipalities. See Details.- munic
A name or
regexexpression with the names of the required municipalities.NULLwould return all municipalities.- moveCAN
A logical
TRUE/FALSEor a vector of coordinatesc(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.- resolution
Resolution of the polygon. Values available are
"3","6.5"or"10".- rawcols
Logical. Setting this to
TRUEwould add the raw columns of the resulting object as provided by IGN.
Value
A sf POLYGON.
Details
The years available are:
esp_get_munic():yearcould be one of "2001", "2004", "2006", "2008", "2010", "2013" and any year between 2016 and 2019. SeegiscoR::gisco_get_lau(),giscoR::gisco_get_communes().esp_get_munic_siane():yearcould be passed as a single year ("YYYY" format, as end of year) or as a specific date ("YYYY-MM-DD" format). Historical information starts as of 2005.
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 (Province, Autonomous Community or NUTS1), all the municipalities of that level would be added.
About caching
You can set your cache_dir with esp_set_cache_dir().
Sometimes cached files may be corrupt. On that case, try re-downloading
the data setting update_cache = TRUE.
If you experience any problem on download, try to download the
corresponding .geojson file by any other method and save it on your
cache_dir. Use the option verbose = TRUE for debugging the API query.
Displacing the Canary Islands
While moveCAN is useful for visualization, it would alter the actual
geographic position of the Canary Islands. When using the output for
spatial analysis or using tiles (e.g. with esp_getTiles() or
addProviderEspTiles()) this option should be set to FALSE in order to
get the actual coordinates, instead of the modified ones. See also
esp_move_can() for displacing stand-alone sf objects.
See also
giscoR::gisco_get_lau(), base::regex().
Other political:
esp_codelist,
esp_get_can_box(),
esp_get_capimun(),
esp_get_ccaa(),
esp_get_comarca(),
esp_get_country(),
esp_get_gridmap,
esp_get_nuts(),
esp_get_prov(),
esp_get_simpl_prov()
Other municipalities:
esp_get_capimun(),
esp_munic.sf
Examples
# \donttest{
# Get munics
Base <- esp_get_munic(year = "2019", region = "Castilla y Leon")
# Provs for delimiting
provs <- esp_get_prov(prov = "Castilla y Leon")
# Load population data
data("pobmun19")
# Arrange and create breaks
Base_pop <- merge(Base, pobmun19,
by = c("cpro", "cmun"),
all.x = TRUE
)
br <- sort(c(
0, 50, 100, 200, 500,
1000, 5000, 50000, 100000,
Inf
))
Base_pop$cuts <- cut(Base_pop$pob19, br, dig.lab = 20)
# Plot
library(ggplot2)
ggplot(Base_pop) +
geom_sf(aes(fill = cuts), color = NA) +
geom_sf(data = provs, fill = NA, color = "grey70") +
scale_fill_manual(values = hcl.colors(length(br), "cividis")) +
labs(
title = "Population in Castilla y Leon",
subtitle = "INE, 2019",
fill = "Persons"
) +
theme_void()
# }
