Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Bandera de Chile chile-hub

Datos públicos de Chile, curados y listos para análisis en una línea de código.

La última milla de los datos oficiales de Chile — parte del ecosistema Tooltician.

CI/CD PyPI version PyPI downloads Coverage Data License: MIT DOI

Python

Datasets

Instalación · Confianza · Capas · Recetas · API y CLI · Licencias

Landing de chile-hub: capas de datos de Chile listas para consumir

Instalar y usar en 30 segundos

pip install chile-hub
from chile_hub import ChileHub

hub = ChileHub()
comunas = hub.load_polars("comunas")  # 346 comunas, códigos CUT como texto
censo = hub.load_polars("censo_comunal")  # población censada por comuna

# Cruce territorial garantizado: la clave es el CUT, nunca un int
df = (
    comunas.join(censo, on="codigo_comuna")
    .select("codigo_comuna", "nombre_comuna", "nombre_region", "poblacion_censada")
    .sort("poblacion_censada", descending=True)
    .head(5)
)
print(df)

Resultado real (Censo 2024):

shape: (5, 4)
┌───────────────┬───────────────┬─────────────────────────────────┬───────────────────┐
│ codigo_comuna ┆ nombre_comuna ┆ nombre_region                   ┆ poblacion_censada │
│ ---           ┆ ---           ┆ ---                             ┆ ---               │
│ str           ┆ str           ┆ str                             ┆ i64               │
╞═══════════════╪═══════════════╪═════════════════════════════════╪═══════════════════╡
│ 13201         ┆ Puente Alto   ┆ Región Metropolitana de Santia… ┆ 568086            │
│ 13119         ┆ Maipú         ┆ Región Metropolitana de Santia… ┆ 503635            │
│ 13101         ┆ Santiago      ┆ Región Metropolitana de Santia… ┆ 438856            │
│ 02101         ┆ Antofagasta   ┆ Región de Antofagasta           ┆ 401096            │
│ 13110         ┆ La Florida    ┆ Región Metropolitana de Santia… ┆ 374836            │
└───────────────┴───────────────┴─────────────────────────────────┴───────────────────┘

En el sitio puedes consultar los mismos Parquet con SQL en el navegador (motor DuckDB-WASM, sin instalar nada):

Demo del explorador SQL de chile-hub

La primera ejecución descarga el bundle validado desde GitHub Releases, verifica su integridad SHA256 y lo deja en cache local; a partir de ahí todo corre contra el cache. La comprobación semanal de novedades no envía datos de uso y se desactiva con CHILE_HUB_NO_UPDATE_CHECK=1 (CHILE_HUB_LANG=es|en elige el idioma del aviso).

chile-hub cache update     # Forzar descarga del bundle más reciente
chile-hub cache status     # Ubicación y estado del cache local
chile-hub cache clear      # Liberar espacio

Variante pipeline: pip install chile-hub[pipeline] agrega DuckDB, Pandas, XlsxWriter y curl_cffi para ejecutar el pipeline completo de extracción y build. La instalación mínima solo incluye Polars, PyArrow, requests y platformdirs — suficiente para consumir datos.

[!NOTE] chile-hub no busca "tener todos los datos de Chile". Busca reducir drásticamente el costo técnico de encontrar, limpiar, validar, cruzar y consumir datasets geográficos, demográficos, electorales y económicos críticos de Chile.

Tampoco es un portal ni una fuente oficial: trabaja aguas abajo de datos.gob.cl y de las instituciones que publican cada dato, y siempre enlaza a la fuente oficial. Es un proyecto independiente, sin afiliación con esas instituciones. Misión y principios: docs/product-spec.md.

En la práctica, responde preguntas como:

  • ¿Cómo cruzo mi base de clientes, escuelas o centros de salud con comunas oficiales sin perder ceros en los códigos?
  • ¿Qué comunas concentran población censada, establecimientos públicos o indicadores urbanos?
  • ¿Cómo llevo datos oficiales a Polars, DuckDB, SQLite, Excel o CI sin depender de enlaces cambiantes?

Versionado: Para entornos productivos, fija la versión exacta en requirements.txt (revisa el badge de PyPI al inicio de este README para la versión más reciente):

chile-hub==1.47.0

El bundle de datos se publica con cada release. La API del módulo ChileHub sigue versionado semántico: cambios de interfaz pública solo en major releases.


Por qué confiar

Cada decisión de ingeniería de este proyecto está diseñada para que no tengas que confiar ciegamente: los datos vienen con la evidencia que los respalda.

Trabajar con datos públicos chilenos suele implicar los mismos obstáculos:

Sin chile-hubCon chile-hub
Enlaces rotos y APIs inconsistentesPipeline automatizado con fallbacks y verificación de integridad
Planillas Excel deformes con celdas combinadasParquet, DuckDB y JSON listos para producción
Códigos CUT que pierden ceros al leerse como intCUT garantizados como VARCHAR de largo fijo ("01101")
Nombres de comunas imposibles de cruzar (Ñuñoa vs Nunoa)Columna nombre_comuna_clean normalizada para cruces exactos
Cero trazabilidad sobre origen y vigencia del datoMetadatos con fuente, fecha de extracción, licencia y modo

Seis pilares, auditables y verificables en cada build

