7 Commits
Author SHA1 Message Date
itziarZG 7aa0fb7a89 feat(mapa): añadir capa 'viviendas vacantes estimadas' por municipio
El usuario queria ver claramente dónde hay viviendas vacantes y cuántas.
Hasta ahora solo teníamos el choropleth de consumo_p50, que era
abstracto y los numeros de Airbnb en circulos confundian.

Nueva variable 'viviendas_vacantes_estimadas' en el dataset:
- Viviendas_totales (municipio) * 0.162 (tasa CCAA INE 2021)
- Asume distribucion uniforme del 16,2% (proxy: en realidad varia
  por municipio, mas alta en zonas turisticas)
- Replicada a todas las secciones del mismo municipio

Capa nueva en el mapa con escala de rojos:
  < 100    vacants   (claro)
  100-500
  500-1500
  1500-5000
  > 5000   vacants   (oscuro, Palma)

Total Balears = 105.632 vacantes (proxy)
- Palma: 30.210
- Calvia: 5.912
- Manacor: 4.629
- Inca: 2.570
- Llucmajor: 3.776
- Eivissa: 3.878

i18n: nueva key 'variable_viviendas_vacantes' en ca.json y es.json
2026-07-15 17:36:12 +02:00
itziarZG ffc170d054 feat(analysis): añadir ratio p10/p50 consumo electrico como proxy de vivienda semi-vacia
Origen: usuario pidió comparar demanda invierno vs verano. API REE rota para
geo_limit=baleares (devuelve 400 en todos los endpoints). Alternativa: analizar
los percentiles de consumo electrico del Censo 2021 (tabla 59532) como proxy
de heterogeneidad de uso.

Logica:
- p10 muy bajo en relacion a p50 (ratio <0.3) = hay casas con consumo muy bajo
  (posibles vacantes, segundas residencias estacionales, personas mayores)
- p10/p50 alto (~0.6+) = distribucion mas homogenea = uso residencial estable

Limitaciones documentadas en data/output/vivienda_vacia_analysis.md:
- Es un snapshot del 2011, NO serie temporal
- Ratio NO distingue invierno de verano, solo colas de bajo consumo
- Para invierno vs verano real, hace falta REE funcionando o Govern Balear

Outputs:
- scripts/07_vivienda_vacia_analysis.py: nuevo script de analisis
- data/output/vivienda_vacia_por_distrito.csv: 116 distritos con ratios + Airbnb
- data/output/vivienda_vacia_analysis.md: reporte markdown con top-10, correlacion, etc
- web/public/vivienda_vacia_*: copies para acceso publico
- ratio_p10_p50_consumo: nueva variable en dataset y mapa (color naranja-rojo)
  Invertido: naranja = mucha cola de bajo consumo (potencial vacio), verde = estable
2026-07-15 12:36:27 +02:00
itziarZG a237ad48f1 feat(data+map): añadir INE Censo 2021 (viviendas por municipio + consumo por distrito) y 3 variables nuevas al mapa
Datos:
- 59531.csv: viviendas totales por municipio (62 Balears, total 1.300.622)
- 59532.csv: percentiles consumo eléctrico por distrito (116 Balears)

Pipeline:
- 01_load_sources: nuevos loaders con parsing latin1
- 02_build_dataset: join por CUSEC prefix (5 dig municipio, 7 dig distrito)
- Nuevos campos: viviendas_totales, consumo_p{10,25,50,75,90}_kwh, airbnb_listings_por_1000_viviendas

Mapa:
- 3 variables nuevas (viviendas_totales verde, consumo_p50_kwh rojo, airbnb_per_1000 morado)
- Nueva fill layer 'all' (sin filtro de isla) para variables universales
- Popup ampliado con sección INE
2026-07-15 11:42:45 +02:00
itziarZG 5511265e16 feat(web): afegir pagina /dades amb downloads + llicencia + repo 2026-07-14 13:43:23 +02:00
opencode 404fd30ac3 fix(data): regenerar dataset_web.json con sumas correctas a nivel isla
El script 02_build_dataset.py hacia SUM de hut_registros/hut_plazas por
seccion censal, multiplicando los valores de Eivissa (76 secciones) y
Formentera (6 secciones) por el numero de secciones del municipio.

Creado scripts/04_regenerate_web_json.py que:
- Lee el CSV raw de HUT Eivissa y agrega por municipio (total real: 2.364
  registros / 18.184 plazas)
- Lee el JSON raw de IBESTAT Formentera (1.375 / 14.935)
- Para Mallorca/Menorca mantiene SUM por seccion del parquet (correcto,
  granularidad seccion censal)

Bug secundario corregido: Mallorca y Menorca tenian los mismos totales
porque se agregaba el dict combinado. Ahora se agrega por isla individual.

Nuevo scripts/05_export_airbnb_geojson.py genera el GeoJSON de listings
individuales para los clusters del mapa (18.391 puntos, 2.97MB).
2026-07-14 12:27:17 +02:00
itziarZG e270a0a54a feat(fase-1): pipeline completo, dataset.parquet + tiles.pmtiles
- 01_load_sources.py: carga INE, shapefile, Airbnb, HUT, IBESTAT
- 02_build_dataset.py: spatial join, agregacion por isla/granularidad
- 03_generate_tiles.py: tippecanoe -zg a partir de dataset.gpkg
- Outputs: dataset.parquet (41KB), dataset_web.json (1KB),
  tiles.pmtiles (1.5MB), STATS.md
- 18.175 listings Airbnb Mallorca+Menorca, 18.184 plazas HUT Eivissa
- Fallback isla por CMUN para 136 secciones rurales sin datos
- .gitignore: commitea outputs clave (parquet/json/tiles/STATS)
2026-07-14 11:46:01 +02:00
itziarZG 53f24de3ce chore: estructura inicial del proyecto 2026-07-14 09:52:12 +02:00