- 🚀 Ejecutar el proyecto
- Entrega 1: Visualizaciones
- Entrega 2: Modelos
- 💡 Estructura del proyecto
- 🛠️ Para desarrolladores
python>= 3.12uv>= 0.4
Instalación de librerías y activación del entorno
Instalación uv:
- pip install uv
- localizar donde se ha instalado el paquete(probablemente en C:\Users\TuUsuario\AppData\Local\Packages\PythonSoftwareFoundation\LocalCache\local-packages\Python311(o la versión de la que se disponga)\site-packages\uv
- añadir esta dirección en el path en las variables de entorno
Activación del entorno uv:
$ uv sync
$ source .venv/bin/activateEjecución del notebook seleccionando el entorno virtual .venv
Los dashboards se ejecutan desde el directorio raíz.
$ uv run src/visualization/aire_tierra/dashboard.py
$ uv run src/visualization/despegues/dashboard.py
$ uv run src/visualization/mapa/dashboard.pyHay que ajustar las rutas en cada archivo.
$ uv run src/procesado_datos/ml_1-preprocesado_masivos.py
$ uv run src/procesado_datos/ml_2-concat.py
$ uv run src/procesado_datos/ml_3-sampling.py
$ uv run src/procesado_datos/ml_4-añade_columnas_extra.py
$ uv run src/procesado_datos/ml_5-train_test_split.pyTodos estos archivos funcionan en un pipeline que sacan 2 archivos: train y test
assets: contiene el conjunto de recursos globales del
proyecto imágenes, capturas, js usadas, como iconos.
docs: contiene alguna documentación, junto con algunos problemas que pueden surgir.
Se completa con la wiki del github.
data: contiene alguna documentación, junto con algunos problemas que pueden surgir.
Se completa con la wiki del github.
ex1: entrega 1ex2: entrega 2geojson: archivos geojsonsscenarios: archivos de escenariosTrain: archivos utilizados en train/test
src/evaluacion/: contiene el dashboard dashboard_tiempos_espera.py para evaluación de modelos junto con los datos de predicciones, para evaluar solo hay que cambiar la ruta. Se ejecuta con uv run dashboard_tiempos_espera.py
src/exploracion: contiene notebooks de exploracion
src/exploracion/entrega_1: contiene notebooks de exploracion de la primera entrega.src/exploracion/entrega_2: contiene notebooks de exploracion de la segunda entrega.procesado_nuevo.ipynb: es para analizar los datos SIN samplear.sampled.ipynb: es para analizar los datos sampleadosaeropuerto_geojsons.py: es para visualizar los geojsons
src/procesado_datos/: código que se usa para procesar y sacar los datos.
- Archivos que empiezan por
viz_se utilizaban para los ejercicios de la entrega 1 - Archivos que empiezan por
ml_(ml_2-concat.py...) forman el pipeline del preprocesado de la entrega 2 - Archivo
datos_meteo.py(versión .py "limpia" del notebook `web_scraping_meteorologicos.ipynb``)
src/procesado_datos/codigo_cluster_cloudera: directorio con el código para ejecutar el procesado en el cluster con Spark
src/procesado_datos/utils: módulo para preprocesar más fácilmente, las clases se usaron al inicio del desarrollo y representan cada tipo de mensaje.
src/visualization: código de visualizaciones de datos de la primera entrega.
src/modelado: código de todos los modelos
-
src/modelado/tensorflow: código tensorflowsrc/modelado/tensorflow/modelado_con_sampleo_y_pistas_ocupadas.ipynb: código usado para el modelo de tensorflow antes de tener los datos sampleados.src/modelado/tensorflow/pruebaModeloPistasTensorFlow.py: código para entranar la red neuronal con los datos definitivos.
-
src/modelado/modeloXGBOOSTsrc/modelado/modeloXGBOOST/TrainModel: código del modelo, entrena el modelo y guarda los resultados de test.src/modelado/modeloXGBOOST/PredictTest: código para predecir sobre el conjunto de test (mucho más rápido que ejcutar el modelo entero de nuevo).src/modelado/modeloXGBOOST/PreprocesadoScenario: código para preprocesar los datos que llegan en un escenario.src/modelado/modeloXGBOOST/PredictScenario: código para predecir un ICAO concreto de un escenario.
-
src/modelado/sklearnsrc/modelado/sklearn/modelo_meteoreologico_puntos: código experimental de modelos con agrupaciones por clusters de los puntos de espera, finalemnte desechados. Entrena el modelo y guarda los resultados de test.src/modelado/sklearn/modelo_meteoreologico: código experimental con los primeros modelos y las primerras aproximaciones al modelo sklearn, finalmente desechados.src/modelado/sklearn/modelo_meteo_final: código del modelo final, contiene el modelo con solo aviones parados, solo aviones en movimiento y el que se ha usado finalmente que contiene ambos. Entrena el modelo y guarda los resultados de las predicciones para cada uno de estos modelos.
-
src/modelado/numpyro: código de los modelos probabilísticossrc/modelado/numpyro/modelonumpyro_sin_parados.ipynb: modelo de regresión lineal probabilística mediante numpyro sobre el problema original.src/modelado/numpyro/modelonumpyro_estados.ipynb: notebook que realiza el apartado a) y b) sobre el ejericio 3. Para ello se usa regresión logística bayesiana sobre numpyro.
-
src/modelado/monitoreosrc/modelado/monitoreo/monitor_general.py: clase abstracta que sirve como estructura para las demás.src/modelado/monitoreo/monitor_sklearn.py: define una clase que permite conectar el modelo de sklearn fácilmente con wandb. En otras palabras, define un pipeline que permite meter únicamente un modelo y ya hace la evaluación sobre los datos y se obtienen las gráficas en wandb.src/modelado/monitoreo/monitor_spark.py: análogo para spark.src/modelado/monitoreo/monitor_tensorflow.py: análogo para tensorflow.
-
Problema original: https://mode-s.org/1090mhz/
-
PDF con más detalles sobre ADS-B: https://airmetar.main.jp/radio/ADS-B%20Decoding%20Guide.pdf
-
Documentación pyModeS: https://mode-s.org/pymodes/api/index.html