DataTur real — llegadas extranjeras por aeropuerto (SECTUR/UPM)

Fecha: 2026-09-14 · Proyecto: ~/nef/estado_turismo/spab-retrieval

Problema

El Monitoreo Hotelero (ocupación) no deja entrar sin sesión. Pero DataTur tiene una página pública sin login con base de datos descargable.

Fuente encontrada

Página: https://datatur.sectur.gob.mx/SitePages/upmresidencia.aspx Descarga: https://datatur.sectur.gob.mx/Documentoscompartidos/upm/BD_Residencia.zip (→ BD_Residencia.xlsx, ~19 MB, hoja BDUPM_Res)

Columnas: Año, Fecha, MesNum, Mes, Aeropuerto, Origen, Pais, Región, Sexo, Valor = llegadas de extranjeros por aeropuerto × país de residencia × sexo, mensual, desde 2012 hasta el último mes cerrado (hoy 2026-07). NO chocó el límite de Excel (1,048,574 filas y termina en 2026-07, no truncada).

Cómo se hizo el datatur.csv

Script reproducible: scripts/datatur_desde_upm.py (agrega SUM(Valor) por aeropuerto-mes, mapea aeropuerto → slug, escribe el CSV del conector).

python3 scripts/datatur_desde_upm.py            # descarga el zip y genera
python3 scripts/datatur_desde_upm.py ruta.xlsx  # o desde un xlsx local

Salida: data/raw/datatur.csv → destino,anio,mes,ocupacion,llegadas (ocupacion vacía: esta fuente no la trae). Verificado idempotente.

Mapeo aeropuerto → destino (7 de 10):

Aeropuerto en la baseslug
A.I Tulum Felipe Carrillo Puerto, Q. Roo.tulum
Cancún, Q. Roocancun
Acapulco, Gro.acapulco
Oaxaca, Oax.oaxaca
Puerto Escondido, Oax.puerto-escondido
Puerto Vallarta, Jal.puerto-vallarta
Ciudad de México (AICM)cdmx

Sin aeropuerto propio (no mapeados): bacalar (~Chetumal), playa-del-carmen (~Cozumel), san-miguel-de-allende.

Resultado

Corrida: 1,006 obs (llegadas_turistas), 2012–2026. Señal clara:

  • Acapulco 3,403 (2012-01) → 756 (2026-07): caída.
  • Puerto Vallarta 109,919 → 67,018: caída.
  • Oaxaca 1,121 → 6,603 y Puerto Escondido 1 → 1,161: emergentes.
  • Tulum arranca 2024-02 (su aeropuerto abrió dic-2023) → 8,215 (2026-07).

Límites honestos

  • Es llegada de extranjeros (UPM, por residencia), no llegadas totales ni ocupación hotelera. Métrica usada: llegadas_turistas (documentar el sesgo).
  • La ocupación hotelera sigue pendiente (Monitoreo con sesión) — es la pieza del Burbuja_Index que aún falta.
  • Solo 7 destinos tienen aeropuerto mapeable.

Repetir cuando salga el corte nuevo

Correr el script (descarga el zip actualizado) y re-correr POST /api/retrieve {"fuentes":["datatur"]}. El almacén es append-only y toma la captura más reciente.