Provides the boundaries of the provinces, cantons and parishes of Ecuador as 'sf' objects, identified by the codes of the national political-administrative division (DPA, "División Político-Administrativa"), ready to be mapped and joined with health, epidemiological surveillance or other data. The three levels nest exactly and are offered in two resolutions: a light one for maps and dashboards and a detailed one for spatial analysis. The layers are derived from the open data of the Territorial Organization of the State published by the National Committee of Internal Boundaries (CONALI, Ministry of Government of Ecuador) under a CC BY licence < https://www.datosabiertos.gob.ec/>, and are downloaded on first use as 'GeoPackage' files, verified and cached locally. Includes a catalogue of DPA codes, a table to update codes from earlier versions, helpers to clean codes and place names, and tools to relocate the Galapagos Islands in national maps. Documentation is in Spanish.

geoecu da acceso en una línea de código a las capas de provincias, cantones y parroquias del Ecuador, con los códigos de la División Político-Administrativa (DPA), listas para mapear y para unir con datos de salud, vigilancia epidemiológica o cualquier otra fuente. Las capas provienen de los datos abiertos de la Organización Territorial del Estado publicados por el CONALI (Ministerio de Gobierno).
Nota: geoecu es un paquete independiente, desarrollado a título personal. No es un producto oficial de ninguna institución, ni del CONALI ni del Ministerio de Gobierno.
"baja" (3 MB, para mapas, boletines y tableros Shiny) y
"alta" (39 MB, para análisis espacial).actualizar_codigo().📖 Documentación completa: Guía de uso · Datos y fuente · Referencia de funciones
# Desde CRAN
install.packages("geoecu")
# Versión en desarrollo
# install.packages("remotes")
remotes::install_github("f-slg/geoecu")
La primera vez que pidas una capa, geoecu descarga el GeoPackage correspondiente (unos segundos) y lo guarda en caché. Después funciona sin conexión.
geoecu depende de sf. En Windows y macOS,
CRAN ofrece sf ya compilado y se instala en un minuto. En Linux, CRAN solo
publica el código fuente y R lo compila al instalarlo, lo que puede tardar
entre 15 y 30 minutos la primera vez.
Para evitar esa espera, instala sf ya compilado desde los repositorios del
sistema antes de instalar geoecu:
# Ubuntu / Debian
sudo apt install r-cran-sf
# Fedora
sudo dnf install R-sf
Si prefieres compilarlo desde R, instala primero las librerías del sistema que necesita:
# Ubuntu / Debian
sudo apt install libgdal-dev libgeos-dev libproj-dev libudunits2-dev libssl-dev
library(geoecu)
provincias <- read_provincias()
cantones <- read_cantones(provincia = "Loja")
parroquias <- read_parroquias(canton = "Puyango", tipo = "rural")
# En UTM 17S para medir áreas o distancias en metros
loja_utm <- read_cantones(provincia = 11, crs = 32717)
# Versión detallada
parroquias_alta <- read_parroquias(provincia = "Loja", resolucion = "alta")
Cada capa es un objeto sf con estas columnas:
| Capa | Columnas |
|---|---|
read_provincias() |
dpa_provin, provincia, tipo, area_km2 |
read_cantones() |
dpa_canton, canton, tipo, dpa_provin, provincia, area_km2 |
read_parroquias() |
dpa_parroq, parroquia, tipo, dpa_canton, canton, dpa_provin, provincia, area_km2 |
La columna tipo distingue las circunscripciones ("provincia", "cantón",
"cabecera cantonal", "parroquia rural") de las zonas en estudio,
territorios con límites aún no resueltos que se incluyen para que el mapa no
tenga huecos. Para excluirlas: subset(x, tipo != "zona en estudio").
geoecu_unir() une una tabla propia con la capa por código DPA. Conserva
todos los territorios, así que los que no tienen datos aparecen como NA.
library(ggplot2)
casos <- read.csv("casos_por_canton.csv") # columnas: cod_canton, casos
mapa <- geoecu_unir(casos, codigo = "cod_canton", nivel = "canton")
ggplot(mapa) +
geom_sf(aes(fill = casos), color = "white", linewidth = 0.1) +
theme_void()
reubicar_galapagos() traslada las islas a la esquina superior izquierda,
junto al continente, y marco_galapagos() devuelve el recuadro para
dibujarlo. Funciona con los tres niveles y con capas unidas con
geoecu_unir(); si reubicas varias capas, quedan alineadas entre sí.
n_parr <- as.data.frame(table(dpa_canton = dpa$dpa_canton))
names(n_parr)[2] <- "parroquias"
mapa <- geoecu_unir(n_parr, "dpa_canton", "canton", crs = 32717) |>
reubicar_galapagos()
prov <- reubicar_galapagos(read_provincias(crs = 32717))
ggplot() +
geom_sf(data = mapa, aes(fill = parroquias), color = "white", linewidth = 0.1) +
geom_sf(data = prov, fill = NA, color = "#0F2233", linewidth = 0.3) +
geom_sf(data = marco_galapagos(prov), fill = NA, color = "grey78", linewidth = 0.3) +
scale_fill_gradientn(colours = c("#FFF4D2", "#F2C14E", "#D9822B", "#8C3B12"),
trans = "log10") +
theme_void()
El traslado es solo para visualizar: para medir áreas o distancias usa las capas sin reubicar.
head(dpa) # 1051 parroquias y zonas con sus códigos
buscar_dpa("arenal") # buscar por nombre o código
buscar_dpa("puyango", nivel = "canton")
formatear_codigo(c(701, 1101), "canton") # "0701" "1101"
normalizar_nombre("Cañar ") # "CANAR"
Desde la versión 0.4.0, geoecu usa la Organización Territorial del Estado del
CONALI, que no subdivide las cabeceras cantonales en parroquias urbanas e
incluye el cantón Borbón y nuevas parroquias rurales. Si tus tablas usan los
códigos de versiones anteriores, actualizar_codigo() los convierte y
dpa_equivalencias muestra la correspondencia completa:
actualizar_codigo(c("010101", "080253")) # "010150" (cabecera de Cuenca), "080950" (Borbón)
subset(dpa_equivalencias, cambio == "código distinto")
geoecu_usar_carpeta("C:/datos/geoecu") # carpeta con geoecu_dpa_baja.gpkg
También puedes definir GEOECU_CARPETA en tu .Renviron. Para ver o borrar
la caché: geoecu_cache_dir() y geoecu_limpiar_cache().
| Fuente | Organización Territorial del Estado, Comité Nacional de Límites Internos (CONALI), Ministerio de Gobierno del Ecuador. Versión del 17 de julio de 2026. Datos abiertos, licencia CC BY. |
| Figuras | Las imágenes de este README se generan con data-raw/03_figuras_readme.R a partir de los datos del paquete. |
| Procesamiento | Cantones y provincias construidos disolviendo las parroquias por código DPA; se excluye un polígono sin código ("ISLA"); simplificación topológica con mapshaper (10 m en alta, 250 m en baja); reproyección a WGS84. Scripts en data-raw/. |
| Cobertura | 24 provincias, 223 cantones y 1048 parroquias (223 cabeceras cantonales y 825 rurales), más 3 zonas en estudio. |
| Sistema de coordenadas | WGS84 (EPSG:4326) por defecto. |
Las parroquias urbanas forman parte de su cabecera cantonal. Las circunscripciones creadas después de la versión de origen no aparecen hasta la siguiente actualización de datos.
citation("geoecu")
Al usar los datos, cita también la fuente, como pide el CONALI:
Comité Nacional de Límites Internos (CONALI), Ministerio de Gobierno del
Ecuador. Límites territoriales de la Organización Territorial del Estado
interparroquiales, aprobados por el Directorio del CONALI en sesión ordinaria
del 24 de marzo de 2022, 17 de enero de 2023 y 13 de marzo de 2026. Datos
abiertos, licencia CC BY.
Las preguntas de uso van en Discussions, y los errores y propuestas en issues. Consulta la guía de contribución. Este proyecto sigue un código de conducta: al participar, te comprometes a respetarlo.
El código se distribuye bajo licencia MIT.
Los datos son del CONALI, con licencia CC BY; ver
inst/COPYRIGHTS.