
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-sfSi 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-devlibrary(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.gpkgTambié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.