# donmixho/operacionesaeronaves architecture

> Architecture diagram of the GitHub repository donmixho/operacionesaeronaves, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/donmixho/operacionesaeronaves
- Repository: https://github.com/donmixho/operacionesaeronaves

## Overview

Operaciones Aeronauticas Chile combines historical JAC flight-log analysis with a tactical three-hour weather-risk nowcast for SCTE. The principal workflow ingests flight and airport-operation data, cleans and joins them, then branches into exploratory analysis, airport clustering and international-flight classification. A separate nowcasting branch combines SCTE flights with weather, trains and evaluates a temporal LightGBM model, and produces operational risk scores. The README documents a raw-data inventory and a script that retrieves weather history from Open-Meteo. Pipeline wiring is supported by the sampled Kedro definitions; unsampled nodes and catalog configuration limit certainty about some file-level inputs and outputs.

Main entry points: [`src/operaciones_aeronaves/pipelines/data_processing/nodes.py`](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py) (Airport operations join), [`src/operaciones_aeronaves/pipelines/ml/nodes.py`](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py) (Airport profiles), [`src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py`](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py) (SCTE flight-weather preparation), [`data/01_raw`](https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw) (JAC flight data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Data Sources"]
  node_jac["JAC flight data"]
  node_airport_data["Airport operations"]
  node_weather_data["Weather history"]
  node_weather_fetch["Weather download<br/>[descargar_datos.py]"]
end

subgraph group_prep["Preparation and Inventory"]
  node_inventory["Raw-data inventory<br/>[nodes.py]"]
  node_preprocess["Flight preprocessing<br/>[nodes.py]"]
  node_airport_join["Airport operations join<br/>[nodes.py]"]
end

subgraph group_analysis["Traffic Analysis"]
  node_eda_basic["Basic EDA<br/>[nodes.py]"]
  node_airport_profile["Airport profiles<br/>[nodes.py]"]
  node_eda_advanced["Advanced EDA<br/>[nodes.py]"]
  node_clustering["Airport clustering<br/>[nodes.py]"]
  node_classification["Flight classification<br/>[nodes.py]"]
  node_eda_report["EDA report<br/>[nodes.py]"]
end

subgraph group_nowcast["SCTE Nowcasting"]
  node_scte_prepare["SCTE flight-weather preparation<br/>[nodes.py]"]
  node_risk_model["Risk model training<br/>[nodes.py]"]
  node_risk_score["Operational risk scoring<br/>[nodes.py]"]
end

node_open_meteo(("Open-Meteo"))

node_open_meteo -.->|"provides weather"| node_weather_fetch
node_weather_fetch -.->|"writes weather"| node_weather_data
node_jac -->|"scans files"| node_inventory
node_jac -->|"loads flights"| node_preprocess
node_preprocess -->|"returns cleaned flights"| node_airport_join
node_airport_data -->|"loads operations"| node_airport_join
node_airport_join -->|"analyzes joined flights"| node_eda_basic
node_airport_join -->|"profiles airports"| node_airport_profile
node_airport_join -->|"analyzes joined flights"| node_eda_advanced
node_airport_profile -->|"supplies profiles"| node_eda_advanced
node_airport_profile -->|"clusters profiles"| node_clustering
node_airport_profile -.->|"not supported"| node_classification
node_airport_join -->|"trains classifier"| node_classification
node_airport_join -->|"builds report"| node_eda_report
node_weather_data -->|"loads weather"| node_scte_prepare
node_jac -->|"selects SCTE flights"| node_scte_prepare
node_scte_prepare -->|"trains on prepared data"| node_risk_model
node_scte_prepare -->|"scores prepared data"| node_risk_score
node_risk_model -->|"supplies model"| node_risk_score

click node_jac "https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw"
click node_airport_data "https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw"
click node_weather_data "https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw"
click node_weather_fetch "https://github.com/donmixho/operacionesaeronaves/blob/main/scripts/descargar_datos.py"
click node_inventory "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_inventory/nodes.py"
click node_preprocess "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py"
click node_airport_join "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py"
click node_eda_basic "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py"
click node_airport_profile "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py"
click node_eda_advanced "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py"
click node_clustering "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py"
click node_classification "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py"
click node_eda_report "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py"
click node_scte_prepare "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py"
click node_risk_model "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py"
click node_risk_score "https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_jac,node_airport_data,node_weather_data,node_weather_fetch toneBlue
class node_inventory,node_preprocess,node_airport_join toneAmber
class node_eda_basic,node_airport_profile,node_eda_advanced,node_clustering,node_classification,node_eda_report toneMint
class node_scte_prepare,node_risk_model,node_risk_score toneRose
class node_open_meteo toneIndigo
```

## Components

### Data Sources

- [JAC flight data](https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw): `data/01_raw`
- [Airport operations](https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw): `data/01_raw`
- [Weather history](https://github.com/donmixho/operacionesaeronaves/tree/main/data/01_raw): `data/01_raw`
- [Weather download](https://github.com/donmixho/operacionesaeronaves/blob/main/scripts/descargar_datos.py): `scripts/descargar_datos.py`

### Preparation and Inventory

- [Raw-data inventory](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_inventory/nodes.py): `src/operaciones_aeronaves/pipelines/data_inventory/nodes.py`
- [Flight preprocessing](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py): `src/operaciones_aeronaves/pipelines/data_processing/nodes.py`
- [Airport operations join](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py): `src/operaciones_aeronaves/pipelines/data_processing/nodes.py`

### Traffic Analysis

- [Basic EDA](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/data_processing/nodes.py): `src/operaciones_aeronaves/pipelines/data_processing/nodes.py`
- [Airport profiles](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py): `src/operaciones_aeronaves/pipelines/ml/nodes.py`
- [Advanced EDA](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py): `src/operaciones_aeronaves/pipelines/ml/nodes.py`
- [Airport clustering](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py): `src/operaciones_aeronaves/pipelines/ml/nodes.py`
- [Flight classification](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py): `src/operaciones_aeronaves/pipelines/ml/nodes.py`
- [EDA report](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/ml/nodes.py): `src/operaciones_aeronaves/pipelines/ml/nodes.py`

### SCTE Nowcasting

- [SCTE flight-weather preparation](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py): `src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py`
- [Risk model training](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py): `src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py`
- [Operational risk scoring](https://github.com/donmixho/operacionesaeronaves/blob/main/src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py): `src/operaciones_aeronaves/pipelines/retrasos_ml/nodes.py`

### Other components

- **Open-Meteo**

## Connections

- Open-Meteo → Weather download: provides weather
- Weather download → Weather history: writes weather
- JAC flight data → Raw-data inventory: scans files
- JAC flight data → Flight preprocessing: loads flights
- Flight preprocessing → Airport operations join: returns cleaned flights
- Airport operations → Airport operations join: loads operations
- Airport operations join → Basic EDA: analyzes joined flights
- Airport operations join → Airport profiles: profiles airports
- Airport operations join → Advanced EDA: analyzes joined flights
- Airport profiles → Advanced EDA: supplies profiles
- Airport profiles → Airport clustering: clusters profiles
- Airport profiles → Flight classification: not supported
- Airport operations join → Flight classification: trains classifier
- Airport operations join → EDA report: builds report
- Weather history → SCTE flight-weather preparation: loads weather
- JAC flight data → SCTE flight-weather preparation: selects SCTE flights
- SCTE flight-weather preparation → Risk model training: trains on prepared data
- SCTE flight-weather preparation → Operational risk scoring: scores prepared data
- Risk model training → Operational risk scoring: supplies model
