Resumen del Proceso de Fusión CSV–GeoJSON

December 22, 2025 · View on GitHub

1. Descripción del Proceso

Script PHP que fusiona datos CSV con GeoJSON mediante matching de códigos CUSEC, resolviendo problemas de formato automáticamente.

2. Problema Específico

  • CSV usa: 601501001 (9 dígitos, sin cero inicial)
  • GeoJSON usa: "0601501001" (10 dígitos, con cero inicial)

Diferencia: ceros iniciales en JSON que no están en CSV.

3. Solución Implementada

Función de normalización:

strval(intval(trim($valor)))

Convierte:

"0601501001" → "601501001"

4. Tecnologías Usadas

  • Lenguaje: PHP 7.0+
  • Dependencias: extensiones json y file de PHP
  • Entorno: Windows (compatible con Linux / macOS)

5. Algoritmo Paso a Paso

  1. Cargar CSV → crear diccionario con CUSEC normalizado como clave
  2. Leer GeoJSON → iterar sobre features
  3. Para cada feature:
    • Normalizar su CUSEC
    • Buscar en el diccionario CSV
  4. Si hay match → añadir todas las columnas CSV como propiedades
  5. Guardar GeoJSON modificado

6. Conversión de Tipos Automática

  • "61.29"61.29 (float)
  • "PP""PP" (string)
  • "-15.86"-15.86 (float)

Reglas adicionales:

  • Sufijos _porc y _dif → conversión automática a float

7. Comando de Ejecución

php script.php datos.csv geodata.json resultado.json

8. Validaciones Implementadas

  • Archivos existen y son accesibles
  • CSV tiene columna cusec (case-insensitive)
  • JSON es válido y contiene array features
  • Cada feature tiene la propiedad CUSEC
  • Reporta coincidencias encontradas

9. Estadísticas Generadas

  • Registros CSV procesados
  • Features JSON procesados
  • Coincidencias encontradas
  • Porcentaje de éxito
  • Tiempo de ejecución

10. Ejemplo de Salida por Consola

Procesando: datos.csv (8131 registros)
GeoJSON: geodata.json (8131 features)
Coincidencias: 8131 (100%)
Guardado: resultado.json
✅ Proceso completado

Características Clave

  • Normalización automática de CUSEC
  • Conversión inteligente de tipos
  • Mensajes claros de error y depuración
  • Eficiente con archivos grandes
  • Compatible con herramientas GIS

Limitaciones

  • Archivos muy grandes (>500 MB) pueden requerir más memoria
  • Solo maneja códigos CUSEC numéricos
  • Codificación UTF-8 recomendada

Casos de Uso

  • Datos electorales + mapas municipales
  • Estadísticas + divisiones territoriales
  • Cualquier integración CSV con datos geoespaciales