PilarDescripciónArtefacto auditable
Procedencia documentadaCada dataset declara su fuente oficial exacta con URL directa al organismo público emisor (BCN, INE, MINEDUC, BCCh, MINSAL, datos.gob.cl).provenance_report.md — fuente, modo y timestamp por capa
Auditoría legal explícitaLicencia, atribución requerida y permiso de redistribución verificados dataset por dataset — reporte regenerado en cada build en redistribution_report.md.redistribution_report.md + AGENTS.md §6
Pipeline fail-loudSi una validación falla, el pipeline aborta — no publica datos corruptos, no emite advertencias silenciosas.ADR-001 — fail-loud como decisión de arquitectura
Contratos de esquema25 contratos JSON Schema (contracts/datasets/) definen columnas esperadas, tipos, claves primarias y cobertura. Se validan en cada build automáticamente.ADR-005 + contracts/datasets/*.json
Salud transparenteDashboard público con severidad, frescura, cobertura, drift y degradación por dataset — regenerado en cada build en hub_health.md.hub_health.md — estado completo actualizado en cada build
Calidad medidaPuntuación compuesta A-F por dataset (validación, contrato, madurez de fuente, frescura, cobertura y política de reúso); scorecard completo en dataset_quality.md.dataset_quality.md — scorecard completo

Cada pilar se audita automáticamente en cada ejecución del pipeline. Los reportes se regeneran en cada build — no son documentos estáticos mantenidos a mano. Para auditar el estado exacto de cualquier capa:

chile-hub provenance   # fuente, modo y timestamp por dataset
chile-hub health       # severidad, frescura, drift y cobertura

El mismo estado se publica en el sitio, con historial de builds y detalle por capa:

Estado operativo del hub

Respaldo adicional

  • 1263 tests (pytest --collect-only) que validan extracción, contratos e integridad de datos.
  • 23 ADRs (docs/adr/) que documentan cada decisión de arquitectura con su contexto, consecuencias y tradeoffs — no solo el "qué", sino el "por qué".
  • Drift monitoreado: todos los datasets bajo vigilancia de deriva de esquema; cualquier cambio en la fuente se detecta y registra (drift_report.md).
  • Trazabilidad completa: cada build registra timestamp, versión de extractor y snapshot de entrada en provenance_report.md.

Para una explicación más detallada de la arquitectura y las decisiones de diseño, lee el caso de estudio: cómo está construido chile-hub.


Qué incluye

Cómo leer los conteos: 22 capas construibles (make build local, incl. 1 en carril candidate) · 21 publicables (bundle ZIP) · 25 registradas en el catálogo (3 filas sin datos aún: geometría, delincuencia, autoridades locales). La convención completa vive junto al badge superior y en data/source_registry.json.

Catálogo de capas publicado en el sitio

Mapa territorial interactivo: las 346 comunas con 7 métricas seleccionables (población, pobreza, permisos, equipamiento, MP2.5) y ficha por comuna.

Mapa territorial interactivo de chile-hub

#CapaFuenteLicenciaActualización
1RegionesBCN ArcGISCC BY—
2ProvinciasBCN ArcGISCC BY—
3ComunasBCN ArcGISCC BY—
4Comunas EnriquecidasBCN + INECC BY—
5Indicadores EconómicosBCCh / mindicador.clLibre c/citaDiaria
6Censo Comunal 2024INECC BY 4.0Decenal
7Censo Hogares y ViviendasINECC BY 4.0Decenal
8Establecimientos de SaludMINSAL / datos.gob.clCC0Mensual
9Distritos ElectoralesBCN / Ley 20.840CC0—
10Establecimientos EducacionalesMINEDUCCC BY 3.0 CLAnual
11Finanzas MunicipalesSINIM / SUBDERERevisión términosAnual
12Resultados EducacionalesMINEDUCCC BY 3.0 CLAnual
13Indicadores Urbanos SIEDUINE / SIEDUDatos abiertos INEAnual
14Perfil Territorial Comunalchile-hub derivadoFuentes abiertasDerivada
15Empresas (RES)Min. Economía / datos.gob.clCC-BY 3.0 CLMensual
16Pobreza Comunal (SAE)MDS / Observatorio SocialDatos abiertos MDSBienal/trienal
17Consumo Eléctrico ComunalCNE / Energía AbiertaCC BYAnual
18Partidos PolíticosCámara de DiputadosCC BYBajo_demanda
19Autoridades ElectasCámara de Diputados + SenadoCC BYBajo_demanda
20Estadísticas VitalesINECC BY 4.0Anual
21Permisos de EdificaciónMINVU / CEDOCUso c/citaMensual
22Calidad del AireMMA / SINCARevisión términosDiaria
23geometria_comunal———
24Delincuencia ComunalCEAD / SPDRevisión términos—
25Autoridades LocalesBCN SIIT + WikipediaCC BY / CC BY-SA—

Métricas por build: el modo de la última extracción, el conteo de registros, la cobertura y la frescura viven en hub_health.md, dataset_status.json y dataset_quality.md, regenerados en cada build; los badges resumen frescura y estado: Data Coverage Para auditar el estado exacto de cada capa: chile-hub provenance y chile-hub health.

El schema de columnas, tipos y PK de cada capa vive en contracts/datasets/ y en docs/datasets/; el volcado completo está en el apéndice.

Formatos de salida

Cada ejecución del pipeline genera en data/normalized/:

TipoArchivoUso
Base de datoschile_data.duckdbAnalítica local de alto rendimiento
Base de datoschile_data.dbSQLite para aplicaciones embebidas
Intercambio*.parquet por capaPolars / Pandas / DuckDB
Intercambio*.json por capaPipelines y automatización
Intercambiochile_data_latest.xlsxExcel multipestaña (códigos CUT como texto)
Metadatosartifact_manifest.json, hub_health.*, dataset_status.json, dataset_changelog.json, dataset_catalog.*, provenance_report.*, redistribution_report.*Catálogo físico, salud, changelog y auditoría
Bundlechile-hub-publishable-bundle.zipPaquete público con verificación SHA256

Recetas de uso

¿Prefieres notebooks? Las cuatro recetas están en examples/notebooks/ con botón de Colab, o ejecutables en el explorador SQL del sitio.

1. Últimos indicadores económicos disponibles

from chile_hub import ChileHub

df = ChileHub().load_polars("indicadores")
ultimos = (
    df.sort("fecha", descending=True)
    .group_by("codigo_indicador")
    .first()
    .select("codigo_indicador", "fecha", "valor")
    .sort("codigo_indicador")
)
print(ultimos)

2. Salud y educación por comuna

from chile_hub import ChileHub

hub = ChileHub()
salud = hub.load_polars("establecimientos_salud")
educacion = hub.load_polars("establecimientos_educacionales")

salud_por_comuna = salud.group_by("codigo_comuna").len("establecimientos_salud")
educacion_por_comuna = educacion.group_by("codigo_comuna").len("establecimientos_educacionales")

resumen = (
    hub.load_polars("comunas")
    .join(salud_por_comuna, on="codigo_comuna", how="left")
    .join(educacion_por_comuna, on="codigo_comuna", how="left")
    .fill_null(0)
    .select(
        "codigo_comuna", "nombre_comuna", "establecimientos_salud", "establecimientos_educacionales"
    )
)
print(resumen.head())

3. SQL directo con DuckDB

-- Top 10 comunas por población censada
SELECT nombre_comuna, poblacion_censada, hombres, mujeres
FROM 'data/normalized/censo_comunal.parquet'
ORDER BY poblacion_censada DESC
LIMIT 10;

-- Cruce territorial: comunas × distritos electorales
SELECT c.nombre_comuna, c.nombre_region,
       e.distrito_electoral, e.circunscripcion_senatorial
FROM 'data/normalized/comunas.parquet' c
JOIN 'data/normalized/distritos_electorales.parquet' e
  ON c.codigo_comuna = e.codigo_comuna
WHERE c.nombre_region = 'Valparaíso';

API y CLI

API Python compacta

APIUso
ChileHub()Inicializa el helper; descarga y verifica el bundle si no hay cache local.
ChileHub(data_dir="data/normalized")Usa artefactos locales generados por el pipeline.
hub.list_datasets()Lista los nombres canónicos disponibles para load_polars().
hub.load_polars("comunas")Carga una capa como polars.DataFrame desde Parquet.
hub.summary() / hub.summary_table()Resume modo de fuente, filas, validación, frescura y warnings.
hub.health() / hub.status()Reporta salud operativa para personas y CI/CD.
hub.redistribution()Expone estado legal de reúso y atribución por dataset.
hub.provenance()Muestra fuente, URL, modo de extracción y timestamps.
chile-hub cache update/status/clearAdministra el cache local del bundle publicado.

¿Construyes agentes? El proyecto incluye un servidor MCP con catálogo, consultas y resolución de comunas para que tu agente consuma los datos sin integraciones propias: docs/mcp.md.

CLI: los comandos más usados

ComandoPara qué
chile-hub listLista todos los datasets registrados.
chile-hub show <capa>Schema y metadatos detallados de una capa.
chile-hub example <capa> --kind duckdbReceta de consumo lista para copiar y pegar.
chile-hub cross <a> <b>Cruza dos datasets por clave territorial común.
chile-hub export <capa> --output archivoExporta un dataset a CSV, JSON o Parquet.
chile-hub healthReporte consolidado de salud del hub.
chile-hub statusJSON ultraliviano para CI/CD.
chile-hub provenanceURLs de origen y métodos de extracción.
chile-hub redistributionReporte legal de reúso por capa.
chile-hub dataset-qualityPuntuación de calidad A-F por dataset.
chile-hub --helpListado completo y siempre actualizado.
Referencia completa de CLI

Inspección y consulta

ComandoDescripción
chile-hub listLista todos los datasets registrados
chile-hub versionMuestra la versión instalada del paquete
chile-hub cache statusMuestra ubicación y estado del cache local
chile-hub cache updateDescarga y verifica el bundle publicado
chile-hub cache clearElimina el cache local
chile-hub show <capa>Schema y metadatos detallados de una capa
chile-hub path <capa> --output parquetRuta física al archivo de una capa
chile-hub example <capa> --kind duckdbReceta de consumo lista para copiar y pegar
chile-hub overviewResumen general del build y estado actual
chile-hub inventoryArchivos en data/normalized/ con tamaños y hashes
chile-hub snapshotSnapshot humano y compacto del hub
chile-hub summaryResumen breve de datasets
chile-hub search <keyword>Busca datasets por keyword, fuente o madurez
chile-hub cross <a> <b>Cruza dos datasets por clave territorial común
chile-hub export <capa> --output archivoExporta un dataset a CSV, JSON o Parquet

Calidad, salud y auditoría

ComandoDescripción
chile-hub healthReporte consolidado de salud del hub
chile-hub freshness-auditAuditoría de frescura contra el reloj actual
chile-hub runtime-statusSalud registrada + vigencia en vivo
chile-hub top-issueCapa con mayor degradación operativa
chile-hub driftDesvíos, fallbacks activos y regresiones
chile-hub statusJSON ultraliviano para CI/CD
chile-hub dataset-statusEstado detallado machine-readable por dataset
chile-hub dataset-changelogCambios entre el build actual y el metadata anterior
chile-hub source-readinessMadurez de fuente por dataset
chile-hub dataset-qualityPuntuación de calidad A-F por dataset
chile-hub check-sourcesVerifica conectividad en vivo con las fuentes oficiales
chile-hub validate <capa>Valida un dataset (o un CSV/Parquet propio) contra su schema

Distribución e integridad

ComandoDescripción
chile-hub bundleMetadata consolidada en un solo JSON
chile-hub redistributionReporte legal de reúso por capa
chile-hub provenanceURLs de origen y métodos de extracción
chile-hub verify-packageInstrucción de verificación de integridad del ZIP
chile-hub artifactsArtefactos publicables del hub
chile-hub shared-artifactsArtefactos compartidos del hub (reportes, manifest)
chile-hub reportsLista los reportes compartidos disponibles
chile-hub report <nombre>Resuelve la metadata de un reporte compartido
chile-hub packagesPaquetes publicables del hub
chile-hub packageMetadata del package principal del hub

En entorno de desarrollo, usa python -m chile_hub o python -m src.chile_hub como alternativa al comando chile-hub si el paquete no está instalado en modo editable.


Cómo funciona

El pipeline es lineal, determinista y estricto: si una validación falla, el build se cancela antes de publicar datos corruptos.

flowchart TB
    classDef extract fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#0f172a;
    classDef stage fill:#ecfeff,stroke:#0891b2,stroke-width:2px,color:#0f172a;
    classDef build fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#0f172a;
    classDef verify fill:#f0fdf4,stroke:#16a34a,stroke-width:2px,color:#0f172a;
    classDef test fill:#fae8ff,stroke:#c084fc,stroke-width:2px,color:#0f172a;
    classDef publish fill:#ffe4e6,stroke:#f43f5e,stroke-width:2px,color:#0f172a;

    subgraph EXTRACT["1. EXTRACT - fuentes oficiales"]
        direction TB
        X1["Territorio<br/>BCN / SERVEL"]:::extract
        X2["Demografía 2024<br/>INE"]:::extract
        X3["Servicios públicos<br/>MINSAL / MINEDUC"]:::extract
        X4["Economía<br/>BCCh / SINIM / RES"]:::extract
        X5["Indicadores urbanos<br/>SIEDU"]:::extract
    end

    S["data/staging/<br/>CSV + metadata.json"]:::stage
    B["2. BUILD<br/>build_dev_db.py"]:::build
    N["data/normalized/<br/>artefactos publicables"]:::stage
    V["3. VERIFY<br/>verify_pipeline.py"]:::verify
    T["4. TEST<br/>pytest"]:::test
    L["5. SMOKE + PUBLISH<br/>landing + bundle"]:::publish

    X1 --> S
    X2 --> S
    X3 --> S
    X4 --> S
    X5 --> S
    S --> B --> N --> V --> T --> L

[!IMPORTANT] Invariante crítica: El pipeline aborta si la cardinalidad de comunas ≠ 346, si los códigos CUT pierden el formato VARCHAR, o si alguna regla de negocio se rompe. Nunca se publican datos corruptos.

Extractores incluidos en el paso 1
DominioExtractores
Territoriosubdere_extractor.py, electoral_extractor.py, geometria_comunal_extractor.py
Demografíacenso_extractor.py, censo_hogares_viviendas_extractor.py, pobreza_extractor.py, estadisticas_vitales_extractor.py
Servicios públicossalud_extractor.py, mineduc_establecimientos_extractor.py, mineduc_resultados_extractor.py
Economíabcentral_extractor.py, sinim_finanzas_extractor.py, sinim_finanzas_live_extractor.py, res_extractor.py, consumo_electrico_extractor.py, permisos_edificacion_extractor.py
Indicadores urbanossiedu_extractor.py
Medio ambientecalidad_aire_extractor.py
Políticapartidos_politicos_extractor.py, autoridades_electas_extractor.py, autoridades_locales_extractor.py
Seguridad (carril candidate)cead_delincuencia_live_extractor.py
Derivado en build_dev_db.py (sin extractor)perfil_territorial_comunal

El mapeo autoritativo entre dataset y extractor vive en data/dataset_catalog_config.json; esta tabla es solo orientativa. Detalle completo en AGENTS.md §2.

Modelo de datos: códigos CUT

El valor central de chile-hub es que todas las capas se vinculan jerárquicamente mediante los Códigos Únicos Territoriales (CUT) de SUBDERE/INE:

flowchart TB
    R["Territorio base<br/><b>REGIONES</b><br/>codigo_region"]
    P["<b>PROVINCIAS</b><br/>codigo_provincia + codigo_region"]
    C["<b>COMUNAS</b><br/>codigo_comuna + codigo_provincia + codigo_region"]
    L["Capas comunales<br/>codigo_comuna<br/>censo · hogares · salud<br/>educación · distritos · enriquecimiento"]

    R --> P --> C --> L
GrupoClave principalCapas
Territorio basecodigo_region, codigo_provincia, codigo_comunaregiones, provincias, comunas
Capas comunalescodigo_comunacenso, hogares y viviendas, salud, educación, distritos electorales, pobreza, permisos de edificación, calidad del aire, estadísticas vitales, perfil territorial y más
Series temporalesfecha o anio + clave propiaindicadores, calidad_aire, permisos_edificacion
Registrosclave propiaempresas (RUT), partidos_politicos, autoridades_electas

El diagrama entidad-relación completo está en el apéndice.


Próximos pasos

El roadmap actual prioriza crecer en usabilidad y confianza antes que agregar más capas.

HorizonteFocoEntregableEstado
NowEjemplos, notebooks, errores claros, referencia APIUsuarios cargan y cruzan datos sin leer el pipeline completoEn progreso
NextContratos de schema, source readiness, criterios públicosContribuidores proponen datasets con reglas claras y verificablesPlaneado
LaterNuevas capas solo si pasan criterios de inclusiónEl catálogo crece sin perder mantenibilidad ni claridad legalFuturo

Especificación completa: docs/product-spec.md Criterios de inclusión: docs/dataset-inclusion-criteria.md Estado del último build: data/normalized/pipeline_status.md


Desarrollo y contribución

¿Quieres aportar o pedir un dataset?

No necesitas saber programar ni traer los datos limpios: basta con la fuente y para qué sirve (o la necesidad, si solo quieres pedirlo). La guía de 2 minutos y los dos formularios están en Aportar o solicitar un dataset (criterios completos).

Desarrollar el pipeline

Esta sección es para contribuidores que ejecutan el pipeline de extracción, build y verificación en su máquina. Si solo necesitas consumir los datos, usa pip install chile-hub (ver Instalación).

Requiere uv y Git. Python lo gestiona uv (make bootstrap).

# Entorno
git clone https://github.com/cortega26/chile-hub.git
cd chile-hub
make bootstrap          # Crea .venv, instala dependencias + Playwright
make doctor             # Verifica versión de Python y dependencias críticas

# Pipeline completo
make refresh            # extract → build → verify → test → landing

# Pasos individuales
make extract            # Ejecuta los extractores → data/staging/
make build              # Compila artefactos → data/normalized/
make verify             # Verifica integridad (SHA256, conteos, schema)
make test               # pytest (lee data/normalized/, no corre el pipeline)
make coverage           # pytest + cobertura de src/ (term-missing + coverage.xml)
make verify-landing     # Pruebas de humo de landing page con Playwright

autoridades_electas requiere scrapling para no degradar a 155 registros (0 senadores); el comando local está en Carriles de extracción.

El ZIP publicable no se versiona: make build lo genera localmente y el sitio lo descarga desde el asset del último GitHub Release. Para clones más livianos: git clone --filter=blob:none https://github.com/cortega26/chile-hub.

Para entender la arquitectura, las reglas no negociables y el flujo de trabajo, revisa AGENTS.md; el punto de partida rápido es SOURCE_OF_TRUTH.md.

¿Encontraste un error o tienes un caso de uso? Abre un issue — ayuda a priorizar el roadmap.


Fuentes, licencias y reúso

Semáforo de redistribución

SemáforoEstadoLicencia típicaAcción
Verdeopen-attributionCC BY, CC0 o equivalenteSe incluye en el bundle público
Amarillopublic-api-review-termsAPI pública sin licencia explícitaSe distribuye tras verificar el origen primario
RojorestrictedDerechos de autor, Ley 19.628Nunca se integra al bundle público

Licencia del proyecto

El código Python se distribuye bajo MIT. Los datasets conservan las licencias, permisos y requisitos de atribución de sus fuentes oficiales. Consulta DATA_LICENSES.md, chile-hub redistribution y chile-hub provenance antes de redistribuir artefactos derivados.

Cómo citar

Si usas chile-hub en un paper, tesis, curso o informe, cita el software y atribuye la fuente de cada capa. GitHub muestra el botón "Cite this repository" a partir de CITATION.cff; las recetas BibTeX/APA y la ruta para un DOI Zenodo están en docs/citation.md.


Apéndice: esquemas y modelo de datos

Schema completo de cada capa

1. regiones — Capa derivada de regiones para filtros, joins y referencias administrativas de alto nivel. (PK: codigo_region)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
nombre_regionVARCHAR"Tarapacá"

2. provincias — Capa derivada de provincias para cruces intermedios entre region y comuna. (PK: codigo_provincia)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
nombre_regionVARCHAR"Tarapacá"
codigo_provinciaVARCHAR(3)"011"
nombre_provinciaVARCHAR"Iquique"

3. comunas — Base territorial normalizada para cruces por region, provincia y comuna. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Iquique"
nombre_comuna_cleanVARCHAR"iquique"
codigo_provinciaVARCHAR(3)"011"
codigo_regionVARCHAR(2)"01"
nombre_regionVARCHAR"Tarapacá"
latitud_cabeceraDOUBLE-20.2138
longitud_cabeceraDOUBLE-70.1508
poblacion_estimadaINTEGER223400

4. comunas_enriquecidas — Comunas con coordenadas de cabecera y poblacion estimada INE, listas para analisis territorial sin joins adicionales. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Iquique"
nombre_comuna_cleanVARCHAR"iquique"
codigo_provinciaVARCHAR(3)"011"
codigo_regionVARCHAR(2)"01"
latitud_cabeceraDOUBLE-20.2138
longitud_cabeceraDOUBLE-70.1508
poblacion_estimadaINTEGER223400

5. indicadores — Serie de indicadores economicos diarios de referencia para analisis y software. (PK: fecha, codigo_indicador)

ColumnaTipoEjemplo
fechaDATE"2026-05-30"
codigo_indicadorVARCHAR"uf"
valorDOUBLE39420.5

6. censo_comunal — Perfil demografico comunal del Censo 2024 con sexo y grandes grupos de edad. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
codigo_provinciaVARCHAR(3)"011"
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Iquique"
poblacion_censadaINTEGER223400
hombres / mujeresINTEGER"111200 / 112200"
razon_hombre_mujerDOUBLE99.11
poblacion_0_14 … poblacion_65_masINTEGER"5 tramos etarios"

7. censo_hogares_viviendas — Viviendas y hogares censados por comuna, ocupacion y tamano medio del hogar. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
viviendas_censadasINTEGER85000
viviendas_particulares_ocupadasINTEGER75000
viviendas_colectivasINTEGER200
hogares_censadosINTEGER73000
promedio_personas_hogarDOUBLE3.06

8. establecimientos_salud — Directorio vigente de establecimientos de salud con tipo, dependencia, urgencia y ubicacion. (PK: codigo_establecimiento)

ColumnaTipoEjemplo
codigo_establecimientoVARCHAR"101101"
nombre_establecimientoVARCHAR"Hospital Dr. Ernesto Torres Galdames"
tipo_establecimientoVARCHAR"Hospital"
nivel_atencionVARCHAR"Alta Complejidad"
codigo_comunaVARCHAR(5)"01101"
tiene_servicio_urgenciaVARCHAR"SI" / "NO"
latitud / longitudDOUBLE"Coordenadas geográficas"
estado_funcionamientoVARCHAR"Vigente"

9. distritos_electorales — Asociación de comunas a distritos electorales (diputados) y circunscripciones senatoriales. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Las Condes"
distrito_electoralVARCHAR"10"
circunscripcion_senatorialVARCHAR"3"

10. establecimientos_educacionales — Directorio oficial del Ministerio de Educación (MINEDUC) con Rol Base de Datos (RBD), ubicación y dependencia administrativa. (PK: rbd)

ColumnaTipoEjemplo
rbdVARCHAR"1234-5"
dv_rbdVARCHAR"4"
nombre_establecimientoVARCHAR"Liceo Abate Molina"
codigo_comunaVARCHAR(5)"01101"
dependencia_administrativaVARCHAR"Municipal"
latitud / longitudDOUBLE"Coordenadas geográficas"
estado_funcionamientoVARCHAR"Vigente"

11. finanzas_municipales — Indicadores financieros municipales anuales desde SINIM/SUBDERE. CAPA PARCIAL/CANDIDATO: 3 de 346 comunas (0.9%). Usar con precaución; no representa cobertura nacional. (PK: anio, codigo_comuna)

ColumnaTipoEjemplo
anioINTEGER2024
codigo_comunaVARCHAR(5)"01101"
ingresos_totales / gastos_totalesDOUBLE245000000000.0
ingresos_propios_permanentesDOUBLE162000000000.0
fondo_comun_municipalDOUBLE39000000000.0

12. resultados_educacionales — Resultados educacionales agregados por comuna y año, sin registros personales. (PK: anio, codigo_comuna)

ColumnaTipoEjemplo
anioINTEGER2024
codigo_comunaVARCHAR(5)"01101"
matricula_totalINTEGER122000
asistencia_promedioDOUBLE86.2
tasa_aprobacion / tasa_retiroDOUBLE"91.4 / 4.5"

13. indicadores_urbanos_siedu — Indicadores urbanos SIEDU en formato largo con cobertura comunal parcial esperada. (PK: anio, codigo_comuna, codigo_indicador)

ColumnaTipoEjemplo
anioINTEGER2024
codigo_comunaVARCHAR(5)"01101"
codigo_indicadorVARCHAR"siedu_acceso_areas_verdes"
categoriaVARCHAR"Espacio publico"
valor / unidadDOUBLE"71.4 / "porcentaje"

14. perfil_territorial_comunal — Perfil comunal curado que consolida DPA, censo, salud, educación, finanzas, SIEDU y distritos. (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
poblacion_censadaINTEGER223400
establecimientos_salud_totalINTEGER140
establecimientos_educacionales_totalINTEGER410
distrito_electoralVARCHAR"10"
crecimiento_natural_ultimo_anioINTEGER12
anio_estadisticas_vitalesINTEGER2023
viviendas_autorizadas_ultimo_anioINTEGER2451
superficie_autorizada_m2_ultimo_anioINTEGER187320
anio_permisos_edificacionINTEGER2023
mp25_promedio_ultimo_anioDOUBLE18.4
anio_calidad_aireINTEGER2026

15. empresas — Registro de Empresas y Sociedades (RES) con RUT, razon social, tipo societario, capital, fecha de constitucion y comuna de domicilio. (PK: rut)

ColumnaTipoEjemplo
rutVARCHAR"76286049-K"
razon_socialVARCHAR"COMERCIALIZADORA EJEMPLO SPA"
codigo_sociedadVARCHAR"SPA"
capitalINTEGER5000000
fecha_actuacionDATE"2020-06-15"
anioINTEGER2020
comuna_tributariaVARCHAR"SANTIAGO"
region_tributariaVARCHAR"13"

16. pobreza_comunal — Estimaciones de pobreza comunal por ingresos y multidimensional derivadas de la encuesta CASEN mediante metodología SAE (Estimación de Áreas Pequeñas). Incluye tasa, límite inferior y superior del intervalo de confianza por comuna, año y dimensión. (PK: codigo_comuna, anio, dimension)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Santiago"
anioINTEGER2022
dimensionVARCHAR"ingresos" / "multidimensional"
tasaDOUBLE15.3
limite_inferiorDOUBLE12.1
limite_superiorDOUBLE18.9
metodologiaVARCHAR"SAE"
fuenteVARCHAR"Observatorio Social — MDS"

17. consumo_electrico_comunal — Consumo eléctrico anual por comuna y tipo de cliente (Residencial, Comercial, Industrial, Agrícola, Alumbrado Público, Otros), publicado por la Comisión Nacional de Energía (CNE) en el portal Energía Abierta. DEPRECATED: la fuente Junar de energiaabierta.cl fue decomisionada (investigado 2026-07-07); el dataset solo publica datos de muestra (FALLBACK_ROWS), no está en el bundle público. Ver data/source_registry.json. (PK: codigo_comuna, anio, tipo_cliente)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Santiago"
anioINTEGER2023
tipo_clienteVARCHAR"Residencial"
consumo_kwhDOUBLE1523400.5
numero_clientesINTEGER45800
fuenteVARCHAR"CNE — Energía Abierta"

18. partidos_politicos — Roster de partidos políticos de Chile (Cámara de Diputadas y Diputados), con estado_legal y fecha_constitucion completados por join de nombre contra el registro público de SERVEL. (PK: id_partido)

ColumnaTipoEjemplo
id_partidoVARCHAR"DC"
nombreVARCHAR"Partido Demócrata Cristiano"
siglaVARCHAR"DC"
estado_legalVARCHAR"constituido" (nulo si no matchea con SERVEL)"`
fecha_constitucionDATE"1988-05-02"
ambitoVARCHAR"null (sin fuente que lo provea)"`
fuenteVARCHAR"Cámara de Diputadas y Diputados"

19. autoridades_electas — Autoridades electas en ejercicio de Chile (diputados y senadores): partido, distrito electoral/circunscripción senatorial, región y período de mandato. (PK: id_autoridad)

ColumnaTipoEjemplo
id_autoridadVARCHAR"diputado_1009"
nombreVARCHAR"Jorge Alessandri Vergara"
cargoVARCHAR"diputado" / "senador"
institucionVARCHAR"Cámara de Diputadas y Diputados" / "Senado"
partidoVARCHAR"Unión Demócrata Independiente"
distrito_electoralVARCHAR"10" (solo diputados)"`
circunscripcion_senatorialVARCHAR"3" (solo senadores)"`
codigo_regionVARCHAR(2)"02" (solo senadores)"`
periodo_inicio / periodo_finDATE"2026-03-11 / 2030-03-10"
estado_mandatoVARCHAR"vigente"

20. estadisticas_vitales — Nacimientos y defunciones por comuna de residencia y sexo, desde los Anuarios de Estadísticas Vitales del INE (definitivos, 2010 en adelante). (PK: anio, codigo_comuna, evento, sexo)

ColumnaTipoEjemplo
anioINTEGER2023
codigo_regionVARCHAR(2)"13"
codigo_comunaVARCHAR(5)"13101"
nombre_comunaVARCHAR"Santiago"
eventoVARCHAR"nacimiento"
sexoVARCHAR"hombre"
cantidadINTEGER4521
estado_datoVARCHAR"definitivo"
fuenteVARCHAR"Instituto Nacional de Estadísticas (INE) — Estadísticas Vitales"
url_fuenteVARCHAR"https://www.ine.gob.cl/docs/default-source/.../2023/....xlsx"
fecha_fuenteVARCHAR"2026-09-14"

21. permisos_edificacion — Viviendas en unidades y superficie (m2) por comuna y año —casas y departamentos— desde las estadísticas de permisos de edificación del CEDOC (MINVU), serie desde 2002. (PK: anio, codigo_comuna)

ColumnaTipoEjemplo
anioINTEGER2023
codigo_regionVARCHAR(2)"13"
codigo_comunaVARCHAR(5)"13101"
nombre_comunaVARCHAR"Santiago"
unidades_totalINTEGER2451
superficie_m2_totalINTEGER187320
unidades_casasINTEGER312
superficie_m2_casasINTEGER24810
unidades_departamentosINTEGER2139
superficie_m2_departamentosINTEGER162510
estado_datoVARCHAR"definitivo"
fuenteVARCHAR"MINVU — Centro de Estudios de Ciudad y Territorio (CEDOC)"
url_fuenteVARCHAR"https://catalogo.minvu.cl/cgi-bin/koha/opac-retrieve-file.pl?id=..."
fecha_fuenteVARCHAR"2026-09-15"

22. calidad_aire — Promedios diarios de contaminantes atmosféricos (MP2.5, MP10, SO2, NO2, CO, O3) por estación de monitoreo, desde el SINCA (MMA). Cobertura parcial: ~65 comunas con estación. (PK: fecha, id_estacion, codigo_contaminante)

ColumnaTipoEjemplo
fechaVARCHAR"2026-09-14"
id_estacionVARCHAR"271"
nombre_estacionVARCHAR"Quilicura"
codigo_regionVARCHAR(2)"13"
codigo_comunaVARCHAR(5)"13144"
nombre_comunaVARCHAR"Quilicura"
latitudDOUBLE-33.36
longitudDOUBLE-70.73
codigo_contaminanteVARCHAR"mp25"
nombre_contaminanteVARCHAR"MP 2,5"
unidadVARCHAR"ug/m3"
valor_promedio_diarioDOUBLE18.4
valor_max_horarioDOUBLE42.0
horas_validasINTEGER24
estado_datoVARCHAR"definitivo"
fuenteVARCHAR"SINCA — Ministerio del Medio Ambiente"
url_fuenteVARCHAR"https://sinca.mma.gob.cl/index.php/json/listadomapa2k19/"
fecha_fuenteVARCHAR"2026-09-15"

23. geometria_comunal — Límites poligonales de las 346 comunas de Chile (GeoParquet, geometría 'generalizada' — simplificada para cartografía a escala nacional, no apta para trabajo de precisión geodésica ni catastral). Fuente: BCN ArcGIS (tematico/Comunas_Generalizadas). Artefacto separado de comunas, unido por codigo_comuna. (en carril candidate — datos no incluidos en el bundle público) (PK: codigo_comuna)

ColumnaTipoEjemplo
codigo_regionVARCHAR(2)"01"
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Iquique"
nombre_comuna_cleanVARCHAR"iquique"
nombre_regionVARCHAR"Región de Tarapacá"
geometryBINARY"WKB — Polygon o MultiPolygon en EPSG:4326 (WGS84), geoparquet 1.0"

24. delincuencia_comunal — DEPRECATED 2026-09-15: Casos policiales de Delitos de Mayor Connotación Social (DMCS) y otras categorías por comuna y mes. Sin fuente estructurada oficial (solo scraping frágil) y no redistribuible; extractor neutralizado y fuera del scrape mensual. Ver docs/datasets/delincuencia_comunal.md. (en carril candidate — datos no incluidos en el bundle público) (PK: anio, mes, codigo_comuna, familia_delito)

ColumnaTipoEjemplo
codigo_comunaVARCHAR(5)"01101"
nombre_comunaVARCHAR"Santiago"
anioINTEGER2024
mesINTEGER1
familia_delitoVARCHAR"robos_violentos"
casosINTEGER245

25. autoridades_locales — Autoridades locales/subnacionales de Chile: gobernadores regionales (Wikipedia, CC-BY-SA) y alcaldes (BCN SIIT, dato público gubernamental). Wikipedia se mantiene como fuente de gobernadores y enriquecimiento opcional de periodo_inicio para alcaldes. Dataset segregado de autoridades_electas por licencia mixta. (en carril candidate — datos no incluidos en el bundle público) (PK: id_autoridad)

ColumnaTipoEjemplo
id_autoridadVARCHAR"gobernador_01"
nombreVARCHAR"null si no hay evidencia clara del titular"`
cargoVARCHAR"gobernador_regional" / "alcalde"
codigo_regionVARCHAR(2)"01"
codigo_comunaVARCHAR(5)"01101" (solo alcaldes)"`
partidoVARCHAR"nulo si no identificado"
estado_mandatoVARCHAR"vigente" / "sin_identificar"
Diagrama entidad-relación (capas principales)
erDiagram
    REGIONES {
        VARCHAR codigo_region PK "Ej: '01' (Tarapacá)"
        VARCHAR nombre_region
    }
    PROVINCIAS {
        VARCHAR codigo_provincia PK "Ej: '011' (Iquique)"
        VARCHAR codigo_region FK
        VARCHAR nombre_provincia
    }
    COMUNAS {
        VARCHAR codigo_comuna PK "Ej: '01101' (Iquique)"
        VARCHAR codigo_provincia FK
        VARCHAR codigo_region FK
        VARCHAR nombre_comuna
        VARCHAR nombre_comuna_clean "Ej: 'iquique' (sin tildes)"
    }
    COMUNAS_ENRIQUECIDAS {
        VARCHAR codigo_comuna PK
        VARCHAR nombre_comuna
        DOUBLE latitud_cabecera
        DOUBLE longitud_cabecera
        INTEGER poblacion_estimada
    }
    CENSO_COMUNAL {
        VARCHAR codigo_comuna PK
        INTEGER poblacion_censada
        INTEGER hombres
        INTEGER mujeres
        INTEGER poblacion_0_14
    }
    CENSO_HOGARES_VIVIENDAS {
        VARCHAR codigo_comuna PK
        INTEGER viviendas_censadas
        INTEGER hogares_censados
        DOUBLE promedio_personas_hogar
    }
    ESTABLECIMIENTOS_SALUD {
        VARCHAR codigo_establecimiento PK
        VARCHAR codigo_comuna FK
        VARCHAR nombre_establecimiento
        VARCHAR tipo_establecimiento
    }
    DISTRITOS_ELECTORALES {
        VARCHAR codigo_comuna PK
        VARCHAR distrito_electoral
        VARCHAR circunscripcion_senatorial
    }
    ESTABLECIMIENTOS_EDUCACIONALES {
        VARCHAR rbd PK "Rol Base de Datos"
        VARCHAR codigo_comuna FK
        VARCHAR nombre_establecimiento
    }
    INDICADORES {
        DATE fecha PK
        VARCHAR codigo_indicador PK "Ej: 'uf', 'dolar'"
        DOUBLE valor
    }

    REGIONES ||--o{ PROVINCIAS : "contiene"
    PROVINCIAS ||--o{ COMUNAS : "contiene"
    COMUNAS ||--|| COMUNAS_ENRIQUECIDAS : "enriquece"
    COMUNAS ||--o| CENSO_COMUNAL : "demografía"
    COMUNAS ||--o| CENSO_HOGARES_VIVIENDAS : "hogares"
    COMUNAS ||--o{ ESTABLECIMIENTOS_SALUD : "salud"
    COMUNAS ||--o{ ESTABLECIMIENTOS_EDUCACIONALES : "educación"
    COMUNAS ||--o| DISTRITOS_ELECTORALES : "electoral"

Bandera de Chile Hecho con datos públicos chilenos, para quienes construyen sobre Chile.

Parte del ecosistema Tooltician — datos públicos, interoperables y listos para IA.

关于 About

Datos públicos de Chile curados, normalizados y validados: geografía, demografía, economía, salud, educación y distritos electorales. Listos para consumir en una línea de código con Polars, DuckDB, SQLite y Excel.
chiledata-engineeringdatasetsdatosdatos-abiertosduckdbopen-dataparquetpolarspublic-data

语言 Languages

Python88.6%
HTML5.9%
JavaScript3.6%
Shell0.7%
Makefile0.6%
Jinja0.5%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
996
Total Commits
峰值: 156次/周
Less
More

核心贡献者 Contributors