| Title: | Maps of the Provinces, Cantons and Parishes of Ecuador (Mapas de Provincias, Cantones y Parroquias del Ecuador) |
|---|---|
| Description: | 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. |
| Authors: | Ronald Fabricio Salas Guerrero [aut, cre, cph] |
| Maintainer: | Ronald Fabricio Salas Guerrero <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.4.0 |
| Built: | 2026-10-23 01:50:23 UTC |
| Source: | https://github.com/cran/geoecu |
Convierte códigos de parroquia de los datos de geoecu 0.3.0 y anteriores (por ejemplo, de parroquias urbanas o del antiguo cantón Eloy Alfaro) al código actual, usando la equivalencia principal de dpa_equivalencias. Los códigos vigentes se devuelven igual, aunque sus límites hayan cambiado.
actualizar_codigo(x)actualizar_codigo(x)
x |
Vector de códigos de parroquia (número o texto). |
Cuando menos del 90 % de una parroquia anterior quedó en una sola parroquia actual, se usa la de mayor superposición y se avisa: revisa dpa_equivalencias si necesitas repartir los datos.
Vector de texto con los códigos actuales. Los códigos que no
existen en ninguna versión se devuelven como NA con una advertencia.
# Parroquia urbana de Cuenca, Borbón (antes en Eloy Alfaro) y una sin cambios actualizar_codigo(c("010101", "080253", "110152")) # Agregar una tabla antigua al código actual casos <- data.frame(cod = c("010101", "010102", "010150"), casos = c(3, 4, 1)) casos$cod <- actualizar_codigo(casos$cod) aggregate(casos ~ cod, data = casos, FUN = sum)# Parroquia urbana de Cuenca, Borbón (antes en Eloy Alfaro) y una sin cambios actualizar_codigo(c("010101", "080253", "110152")) # Agregar una tabla antigua al código actual casos <- data.frame(cod = c("010101", "010102", "010150"), casos = c(3, 4, 1)) casos$cod <- actualizar_codigo(casos$cod) aggregate(casos ~ cod, data = casos, FUN = sum)
Busca por nombre (sin importar tildes ni mayúsculas) o por código en el catálogo dpa.
buscar_dpa(texto, nivel = c("parroquia", "canton", "provincia"))buscar_dpa(texto, nivel = c("parroquia", "canton", "provincia"))
texto |
Texto a buscar: parte de un nombre o un código. |
nivel |
Nivel en el que buscar: |
Un data.frame con las coincidencias en el nivel indicado.
buscar_dpa("arenal") buscar_dpa("puyango", nivel = "canton") buscar_dpa("11", nivel = "provincia")buscar_dpa("arenal") buscar_dpa("puyango", nivel = "canton") buscar_dpa("11", nivel = "provincia")
Una fila por parroquia, con sus códigos y nombres en los tres niveles. Sirve para buscar códigos, validar tablas antes de unirlas con las capas o agregar datos parroquiales a cantón o provincia sin necesidad de geometrías.
dpadpa
Un data.frame con 1051 filas y 7 columnas:
Código DPA de la parroquia (6 dígitos, texto).
Nombre de la parroquia, en mayúsculas.
"cabecera cantonal", "parroquia rural" o
"zona en estudio".
Código DPA del cantón (4 dígitos, texto).
Nombre del cantón.
Código DPA de la provincia (2 dígitos, texto).
Nombre de la provincia.
Incluye 1048 parroquias (223 cabeceras cantonales y 825 parroquias rurales)
de 223 cantones y 24 provincias, más 3 zonas en estudio (territorios con
límites aún no resueltos): Jaramijó-Manta (código "139090"),
Sinaí-Cuchaentza ("140190") y Juval ("900651", provincia "90"). Las
parroquias urbanas forman parte de su cabecera cantonal.
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:
https://www.datosabiertos.gob.ec/dataset/organizacion-territorial-parroquial.
Ver data-raw/ en el repositorio para el procesamiento completo.
dpa_equivalencias para actualizar códigos de versiones anteriores de geoecu.
head(dpa) # Número de parroquias por provincia table(dpa$provincia)head(dpa) # Número de parroquias por provincia table(dpa$provincia)
Relaciona los códigos de parroquia de los datos de geoecu 0.3.0 y
anteriores (release datos-v0.1.0) con los de la versión actual, según la
superposición de sus áreas. Útil para actualizar tablas codificadas con la
versión anterior; para hacerlo directamente, usa actualizar_codigo().
dpa_equivalenciasdpa_equivalencias
Un data.frame con 7 columnas:
Código de la parroquia en la versión anterior.
Nombre en la versión anterior.
Código de la parroquia actual.
Nombre de la parroquia actual.
Proporción del área de la parroquia anterior que cae en la actual (0 a 1).
TRUE en la parroquia actual con mayor superposición.
"sin cambio", "integrada en la cabecera cantonal" o
"código distinto".
Los cambios principales son: las parroquias urbanas pasan a formar parte de su cabecera cantonal; las parroquias del nuevo cantón Borbón (antes en Eloy Alfaro) y la cabecera de Sevilla Don Bosco cambian de código; y algunas parroquias cambian de límites o se integran en otras.
Una parroquia anterior puede repartirse entre varias actuales: hay una fila
por cada parte que cubre al menos el 1 % de su área, y principal marca la
de mayor superposición.
Elaborado en data-raw/04_equivalencias.R a partir de las capas
de alta resolución de ambas versiones.
# Parroquias que cambiaron de código subset(dpa_equivalencias, principal & cambio == "código distinto")# Parroquias que cambiaron de código subset(dpa_equivalencias, principal & cambio == "código distinto")
Devuelve códigos DPA como texto con el número correcto de dígitos,
recuperando los ceros a la izquierda que se pierden cuando un código se
guarda como número en Excel (por ejemplo, 1101 en lugar de "1101", o
701 en lugar de "0701").
formatear_codigo(x, nivel = c("parroquia", "canton", "provincia"))formatear_codigo(x, nivel = c("parroquia", "canton", "provincia"))
x |
Vector de códigos (número o texto). |
nivel |
|
Vector de texto. Los valores que no son códigos válidos se
devuelven como NA con una advertencia.
formatear_codigo(c(1, 11, "7"), "provincia") formatear_codigo(c(701, 1101), "canton") formatear_codigo(110150, "parroquia")formatear_codigo(c(1, 11, "7"), "provincia") formatear_codigo(c(701, 1101), "canton") formatear_codigo(110150, "parroquia")
Los GeoPackages descargados se guardan aquí para no volver a descargarlos.
La ubicación sigue las convenciones de cada sistema operativo
(tools::R_user_dir()).
geoecu_cache_dir()geoecu_cache_dir()
Ruta de la carpeta de caché (texto).
geoecu_cache_dir()geoecu_cache_dir()
Comprueba si el GeoPackage de la resolución indicada ya está en la carpeta local configurada o en la caché.
geoecu_datos_disponibles(resolucion = "baja")geoecu_datos_disponibles(resolucion = "baja")
resolucion |
|
TRUE o FALSE.
geoecu_datos_disponibles()geoecu_datos_disponibles()
Elimina los GeoPackages guardados en la caché. Se volverán a descargar la próxima vez que se necesiten.
geoecu_limpiar_cache()geoecu_limpiar_cache()
TRUE de forma invisible.
geoecu_limpiar_cache()geoecu_limpiar_cache()
Une una tabla (casos, tasas, coberturas, etc.) con la capa del nivel
indicado usando el código DPA. Los códigos se formatean automáticamente,
así que funciona aunque vengan como número desde Excel. Se conservan todos
los polígonos de la capa: los territorios sin datos quedan con NA, lo
que permite mapearlos.
geoecu_unir(datos, codigo, nivel = c("canton", "provincia", "parroquia"), ...)geoecu_unir(datos, codigo, nivel = c("canton", "provincia", "parroquia"), ...)
datos |
Un |
codigo |
Nombre de la columna de |
nivel |
|
... |
Otros argumentos para la función |
Un objeto sf con las columnas de la capa más las de datos.
Si hay códigos en datos que no existen en la capa, se avisa con una
advertencia.
casos <- data.frame(cod = c(1101, 1102, 1103), casos = c(12, 3, 7)) mapa <- geoecu_unir(casos, codigo = "cod", nivel = "canton", provincia = "Loja") plot(mapa["casos"])casos <- data.frame(cod = c(1101, 1102, 1103), casos = c(12, 3, 7)) mapa <- geoecu_unir(casos, codigo = "cod", nivel = "canton", provincia = "Loja") plot(mapa["casos"])
Indica a geoecu una carpeta que contiene geoecu_dpa_baja.gpkg y/o
geoecu_dpa_alta.gpkg. Útil para trabajar sin conexión, en servidores
institucionales o con datos que aún no se han publicado.
geoecu_usar_carpeta(carpeta)geoecu_usar_carpeta(carpeta)
carpeta |
Ruta a la carpeta. Usa |
También puedes definir la variable de entorno GEOECU_CARPETA (por
ejemplo, en tu .Renviron) para que la carpeta se use siempre.
La carpeta anterior, de forma invisible.
# Usar una carpeta propia y luego volver a la configuración anterior anterior <- geoecu_usar_carpeta(tempdir()) geoecu_datos_disponibles() geoecu_usar_carpeta(anterior)# Usar una carpeta propia y luego volver a la configuración anterior anterior <- geoecu_usar_carpeta(tempdir()) geoecu_datos_disponibles() geoecu_usar_carpeta(anterior)
Devuelve un rectángulo alrededor de Galápagos, pensado para dibujarlo como
un recuadro tenue después de reubicar_galapagos().
marco_galapagos(x, margen = 0.06)marco_galapagos(x, margen = 0.06)
x |
Objeto |
margen |
Margen alrededor de las islas, como proporción del ancho del
archipiélago. Por defecto |
Un objeto sfc con un polígono, en el mismo sistema de coordenadas
que x.
prov <- reubicar_galapagos(read_provincias(crs = 32717)) marco_galapagos(prov)prov <- reubicar_galapagos(read_provincias(crs = 32717)) marco_galapagos(prov)
Convierte nombres a una forma comparable: mayúsculas, sin tildes ni
diéresis, Ñ como N, sin signos de puntuación y con espacios simples.
Útil para unir tablas que escriben los nombres de forma distinta
("Cañar", "CANAR", "cañar ").
normalizar_nombre(x)normalizar_nombre(x)
x |
Vector de texto. |
Vector de texto normalizado.
normalizar_nombre(c("Cañar", " san José de Chimbo", "CHECA (JIDCAY)"))normalizar_nombre(c("Cañar", " san José de Chimbo", "CHECA (JIDCAY)"))
Devuelven un objeto sf con los límites del nivel solicitado y sus códigos
DPA, según la Organización Territorial del Estado (CONALI). Los tres niveles
encajan exactamente: cada cantón es la unión de sus parroquias y cada
provincia la unión de sus cantones.
read_provincias(provincia = NULL, resolucion = c("baja", "alta"), crs = 4326) read_cantones( provincia = NULL, canton = NULL, resolucion = c("baja", "alta"), crs = 4326 ) read_parroquias( provincia = NULL, canton = NULL, tipo = NULL, resolucion = c("baja", "alta"), crs = 4326, area = NULL )read_provincias(provincia = NULL, resolucion = c("baja", "alta"), crs = 4326) read_cantones( provincia = NULL, canton = NULL, resolucion = c("baja", "alta"), crs = 4326 ) read_parroquias( provincia = NULL, canton = NULL, tipo = NULL, resolucion = c("baja", "alta"), crs = 4326, area = NULL )
provincia |
Provincias a incluir, por nombre (sin importar tildes ni
mayúsculas) o código: |
resolucion |
|
crs |
Sistema de coordenadas de salida. Por defecto WGS84
(EPSG:4326). Usa |
canton |
Cantones a incluir, por nombre o código. Si un nombre se
repite en varias provincias (por ejemplo, Bolívar u Olmedo), usa el
código o indica también |
tipo |
Solo para parroquias: |
area |
Obsoleto. Usa |
Además de las circunscripciones, las capas incluyen las zonas en estudio
(territorios con límites aún no resueltos), identificadas en la columna
tipo, para que el mapa nacional no tenga huecos. Para excluirlas, filtra
tipo != "zona en estudio". Las parroquias son las de la división
político-administrativa: cabeceras cantonales y parroquias rurales. Las
parroquias urbanas forman parte de su cabecera cantonal.
La primera vez se descarga el GeoPackage de la resolución pedida y se guarda en caché; las siguientes veces se lee directamente del disco.
Un objeto sf de polígonos con las 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.
tipo vale "provincia", "cantón", "cabecera cantonal" o
"parroquia rural" según el nivel, o "zona en estudio".
Organización Territorial del Estado, Comité Nacional de Límites Internos (CONALI), Ministerio de Gobierno del Ecuador. Datos abiertos, licencia CC BY: https://www.datosabiertos.gob.ec/dataset/organizacion-territorial-parroquial.
provincias <- read_provincias() plot(sf::st_geometry(provincias)) # Cantones de una provincia, en UTM 17S loja <- read_cantones(provincia = "Loja", crs = 32717) # Parroquias rurales de un cantón read_parroquias(canton = "Puyango", tipo = "rural")provincias <- read_provincias() plot(sf::st_geometry(provincias)) # Cantones de una provincia, en UTM 17S loja <- read_cantones(provincia = "Loja", crs = 32717) # Parroquias rurales de un cantón read_parroquias(canton = "Puyango", tipo = "rural")
Traslada las islas Galápagos (provincia "20") a la esquina superior
izquierda del mapa, junto al Ecuador continental, como se hace en la
cartografía nacional para no desperdiciar espacio. Funciona con cualquier
capa de geoecu (provincias, cantones o parroquias) y con capas unidas con
geoecu_unir(), porque usa la columna dpa_provin.
reubicar_galapagos(x, separacion = 0.06)reubicar_galapagos(x, separacion = 0.06)
x |
Objeto |
separacion |
Separación entre Galápagos y el continente, como
proporción del ancho del Ecuador continental. Por defecto |
El traslado es solo para visualizar: no uses el resultado para medir áreas o distancias de Galápagos. Si reubicas varias capas para superponerlas (por ejemplo, parroquias y límites provinciales), todas quedan alineadas porque comparten la misma geometría de origen.
El mismo objeto sf, con Galápagos trasladado. Si x no contiene
Galápagos o no contiene el continente, se devuelve sin cambios.
marco_galapagos() para dibujar el recuadro.
library(ggplot2) prov <- reubicar_galapagos(read_provincias(crs = 32717)) ggplot(prov) + geom_sf() + geom_sf(data = marco_galapagos(prov), fill = NA, color = "grey70") + theme_void()library(ggplot2) prov <- reubicar_galapagos(read_provincias(crs = 32717)) ggplot(prov) + geom_sf() + geom_sf(data = marco_galapagos(prov), fill = NA, color = "grey70") + theme_void()