155 lines
4.4 KiB
Markdown
155 lines
4.4 KiB
Markdown
# Meteorologia de Superfície — Aeródromos Brasileiros
|
||
|
||
Coleta, processa e visualiza dados meteorológicos horários de aeródromos brasileiros a partir do portal de dados de superfície do ICEA/DECEA.
|
||
|
||
---
|
||
|
||
## Início rápido
|
||
|
||
Clone o repositório, entre na pasta do módulo e execute:
|
||
|
||
```bash
|
||
cd softwares/test/meteorologia_aeroportos
|
||
```
|
||
|
||
**Windows (PowerShell)**
|
||
```powershell
|
||
.\run\run.bat
|
||
```
|
||
|
||
**Windows (CMD)**
|
||
```cmd
|
||
run\run.bat
|
||
```
|
||
|
||
**Linux / macOS**
|
||
```bash
|
||
chmod +x run/run.sh && ./run/run.sh
|
||
```
|
||
|
||
O script cria o ambiente virtual, instala as dependências e abre o dashboard em **http://localhost:8501**.
|
||
|
||
> **Pré-requisito:** Python 3.10+ e Google Chrome instalados.
|
||
>
|
||
> No PowerShell o `.\` antes do caminho é obrigatório para executar arquivos `.bat` por caminho relativo.
|
||
|
||
---
|
||
|
||
## Estrutura
|
||
|
||
```
|
||
meteorologia_aeroportos/
|
||
├── README.md este arquivo
|
||
├── LICENSE MIT License
|
||
├── docs/ documentação técnica e autoria
|
||
├── _apps/ módulos Python
|
||
│ ├── dashboard.py dashboard interativo (Streamlit)
|
||
│ ├── pipeline.py orquestrador completo
|
||
│ ├── scraper_meteorologia.py coleta de dados via web
|
||
│ ├── concat_meteorologia.py concatenação de CSVs
|
||
│ ├── db.py camada SQLite
|
||
│ └── _diag_outliers.py diagnóstico de qualidade
|
||
├── run/
|
||
│ ├── run.bat inicialização Windows
|
||
│ └── run.sh inicialização Linux/macOS
|
||
├── env/
|
||
│ └── requirements.txt
|
||
└── db/
|
||
├── met.db banco SQLite principal
|
||
└── dados/ CSVs temporários (removidos após coleta)
|
||
```
|
||
|
||
CSVs analíticos permanentes ficam fora da pasta do módulo:
|
||
```
|
||
dataset/tabelas/preproc/meteorologia_aeroportos/<ICAO>/
|
||
```
|
||
|
||
---
|
||
|
||
## Uso via linha de comando
|
||
|
||
Todos os comandos são executados a partir da pasta `meteorologia_aeroportos/`.
|
||
|
||
**Coletar histórico completo de um aeródromo:**
|
||
```bash
|
||
python _apps/pipeline.py --aerodrome SBGR --all-years
|
||
```
|
||
|
||
**Coletar um intervalo de anos:**
|
||
```bash
|
||
python _apps/pipeline.py --aerodrome SBGR --start-year 2020 --end-year 2025
|
||
```
|
||
|
||
**Abrir o dashboard:**
|
||
```bash
|
||
streamlit run _apps/dashboard.py
|
||
```
|
||
|
||
**Diagnóstico de qualidade do banco:**
|
||
```bash
|
||
python _apps/_diag_outliers.py
|
||
```
|
||
|
||
| Parâmetro | Descrição |
|
||
|-----------|-----------|
|
||
| `--aerodrome` | Código ICAO (ex: `SBGR`, `SBSP`) |
|
||
| `--all-years` | Coleta todo o histórico disponível |
|
||
| `--start-year` / `--end-year` | Intervalo de anos |
|
||
| `--no-headless` | Abre o Chrome de forma visível (debug) |
|
||
| `--no-cleanup` | Mantém CSVs trimestrais intermediários |
|
||
|
||
---
|
||
|
||
## Banco de dados
|
||
|
||
`db/met.db` — SQLite com três tabelas:
|
||
|
||
| Tabela | Conteúdo |
|
||
|--------|----------|
|
||
| `observations` | Série temporal horária (10 variáveis por observação) |
|
||
| `outlier_log` | Auditoria de valores tratados por limites físicos |
|
||
| `aerodromes` | Catálogo de aeródromos disponíveis no portal ICEA |
|
||
|
||
**Variáveis na tabela `observations`:**
|
||
|
||
| Coluna | Descrição | Unidade |
|
||
|--------|-----------|---------|
|
||
| `T` | Temperatura do bulbo seco | °C |
|
||
| `Td` | Ponto de orvalho | °C |
|
||
| `UR` | Umidade relativa | % |
|
||
| `QNH` | Pressão atmosférica ao nível do mar | hPa |
|
||
| `WS` | Velocidade do vento | kt |
|
||
| `WG` | Rajada máxima de vento | kt |
|
||
| `WD` | Direção do vento | ° |
|
||
| `VIS` | Visibilidade predominante | dam |
|
||
| `TETO` | Teto de nuvens | dam |
|
||
| `PREC` | Precipitação acumulada | mm |
|
||
|
||
---
|
||
|
||
## Categorias ICAO de condições de voo
|
||
|
||
| Categoria | Teto (dam) | Visibilidade (dam) | Condição |
|
||
|-----------|------------|-------------------|----------|
|
||
| **LIFR** | < 15 | < 50 | IFR Severo |
|
||
| **IFR** | 15–30 | 50–100 | Voo por instrumentos |
|
||
| **MVFR** | 30–100 | 100–300 | VFR Marginal |
|
||
| **VMC** | > 100 | > 300 | Condições visuais |
|
||
|
||
---
|
||
|
||
## Documentação e autoria
|
||
|
||
- [`docs/about.md`](docs/about.md) — descrição técnica detalhada, limitações e oportunidades de melhoria
|
||
- [`docs/authors.md`](docs/authors.md) — autoria, licença e guia para contribuições futuras
|
||
- [`docs/changelog.md`](docs/changelog.md) — histórico de versões por autor
|
||
|
||
---
|
||
|
||
## Fonte dos dados
|
||
|
||
Portal ICEA/DECEA — Dados de Superfície:
|
||
**https://pesquisa.icea.decea.mil.br/superficie_list/**
|
||
|
||
*IED — Instituto de Estudos para o Desenvolvimento · ITA — Instituto Tecnológico de Aeronáutica*
|