--- title: "Extracción masiva de footprint_aurgi → registry" status: completed created: 2026-05-04 completed: 2026-05-05 --- ## Cierre (2026-05-05) Los 9 batches completos: 41 funciones + 4 tipos + app `footprint_geo_stack` + 4 pipelines. Tests: 240 pasan, 2 skip esperados (1 por `osm2pgsql` ausente, 1 por geo stack no relanzable sin `.env` con `VALHALLA_DATA_DIR`). Bugs encontrados y arreglados al cerrar el issue: 1. `setup_geo_stack_docker_pipeline` abortaba `verify` si `docker compose up -d` fallaba. Ahora corre verify aunque el `up` falle (caso típico: stack ya vivo, lanzado con su `.env` en otra parte). 2. El check de PostGIS usaba el nombre `footprint_postgis` que no coincide con el `container_name: better_maps_postgis` del compose. Corregido + credenciales reales (`-U geoserver -d gis`). Función primitiva añadida como subproducto: `docker_container_running_py_infra` con tests unitarios + integración (7 tests, todos pasan). Reutilizable para cualquier verificador de stack. # 0052 — Extracción de funciones de `sources/footprint_aurgi/` Extracción de 45 funciones + 4 tipos del proyecto interno `footprint_aurgi` (código propio Aurgi, sin LICENSE — `source_license: internal-aurgi`). ## Capacidades cubiertas 1. Geocodificación y routing (Valhalla) 2. Generación de isócronas (sync + async batch) 3. Stack Docker geo (PostGIS + Martin + Valhalla) 4. Spatial primitivas (haversine, point-in-polygon, bbox, sindex) 5. Visualización en mapa (basemap OSM, KDE, alpha-shape hulls) 6. PDFs reporting (compresión ghostscript, table pages) 7. Estadística para distribuciones reales (skew/kurt, trimmed/geo means) 8. Fuzzy joining adaptativo 9. Normalización España (CP→provincia) 10. Data prep (CSV→Parquet via duckdb) ## Batches | # | Dominio | Funciones | Owner | |---|---|---|---| | 1 | geo (puras) + tipos | haversine, point_in_polygon, bbox, extent, distance_bucket + LonLat, BBox, IsochroneRequest, Centro | agent-A | | 2 | core (string ES) | slugify_ascii, normalize_for_join, cp_provincia_es, infer_provincia_from_cp | agent-B | | 3 | datascience (stats) | trimmed_mean, geometric_mean, detect_distribution_type, best_central_tendency, summary_stats, kde_density_levels, alpha_shape_concave_hull | agent-C | | 4 | datascience (fuzzy) | fuzzy_merge_adaptive, words_to_dataset, remove_words_from_column | agent-D | | 5 | geo (Valhalla client) | valhalla_route, valhalla_matrix_1_to_n, valhalla_isochrone, valhalla_isochrones_async | agent-E | | 6 | geo (I/O + viz) | load_geojson_polygons, load_boundary_gdf, add_basemap_osm, add_basemap_with_timeout, plot_kde_2d, plot_heatmap_log | agent-F | | 7 | infra (PDF + data) | compress_pdf_ghostscript, render_table_page_pdfpages, add_header_logo, safe_read_csv_fallback, csv_to_parquet_duckdb, osm2pgsql_ingest | agent-G | | 8 | infra (docker stack) | docker-compose footprint geo (PostGIS + Martin + Valhalla) — levantar y verificar | agent-H | | 9 | pipelines | setup_geo_stack_docker, compute_centers_reachability, generate_isochrones_by_zone, count_points_per_zone | agent-I (wave 2) | ## Fuente - Path: `sources/footprint_aurgi/` - Sub-proyectos: aurgi_mapas, better_maps, frontend_mapas, fuzzy_joins, ponderacion_isochronas, zonas_mapas_aurgi - Atribución uniforme: `source_repo: "internal:footprint_aurgi"`, `source_license: "internal-aurgi"` ## Resultado esperado Reporte final por función: ✅ tests pasan / ❌ tests fallan / ⚠️ stub (requiere infra externa).