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
jsonyfilede PHP - Entorno: Windows (compatible con Linux / macOS)
5. Algoritmo Paso a Paso
- Cargar CSV → crear diccionario con CUSEC normalizado como clave
- Leer GeoJSON → iterar sobre
features - Para cada feature:
- Normalizar su CUSEC
- Buscar en el diccionario CSV
- Si hay match → añadir todas las columnas CSV como propiedades
- 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
_porcy_dif→ conversión automática afloat
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