Compare commits
10 Commits
c2aaabe5ed
...
c09ce95e62
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c09ce95e62 | ||
|
|
cc984114d2 | ||
|
|
6289a7e1ad | ||
|
|
e7489c9c2a | ||
|
|
e62d7cd640 | ||
|
|
1fd88b62fe | ||
|
|
1cbcfea5a2 | ||
|
|
e6881bc6c2 | ||
|
|
be731f8ff8 | ||
|
|
cefaf1bbce |
38
CONTEXTO.md
Normal file
38
CONTEXTO.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Contexto do Projeto
|
||||
|
||||
## Objetivo
|
||||
|
||||
Organizar, preservar e processar documentos relacionados ao projeto `arara_oarmp`, mantendo rastreabilidade das alterações e separando arquivos originais, intermediários e processados.
|
||||
|
||||
## Estrutura de Pastas
|
||||
|
||||
- `raw/`: arquivos originais, sem alteração.
|
||||
- `pre_process/`: scripts e saídas intermediárias de pré-processamento.
|
||||
- `processed/`: dados finais limpos, consolidados ou prontos para análise.
|
||||
|
||||
## Colaboradores
|
||||
|
||||
- `VTO`: Vitor Cesa.
|
||||
- `GNR`: Generoso.
|
||||
- `JOM`: João Marcos.
|
||||
|
||||
## Orientações de Trabalho
|
||||
|
||||
- Manter documentos originais sempre em `raw/`.
|
||||
- Não alterar arquivos dentro de `raw/`; quando necessário, gerar cópias ou saídas em `pre_process/`.
|
||||
- Registrar no `LOG.md` toda entrada, alteração, processamento ou decisão relevante.
|
||||
- Usar o formato de log com data, hora, tag do colaborador e descrição objetiva da ação.
|
||||
- Registrar a origem de cada documento, quando conhecida.
|
||||
- Informar scripts executados e parâmetros importantes.
|
||||
- Registrar quantidade de registros extraídos, descartados, corrigidos ou validados.
|
||||
- Registrar problemas encontrados nos arquivos originais, como erros de digitação, páginas ilegíveis, campos ausentes ou tabelas quebradas.
|
||||
- Registrar decisões de padronização, por exemplo nomes de colunas, unidades, formatos de data e tratamento de acentos.
|
||||
- Explicitar os critérios usados para mover dados de `pre_process/` para `processed/`.
|
||||
|
||||
## Formato Recomendado do Log
|
||||
|
||||
```text
|
||||
| Data | Hora | Autor | Ação | Arquivos | Observações |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-06-15 | 15:41 | VTO | Pré-processou PDF de inspeções | raw/documento.pdf; pre_process/saida.csv | 18 inspeções extraídas |
|
||||
```
|
||||
20
LOG.md
Normal file
20
LOG.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Log do Projeto
|
||||
|
||||
Legenda de autores:
|
||||
|
||||
- `VTO`: Vitor Cesa.
|
||||
- `GNR`: Generoso.
|
||||
- `JOM`: João Marcos.
|
||||
|
||||
| Data | Hora | Autor | Ação | Arquivos | Observações |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-06-15 | 15:41 | VTO | Criou repositório Git do projeto | `.gitignore`; `.gitattributes` | Projeto versionado na branch `main`. |
|
||||
| 2026-06-15 | 15:41 | VTO | Organizou estrutura inicial de dados | `raw/`; `pre_process/`; `processed/` | Documentos originais movidos para `raw/`; pastas vazias preservadas com `.gitkeep`. |
|
||||
| 2026-06-15 | 15:41 | VTO | Pré-processou PDF de inspeções | `raw/documento joaomarcos.pdf`; `pre_process/documento_joaomarcos_texto.txt`; `pre_process/documento_joaomarcos_inspecoes.json`; `pre_process/documento_joaomarcos_inspecoes.csv`; `pre_process/preprocess_pdf.py` | 18 inspeções extraídas; grafias originais preservadas, inclusive `INPEÇÃO`. |
|
||||
| 2026-06-15 | 15:41 | VTO | Separou orientações permanentes do histórico | `CONTEXTO.md`; `LOG.md` | Orientações movidas para `CONTEXTO.md`; `LOG.md` passou a usar data, hora e tag de autor. |
|
||||
| 2026-06-15 | 15:47 | VTO | Renomeou PDF e artefatos derivados com nome descritivo | `raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_texto.txt`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv`; `pre_process/preprocess_pdf.py` | Nome antigo removia contexto técnico; novo padrão usa tipo do documento, modelo, matrícula e data do relatório. |
|
||||
| 2026-06-15 | 15:54 | VTO | Separou campos de controle e duração no pré-processamento | `pre_process/preprocess_pdf.py`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv` | Criadas colunas `tso`, `letra`, `nivel`, `var_media`, `duracao`, `duracao_valor` e `duracao_unidade`; `D` tratado como dias e `H` como horas. |
|
||||
| 2026-06-15 | 16:00 | VTO | Criou guia inicial do repositório | `README.md` | Explica o objetivo do projeto OAMRP, a estrutura de pastas, o uso básico do GitHub/Git e os cuidados de rastreabilidade. |
|
||||
| 2026-06-15 | 16:03 | VTO | Corrigiu interpretação da coluna `Zera TSO` | `pre_process/preprocess_pdf.py`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv` | `Zera TSO` passou a ser coluna única `zera_tso`; níveis `B`, `P` e `O` mapeados para Base, Parque e Orgânico; `controle_original` mantido para rastreabilidade. |
|
||||
| 2026-06-15 | 16:08 | VTO | Separou valores numéricos dos intervalos de inspeção | `pre_process/preprocess_pdf.py`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json`; `pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv` | Criadas colunas discretas para horas de voo, meses contínuos e pousos, mantendo os campos textuais originais. |
|
||||
| 2026-06-15 | 16:43 | VTO | Renomeou o projeto e trocou o repositório remoto | `README.md`; `CONTEXTO.md`; `.git/config` | Projeto passou a se chamar `arara_oarmp`; remoto atualizado para `https://git.ppgao.ita.br/vitorcesavc/arara_oarmp.git`. |
|
||||
149
README.md
Normal file
149
README.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# Arara OARMP
|
||||
|
||||
Este repositório organiza os arquivos e processamentos do projeto Arara OARMP do Esquadrão Arara, em Manaus.
|
||||
|
||||
A ideia é construir, em conjunto, uma base confiável para encaixar missões, aeronaves e manutenções. O repositório serve como lugar único para guardar documentos originais, registrar decisões, transformar relatórios em dados utilizáveis e manter um histórico claro do que foi feito por cada colaborador.
|
||||
|
||||
## O que é um repositório
|
||||
|
||||
Um repositório é uma pasta controlada pelo Git. Ele guarda os arquivos do projeto e também o histórico de alterações.
|
||||
|
||||
O GitHub é o site onde esse repositório fica hospedado de forma privada, para que os colaboradores possam acessar, baixar, atualizar e enviar contribuições.
|
||||
|
||||
Na prática:
|
||||
|
||||
- o Git mostra o que mudou;
|
||||
- o GitHub permite compartilhar o projeto;
|
||||
- os commits são registros das alterações feitas;
|
||||
- o `LOG.md` explica o motivo e o contexto das mudanças importantes.
|
||||
|
||||
## Estrutura do projeto
|
||||
|
||||
```text
|
||||
arara_oarmp/
|
||||
raw/
|
||||
pre_process/
|
||||
processed/
|
||||
CONTEXTO.md
|
||||
LOG.md
|
||||
README.md
|
||||
```
|
||||
|
||||
- `raw/`: documentos originais. Não editar esses arquivos diretamente.
|
||||
- `pre_process/`: scripts e arquivos intermediários gerados a partir dos documentos originais.
|
||||
- `processed/`: arquivos finais, limpos e prontos para análise ou uso.
|
||||
- `CONTEXTO.md`: regras, combinados e orientações permanentes do projeto.
|
||||
- `LOG.md`: histórico rastreável das ações feitas no projeto.
|
||||
- `README.md`: este guia inicial.
|
||||
|
||||
## Colaboradores
|
||||
|
||||
Usamos tags curtas para identificar quem fez cada alteração relevante:
|
||||
|
||||
- `VTO`: Vitor Cesa.
|
||||
- `GNR`: Generoso.
|
||||
- `JOM`: João Marcos.
|
||||
|
||||
Sempre que alguém fizer uma mudança importante, deve registrar no `LOG.md` com data, hora, tag do autor, ação, arquivos e observações.
|
||||
|
||||
## Como usar pelo site do GitHub
|
||||
|
||||
Este caminho é bom para quem só quer ver arquivos, baixar documentos ou conferir o histórico.
|
||||
|
||||
1. Abra o repositório no GitHub.
|
||||
2. Entre nas pastas para ver os arquivos.
|
||||
3. Use `raw/` para consultar documentos originais.
|
||||
4. Use `pre_process/` para consultar arquivos intermediários.
|
||||
5. Use `processed/` para consultar dados finais quando existirem.
|
||||
6. Abra o `LOG.md` para entender o que já foi feito.
|
||||
7. Abra o `CONTEXTO.md` para ver os combinados do projeto.
|
||||
|
||||
Para baixar um arquivo pelo site:
|
||||
|
||||
1. Clique no arquivo.
|
||||
2. Clique em `Download raw file` ou no botão de download.
|
||||
3. Salve no computador.
|
||||
|
||||
## Como usar no computador
|
||||
|
||||
Este caminho é para quem vai mexer nos arquivos e devolver alterações ao GitHub.
|
||||
|
||||
Primeiro, instale o Git:
|
||||
|
||||
```powershell
|
||||
git --version
|
||||
```
|
||||
|
||||
Se o comando não funcionar, o Git ainda não está instalado.
|
||||
|
||||
Depois, clone o repositório:
|
||||
|
||||
```powershell
|
||||
git clone https://git.ppgao.ita.br/vitorcesavc/arara_oarmp.git
|
||||
cd arara_oarmp
|
||||
```
|
||||
|
||||
Antes de começar a trabalhar, atualize sua cópia:
|
||||
|
||||
```powershell
|
||||
git pull
|
||||
```
|
||||
|
||||
Depois de alterar arquivos, veja o que mudou:
|
||||
|
||||
```powershell
|
||||
git status
|
||||
```
|
||||
|
||||
Adicione os arquivos modificados:
|
||||
|
||||
```powershell
|
||||
git add .
|
||||
```
|
||||
|
||||
Crie um commit com uma mensagem curta:
|
||||
|
||||
```powershell
|
||||
git commit -m "Descreva a alteração feita"
|
||||
```
|
||||
|
||||
Envie para o GitHub:
|
||||
|
||||
```powershell
|
||||
git push
|
||||
```
|
||||
|
||||
## Fluxo recomendado de trabalho
|
||||
|
||||
1. Rode `git pull` antes de começar.
|
||||
2. Coloque documentos novos em `raw/`.
|
||||
3. Gere arquivos intermediários em `pre_process/`.
|
||||
4. Coloque resultados finais em `processed/`.
|
||||
5. Atualize o `LOG.md`.
|
||||
6. Faça commit.
|
||||
7. Rode `git push`.
|
||||
|
||||
## Cuidados importantes
|
||||
|
||||
- Não editar arquivos originais dentro de `raw/`.
|
||||
- Não apagar arquivos de outros colaboradores sem combinar.
|
||||
- Não subir arquivos temporários do Office, como arquivos começando com `~$`.
|
||||
- Não colocar senhas, tokens ou informações pessoais desnecessárias no repositório.
|
||||
- Preferir nomes de arquivo descritivos, com tipo do documento, aeronave, matrícula e data quando possível.
|
||||
- Registrar no `LOG.md` qualquer decisão que afete os dados.
|
||||
|
||||
## Estado atual
|
||||
|
||||
Já existe um pré-processamento do relatório de ciclo de inspeções da aeronave C-105 matrícula 2805, com data de relatório `2026-06-15`.
|
||||
|
||||
Arquivos principais:
|
||||
|
||||
```text
|
||||
raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf
|
||||
pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_texto.txt
|
||||
pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json
|
||||
pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv
|
||||
pre_process/preprocess_pdf.py
|
||||
```
|
||||
|
||||
Esse processamento extraiu 18 inspeções e separou campos como inspeção, referência, vencimento, TSO, letra, nível, duração, intervalo por horas de voo, meses contínuos e pousos.
|
||||
1
pre_process/.gitkeep
Normal file
1
pre_process/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
266
pre_process/preprocess_pdf.py
Normal file
266
pre_process/preprocess_pdf.py
Normal file
@@ -0,0 +1,266 @@
|
||||
import csv
|
||||
import json
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
import pdfplumber
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
BASE_NAME = "relatorio_ciclo_inspecoes_c105_2805_2026-06-15"
|
||||
PDF_PATH = ROOT / "raw" / f"{BASE_NAME}.pdf"
|
||||
TXT_PATH = ROOT / "pre_process" / f"{BASE_NAME}_texto.txt"
|
||||
JSON_PATH = ROOT / "pre_process" / f"{BASE_NAME}_inspecoes.json"
|
||||
CSV_PATH = ROOT / "pre_process" / f"{BASE_NAME}_inspecoes.csv"
|
||||
|
||||
ROW_START_RE = re.compile(r"^(?P<seq>\d+)\s+")
|
||||
INTERVAL_RE = re.compile(
|
||||
r"(?P<intervalo>\d+(?::\d+)?\s*(?:HORAS DE V[ÔO]O|MESES CONT[ÍI]NUOS|POUSOS))",
|
||||
re.IGNORECASE,
|
||||
)
|
||||
|
||||
|
||||
def extract_text(pdf_path):
|
||||
pages = []
|
||||
with pdfplumber.open(pdf_path) as pdf:
|
||||
for page in pdf.pages:
|
||||
pages.append(page.extract_text(x_tolerance=1, y_tolerance=3) or "")
|
||||
return "\n\n".join(pages).strip()
|
||||
|
||||
|
||||
def normalize_interval(value):
|
||||
return re.sub(r"\s+", " ", value.replace("VÔO", "VOO")).strip()
|
||||
|
||||
|
||||
def interval_number(intervalo):
|
||||
if not intervalo:
|
||||
return ""
|
||||
first_token = intervalo.split()[0]
|
||||
if ":" in first_token:
|
||||
return int(first_token.split(":", 1)[0])
|
||||
if first_token.isdigit():
|
||||
return int(first_token)
|
||||
return ""
|
||||
|
||||
|
||||
def parse_control_fields(tokens):
|
||||
nivel_descricao = {
|
||||
"B": "Base",
|
||||
"P": "Parque",
|
||||
"O": "Orgânico",
|
||||
}
|
||||
fields = {
|
||||
"zera_tso": "",
|
||||
"letra": "",
|
||||
"nivel": "",
|
||||
"nivel_descricao": "",
|
||||
"var_media": "",
|
||||
"duracao": "",
|
||||
"duracao_valor": "",
|
||||
"duracao_unidade": "",
|
||||
}
|
||||
|
||||
if tokens:
|
||||
fields["zera_tso"] = tokens[0]
|
||||
tokens = tokens[1:]
|
||||
|
||||
if len(tokens) >= 2 and tokens[-1] in {"D", "H"} and tokens[-2].isdigit():
|
||||
duracao_valor = tokens[-2]
|
||||
duracao_codigo = tokens[-1]
|
||||
tokens = tokens[:-2]
|
||||
fields["duracao"] = f"{duracao_valor} {duracao_codigo}"
|
||||
fields["duracao_valor"] = int(duracao_valor)
|
||||
fields["duracao_unidade"] = "dias" if duracao_codigo == "D" else "horas"
|
||||
|
||||
if len(tokens) == 1:
|
||||
if tokens[0] in nivel_descricao:
|
||||
fields["nivel"] = tokens[0]
|
||||
else:
|
||||
fields["letra"] = tokens[0]
|
||||
elif len(tokens) >= 2:
|
||||
if tokens[1] in nivel_descricao:
|
||||
fields["letra"] = tokens[0]
|
||||
fields["nivel"] = tokens[1]
|
||||
fields["var_media"] = " ".join(tokens[2:])
|
||||
elif tokens[0] in nivel_descricao:
|
||||
fields["nivel"] = tokens[0]
|
||||
fields["var_media"] = " ".join(tokens[1:])
|
||||
else:
|
||||
fields["letra"] = tokens[0]
|
||||
fields["nivel"] = tokens[1]
|
||||
fields["var_media"] = " ".join(tokens[2:])
|
||||
|
||||
fields["nivel_descricao"] = nivel_descricao.get(fields["nivel"], "")
|
||||
|
||||
return fields
|
||||
|
||||
|
||||
def split_records(text):
|
||||
records = []
|
||||
current = []
|
||||
|
||||
for raw_line in text.splitlines():
|
||||
line = re.sub(r"\s+", " ", raw_line).strip()
|
||||
if not line:
|
||||
continue
|
||||
if ROW_START_RE.match(line) and " Término da Anterior " in line:
|
||||
if current:
|
||||
records.append(" ".join(current))
|
||||
current = [line]
|
||||
elif current:
|
||||
current.append(line)
|
||||
|
||||
if current:
|
||||
records.append(" ".join(current))
|
||||
|
||||
return records
|
||||
|
||||
|
||||
def parse_header(text):
|
||||
header = {}
|
||||
|
||||
patterns = {
|
||||
"data_relatorio": r"Data:\s*(\d{2}/\d{2}/\d{4})",
|
||||
"hora_relatorio": r"Hora:\s*(\d{2}:\d{2}:\d{2})",
|
||||
"pn": r"PN:\s*(.*?)\s+CFF:",
|
||||
"cff": r"CFF:\s*(.*?)\s+Nomenclatura:",
|
||||
"nomenclatura": r"Nomenclatura:\s*(.*?)\s+SN:",
|
||||
"sn": r"SN:\s*(.*?)\s+Matrícula:",
|
||||
"matricula": r"Matrícula:\s*(.*?)\s+Modelo:",
|
||||
"modelo": r"Modelo:\s*(.*?)\s+Ciclo Atual:",
|
||||
"ciclo_atual": r"Ciclo Atual:\s*(\S+)",
|
||||
}
|
||||
|
||||
compact_text = re.sub(r"\s+", " ", text)
|
||||
for key, pattern in patterns.items():
|
||||
match = re.search(pattern, compact_text)
|
||||
if match:
|
||||
header[key] = match.group(1).strip()
|
||||
|
||||
return header
|
||||
|
||||
|
||||
def parse_record(record):
|
||||
record = record.replace("- Tipo D)", " - Tipo D)")
|
||||
has_tipo_d = " - Tipo D)" in record
|
||||
left, right = record.split(" Término da Anterior ", 1)
|
||||
|
||||
seq_match = ROW_START_RE.match(left)
|
||||
seq = int(seq_match.group("seq"))
|
||||
left_body = left[seq_match.end() :]
|
||||
|
||||
intervalos = [normalize_interval(m.group("intervalo")) for m in INTERVAL_RE.finditer(right)]
|
||||
right_before_interval = INTERVAL_RE.split(right, maxsplit=1)[0].strip()
|
||||
tokens = right_before_interval.split()
|
||||
|
||||
controle_tokens = tokens
|
||||
controle = " ".join(controle_tokens)
|
||||
control_fields = parse_control_fields(controle_tokens)
|
||||
|
||||
especial_marker = " Especial (a contar dela mesma"
|
||||
if especial_marker in left_body:
|
||||
before_ref, referencia = left_body.split(especial_marker, 1)
|
||||
referencia = "Especial (a contar dela mesma"
|
||||
if has_tipo_d:
|
||||
referencia += " - Tipo D)"
|
||||
else:
|
||||
ref_match = re.search(r"(Última .*)$", left_body)
|
||||
referencia = ref_match.group(1).strip() if ref_match else ""
|
||||
before_ref = left_body[: ref_match.start()].strip() if ref_match else left_body
|
||||
|
||||
upper_before_ref = before_ref.upper()
|
||||
desc_idx = upper_before_ref.find("INSPEÇÃO")
|
||||
if desc_idx == -1:
|
||||
desc_idx = upper_before_ref.find("INPEÇÃO")
|
||||
if desc_idx == -1:
|
||||
desc_idx = upper_before_ref.find("CHECK OPERACIONAL")
|
||||
|
||||
if desc_idx != -1:
|
||||
sigla = before_ref[:desc_idx].strip()
|
||||
descricao = before_ref[desc_idx:].strip()
|
||||
else:
|
||||
parts = before_ref.split(maxsplit=1)
|
||||
sigla = parts[0] if parts else ""
|
||||
descricao = parts[1] if len(parts) > 1 else ""
|
||||
|
||||
intervalo_horas_voo = next((item for item in intervalos if "HORAS DE VOO" in item), "")
|
||||
intervalo_meses_continuos = next((item for item in intervalos if "MESES CONTÍNUOS" in item), "")
|
||||
intervalo_pousos = next((item for item in intervalos if "POUSOS" in item), "")
|
||||
|
||||
return {
|
||||
"seq": seq,
|
||||
"sigla_mnt": sigla,
|
||||
"descricao_mnt": descricao,
|
||||
"referencia": referencia,
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": control_fields["zera_tso"],
|
||||
"letra": control_fields["letra"],
|
||||
"nivel": control_fields["nivel"],
|
||||
"nivel_descricao": control_fields["nivel_descricao"],
|
||||
"var_media": control_fields["var_media"],
|
||||
"duracao": control_fields["duracao"],
|
||||
"duracao_valor": control_fields["duracao_valor"],
|
||||
"duracao_unidade": control_fields["duracao_unidade"],
|
||||
"controle_original": controle,
|
||||
"intervalo_horas_voo": intervalo_horas_voo,
|
||||
"intervalo_horas_voo_valor": interval_number(intervalo_horas_voo),
|
||||
"intervalo_meses_continuos": intervalo_meses_continuos,
|
||||
"intervalo_meses_continuos_valor": interval_number(intervalo_meses_continuos),
|
||||
"intervalo_pousos": intervalo_pousos,
|
||||
"intervalo_pousos_valor": interval_number(intervalo_pousos),
|
||||
"intervalos": intervalos,
|
||||
"linha_original": record,
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
text = extract_text(PDF_PATH)
|
||||
TXT_PATH.write_text(text + "\n", encoding="utf-8")
|
||||
|
||||
payload = {
|
||||
"fonte": str(PDF_PATH.relative_to(ROOT)),
|
||||
"metadados": parse_header(text),
|
||||
"inspecoes": [parse_record(record) for record in split_records(text)],
|
||||
}
|
||||
|
||||
JSON_PATH.write_text(json.dumps(payload, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
|
||||
fields = [
|
||||
"seq",
|
||||
"sigla_mnt",
|
||||
"descricao_mnt",
|
||||
"referencia",
|
||||
"tipo_vencimento",
|
||||
"zera_tso",
|
||||
"letra",
|
||||
"nivel",
|
||||
"nivel_descricao",
|
||||
"var_media",
|
||||
"duracao",
|
||||
"duracao_valor",
|
||||
"duracao_unidade",
|
||||
"controle_original",
|
||||
"intervalo_horas_voo",
|
||||
"intervalo_horas_voo_valor",
|
||||
"intervalo_meses_continuos",
|
||||
"intervalo_meses_continuos_valor",
|
||||
"intervalo_pousos",
|
||||
"intervalo_pousos_valor",
|
||||
"intervalos",
|
||||
]
|
||||
with CSV_PATH.open("w", newline="", encoding="utf-8-sig") as csv_file:
|
||||
writer = csv.DictWriter(csv_file, fieldnames=fields, delimiter=";")
|
||||
writer.writeheader()
|
||||
for row in payload["inspecoes"]:
|
||||
csv_row = {key: row[key] for key in fields}
|
||||
csv_row["intervalos"] = " | ".join(row["intervalos"])
|
||||
writer.writerow(csv_row)
|
||||
|
||||
print(f"Gerado: {TXT_PATH.relative_to(ROOT)}")
|
||||
print(f"Gerado: {JSON_PATH.relative_to(ROOT)}")
|
||||
print(f"Gerado: {CSV_PATH.relative_to(ROOT)}")
|
||||
print(f"Inspeções extraídas: {len(payload['inspecoes'])}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,19 @@
|
||||
seq;sigla_mnt;descricao_mnt;referencia;tipo_vencimento;zera_tso;letra;nivel;nivel_descricao;var_media;duracao;duracao_valor;duracao_unidade;controle_original;intervalo_horas_voo;intervalo_horas_voo_valor;intervalo_meses_continuos;intervalo_meses_continuos_valor;intervalo_pousos;intervalo_pousos_valor;intervalos
|
||||
2;INSP 1A;INSPEÇÃO CHECK 1A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;3;3 D;3;dias;N A B 3 3 D;300:00 HORAS DE VOO;300;8 MESES CONTÍNUOS;8;;;300:00 HORAS DE VOO | 8 MESES CONTÍNUOS
|
||||
3;INSP 2A;INSPEÇÃO CHECK 2A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;10;4 D;4;dias;N A B 10 4 D;600:00 HORAS DE VOO;600;16 MESES CONTÍNUOS;16;;;600:00 HORAS DE VOO | 16 MESES CONTÍNUOS
|
||||
4;INSP 3A;INSPEÇÃO CHECK 3A;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;B;Base;10;5 D;5;dias;N A B 10 5 D;900:00 HORAS DE VOO;900;24 MESES CONTÍNUOS;24;;;900:00 HORAS DE VOO | 24 MESES CONTÍNUOS
|
||||
5;INSP 2Y;INSPEÇÃO CALENDÁRICA DE 2 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;B;Base;5;5 D;5;dias;N B B 5 5 D;;;24 MESES CONTÍNUOS;24;;;24 MESES CONTÍNUOS
|
||||
6;CHECK 300;CHECK OPERACIONAL DE 300FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;Orgânico;;6 H;6;horas;N A O 6 H;300:00 HORAS DE VOO;300;;;;;300:00 HORAS DE VOO
|
||||
7;CHECK 400;CHECK OPERACIONAL DE 400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;A;O;Orgânico;;6 H;6;horas;N A O 6 H;400:00 HORAS DE VOO;400;;;;;400:00 HORAS DE VOO
|
||||
8;1-INSP AOL;INSPEÇÃO AOL 295-019;Última inspeção;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;3800 POUSOS;3800;3800 POUSOS
|
||||
9;2-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 8 1-INSP AOL;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;2000 POUSOS;2000;2000 POUSOS
|
||||
10;3-INSP AOL;INSPEÇÃO AOL 295-019;Última Inspeção Específica 9 2-INSP AOL;Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;;;;;2000 POUSOS;2000;2000 POUSOS
|
||||
14;INSP 8Y;INSPEÇÃO CALENDÁRICA DE 8 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;Parque;15;20 D;20;dias;N B P 15 20 D;;;96 MESES CONTÍNUOS;96;;;96 MESES CONTÍNUOS
|
||||
15;INSP 1C;INSPEÇÃO CHECK 1C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;Parque;10;65 D;65;dias;N C P 10 65 D;2400:00 HORAS DE VOO;2400;48 MESES CONTÍNUOS;48;;;2400:00 HORAS DE VOO | 48 MESES CONTÍNUOS
|
||||
16;INSP 2C;INSPEÇÃO GERAL CHECK 2C;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;C;P;Parque;60;10 D;10;dias;N C P 60 10 D;4800:00 HORAS DE VOO;4800;96 MESES CONTÍNUOS;96;;;4800:00 HORAS DE VOO | 96 MESES CONTÍNUOS
|
||||
17;INSP 4Y;INSPEÇÃO CALENDÁRICA DE 4 YEARS;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;B;P;Parque;10;10 D;10;dias;N B P 10 10 D;;;48 MESES CONTÍNUOS;48;;;48 MESES CONTÍNUOS
|
||||
18;INSP 100FH BR01;INSPEÇÃO DE 100 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;Orgânico;;1 H;1;horas;N O 1 H;100:00 HORAS DE VOO;100;;;;;100:00 HORAS DE VOO
|
||||
19;INSP 2400F BR01;INPEÇÃO 2400FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;O;Orgânico;;3 H;3;horas;N O 3 H;2400:00 HORAS DE VOO;2400;;;;;2400:00 HORAS DE VOO
|
||||
20;INSP 3000F BR01;INSPEÇÃO 3000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;3000:00 HORAS DE VOO;3000;;;;;3000:00 HORAS DE VOO
|
||||
22;INSP 1000F;INPEÇÃO 1000FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;1000:00 HORAS DE VOO;1000;;;;;1000:00 HORAS DE VOO
|
||||
23;INSP 50FH;INSPEÇÃO 50 FH;Especial (a contar dela mesma - Tipo D);Término da Anterior;N;;B;Base;;1 D;1;dias;N B 1 D;50:00 HORAS DE VOO;50;;;;;50:00 HORAS DE VOO
|
||||
|
@@ -0,0 +1,489 @@
|
||||
{
|
||||
"fonte": "raw\\relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf",
|
||||
"metadados": {
|
||||
"data_relatorio": "15/06/2026",
|
||||
"hora_relatorio": "13:23:38",
|
||||
"pn": "ANV C-105",
|
||||
"cff": "0117B",
|
||||
"nomenclatura": "AERONAVE, ASA FIXA, CASA 295 (C-105 AMAZONAS)",
|
||||
"sn": "038",
|
||||
"matricula": "2805",
|
||||
"modelo": "C-105",
|
||||
"ciclo_atual": "3650007082"
|
||||
},
|
||||
"inspecoes": [
|
||||
{
|
||||
"seq": 2,
|
||||
"sigla_mnt": "INSP 1A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 1A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "3",
|
||||
"duracao": "3 D",
|
||||
"duracao_valor": 3,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 3 3 D",
|
||||
"intervalo_horas_voo": "300:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 300,
|
||||
"intervalo_meses_continuos": "8 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 8,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"300:00 HORAS DE VOO",
|
||||
"8 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "2 INSP 1A INSPEÇÃO CHECK 1A Especial (a contar dela mesma Término da Anterior N A B 3 3 D 300:00 HORAS DE VÔO - Tipo D) 8 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 3,
|
||||
"sigla_mnt": "INSP 2A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 2A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "10",
|
||||
"duracao": "4 D",
|
||||
"duracao_valor": 4,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 10 4 D",
|
||||
"intervalo_horas_voo": "600:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 600,
|
||||
"intervalo_meses_continuos": "16 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 16,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"600:00 HORAS DE VOO",
|
||||
"16 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "3 INSP 2A INSPEÇÃO CHECK 2A Especial (a contar dela mesma Término da Anterior N A B 10 4 D 600:00 HORAS DE VÔO - Tipo D) 16 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 4,
|
||||
"sigla_mnt": "INSP 3A",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 3A",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "10",
|
||||
"duracao": "5 D",
|
||||
"duracao_valor": 5,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N A B 10 5 D",
|
||||
"intervalo_horas_voo": "900:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 900,
|
||||
"intervalo_meses_continuos": "24 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 24,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"900:00 HORAS DE VOO",
|
||||
"24 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "4 INSP 3A INSPEÇÃO CHECK 3A Especial (a contar dela mesma Término da Anterior N A B 10 5 D 900:00 HORAS DE VÔO - Tipo D) 24 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 5,
|
||||
"sigla_mnt": "INSP 2Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 2 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "5",
|
||||
"duracao": "5 D",
|
||||
"duracao_valor": 5,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B B 5 5 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "24 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 24,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"24 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "5 INSP 2Y INSPEÇÃO CALENDÁRICA DE 2 YEARS Especial (a contar dela mesma Término da Anterior N B B 5 5 D 24 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 6,
|
||||
"sigla_mnt": "CHECK 300",
|
||||
"descricao_mnt": "CHECK OPERACIONAL DE 300FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "6 H",
|
||||
"duracao_valor": 6,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N A O 6 H",
|
||||
"intervalo_horas_voo": "300:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 300,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"300:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "6 CHECK 300 CHECK OPERACIONAL DE 300FH Especial (a contar dela mesma Término da Anterior N A O 6 H 300:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 7,
|
||||
"sigla_mnt": "CHECK 400",
|
||||
"descricao_mnt": "CHECK OPERACIONAL DE 400FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "A",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "6 H",
|
||||
"duracao_valor": 6,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N A O 6 H",
|
||||
"intervalo_horas_voo": "400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 400,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"400:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "7 CHECK 400 CHECK OPERACIONAL DE 400FH Especial (a contar dela mesma Término da Anterior N A O 6 H 400:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 8,
|
||||
"sigla_mnt": "1-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última inspeção",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "3800 POUSOS",
|
||||
"intervalo_pousos_valor": 3800,
|
||||
"intervalos": [
|
||||
"3800 POUSOS"
|
||||
],
|
||||
"linha_original": "8 1-INSP AOL INSPEÇÃO AOL 295-019 Última inspeção Término da Anterior N B 1 D 3800 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 9,
|
||||
"sigla_mnt": "2-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última Inspeção Específica 8 1-INSP AOL",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "2000 POUSOS",
|
||||
"intervalo_pousos_valor": 2000,
|
||||
"intervalos": [
|
||||
"2000 POUSOS"
|
||||
],
|
||||
"linha_original": "9 2-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 8 1-INSP AOL Término da Anterior N B 1 D 2000 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 10,
|
||||
"sigla_mnt": "3-INSP AOL",
|
||||
"descricao_mnt": "INSPEÇÃO AOL 295-019",
|
||||
"referencia": "Última Inspeção Específica 9 2-INSP AOL",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "2000 POUSOS",
|
||||
"intervalo_pousos_valor": 2000,
|
||||
"intervalos": [
|
||||
"2000 POUSOS"
|
||||
],
|
||||
"linha_original": "10 3-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 9 2-INSP AOL Término da Anterior N B 1 D 2000 POUSOS"
|
||||
},
|
||||
{
|
||||
"seq": 14,
|
||||
"sigla_mnt": "INSP 8Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 8 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "15",
|
||||
"duracao": "20 D",
|
||||
"duracao_valor": 20,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B P 15 20 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "96 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 96,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"96 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "14 INSP 8Y INSPEÇÃO CALENDÁRICA DE 8 YEARS Especial (a contar dela mesma Término da Anterior N B P 15 20 D 96 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 15,
|
||||
"sigla_mnt": "INSP 1C",
|
||||
"descricao_mnt": "INSPEÇÃO CHECK 1C",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "C",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "10",
|
||||
"duracao": "65 D",
|
||||
"duracao_valor": 65,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N C P 10 65 D",
|
||||
"intervalo_horas_voo": "2400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 2400,
|
||||
"intervalo_meses_continuos": "48 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 48,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"2400:00 HORAS DE VOO",
|
||||
"48 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "15 INSP 1C INSPEÇÃO CHECK 1C Especial (a contar dela mesma Término da Anterior N C P 10 65 D 2400:00 HORAS DE VÔO - Tipo D) 48 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 16,
|
||||
"sigla_mnt": "INSP 2C",
|
||||
"descricao_mnt": "INSPEÇÃO GERAL CHECK 2C",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "C",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "60",
|
||||
"duracao": "10 D",
|
||||
"duracao_valor": 10,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N C P 60 10 D",
|
||||
"intervalo_horas_voo": "4800:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 4800,
|
||||
"intervalo_meses_continuos": "96 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 96,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"4800:00 HORAS DE VOO",
|
||||
"96 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "16 INSP 2C INSPEÇÃO GERAL CHECK 2C Especial (a contar dela mesma Término da Anterior N C P 60 10 D 4800:00 HORAS DE VÔO - Tipo D) 96 MESES CONTÍNUOS"
|
||||
},
|
||||
{
|
||||
"seq": 17,
|
||||
"sigla_mnt": "INSP 4Y",
|
||||
"descricao_mnt": "INSPEÇÃO CALENDÁRICA DE 4 YEARS",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "B",
|
||||
"nivel": "P",
|
||||
"nivel_descricao": "Parque",
|
||||
"var_media": "10",
|
||||
"duracao": "10 D",
|
||||
"duracao_valor": 10,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B P 10 10 D",
|
||||
"intervalo_horas_voo": "",
|
||||
"intervalo_horas_voo_valor": "",
|
||||
"intervalo_meses_continuos": "48 MESES CONTÍNUOS",
|
||||
"intervalo_meses_continuos_valor": 48,
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"48 MESES CONTÍNUOS"
|
||||
],
|
||||
"linha_original": "17 INSP 4Y INSPEÇÃO CALENDÁRICA DE 4 YEARS Especial (a contar dela mesma Término da Anterior N B P 10 10 D 48 MESES CONTÍNUOS - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 18,
|
||||
"sigla_mnt": "INSP 100FH BR01",
|
||||
"descricao_mnt": "INSPEÇÃO DE 100 FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "1 H",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N O 1 H",
|
||||
"intervalo_horas_voo": "100:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 100,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"100:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "18 INSP 100FH BR01 INSPEÇÃO DE 100 FH Especial (a contar dela mesma Término da Anterior N O 1 H 100:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 19,
|
||||
"sigla_mnt": "INSP 2400F BR01",
|
||||
"descricao_mnt": "INPEÇÃO 2400FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "O",
|
||||
"nivel_descricao": "Orgânico",
|
||||
"var_media": "",
|
||||
"duracao": "3 H",
|
||||
"duracao_valor": 3,
|
||||
"duracao_unidade": "horas",
|
||||
"controle_original": "N O 3 H",
|
||||
"intervalo_horas_voo": "2400:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 2400,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"2400:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "19 INSP 2400F BR01 INPEÇÃO 2400FH Especial (a contar dela mesma Término da Anterior N O 3 H 2400:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 20,
|
||||
"sigla_mnt": "INSP 3000F BR01",
|
||||
"descricao_mnt": "INSPEÇÃO 3000FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "3000:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 3000,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"3000:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "20 INSP 3000F BR01 INSPEÇÃO 3000FH Especial (a contar dela mesma Término da Anterior N B 1 D 3000:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 22,
|
||||
"sigla_mnt": "INSP 1000F",
|
||||
"descricao_mnt": "INPEÇÃO 1000FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "1000:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 1000,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"1000:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "22 INSP 1000F INPEÇÃO 1000FH Especial (a contar dela mesma Término da Anterior N B 1 D 1000:00 HORAS DE VÔO - Tipo D)"
|
||||
},
|
||||
{
|
||||
"seq": 23,
|
||||
"sigla_mnt": "INSP 50FH",
|
||||
"descricao_mnt": "INSPEÇÃO 50 FH",
|
||||
"referencia": "Especial (a contar dela mesma - Tipo D)",
|
||||
"tipo_vencimento": "Término da Anterior",
|
||||
"zera_tso": "N",
|
||||
"letra": "",
|
||||
"nivel": "B",
|
||||
"nivel_descricao": "Base",
|
||||
"var_media": "",
|
||||
"duracao": "1 D",
|
||||
"duracao_valor": 1,
|
||||
"duracao_unidade": "dias",
|
||||
"controle_original": "N B 1 D",
|
||||
"intervalo_horas_voo": "50:00 HORAS DE VOO",
|
||||
"intervalo_horas_voo_valor": 50,
|
||||
"intervalo_meses_continuos": "",
|
||||
"intervalo_meses_continuos_valor": "",
|
||||
"intervalo_pousos": "",
|
||||
"intervalo_pousos_valor": "",
|
||||
"intervalos": [
|
||||
"50:00 HORAS DE VOO"
|
||||
],
|
||||
"linha_original": "23 INSP 50FH INSPEÇÃO 50 FH Especial (a contar dela mesma Término da Anterior N B 1 D 50:00 HORAS DE VÔO - Tipo D)"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
SISTEMA INTEGRADO DE LOGÍSTICA DE MATERIAL E DE SERVIÇOS Pág.: 1 de 1
|
||||
BASE AÉREA DE MANAUS Data: 15/06/2026
|
||||
Hora: 13:23:38
|
||||
RELATÓRIO DE CICLO DE INSPEÇÕES DO EQUIPAMENTO
|
||||
CTR0142R v.10.5
|
||||
PN: ANV C-105 CFF: 0117B Nomenclatura: AERONAVE, ASA FIXA, CASA 295 (C-105 AMAZONAS)
|
||||
SN: 038 Matrícula: 2805 Modelo: C-105 Ciclo Atual: 3650007082
|
||||
Seq. Sigla da MNT Descrição da MNT Referência Referência Tipo"E" Vencimento Zera TSO Letra Nível Var. Média Duração Intervalo Controle
|
||||
2 INSP 1A INSPEÇÃO CHECK 1A Especial (a contar dela mesma Término da Anterior N A B 3 3 D 300:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
8 MESES CONTÍNUOS
|
||||
3 INSP 2A INSPEÇÃO CHECK 2A Especial (a contar dela mesma Término da Anterior N A B 10 4 D 600:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
16 MESES CONTÍNUOS
|
||||
4 INSP 3A INSPEÇÃO CHECK 3A Especial (a contar dela mesma Término da Anterior N A B 10 5 D 900:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
24 MESES CONTÍNUOS
|
||||
5 INSP 2Y INSPEÇÃO CALENDÁRICA DE 2 YEARS Especial (a contar dela mesma Término da Anterior N B B 5 5 D 24 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
6 CHECK 300 CHECK OPERACIONAL DE 300FH Especial (a contar dela mesma Término da Anterior N A O 6 H 300:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
7 CHECK 400 CHECK OPERACIONAL DE 400FH Especial (a contar dela mesma Término da Anterior N A O 6 H 400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
8 1-INSP AOL INSPEÇÃO AOL 295-019 Última inspeção Término da Anterior N B 1 D 3800 POUSOS
|
||||
9 2-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 8 1-INSP AOL Término da Anterior N B 1 D 2000 POUSOS
|
||||
10 3-INSP AOL INSPEÇÃO AOL 295-019 Última Inspeção Específica 9 2-INSP AOL Término da Anterior N B 1 D 2000 POUSOS
|
||||
14 INSP 8Y INSPEÇÃO CALENDÁRICA DE 8 YEARS Especial (a contar dela mesma Término da Anterior N B P 15 20 D 96 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
15 INSP 1C INSPEÇÃO CHECK 1C Especial (a contar dela mesma Término da Anterior N C P 10 65 D 2400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
48 MESES CONTÍNUOS
|
||||
16 INSP 2C INSPEÇÃO GERAL CHECK 2C Especial (a contar dela mesma Término da Anterior N C P 60 10 D 4800:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
96 MESES CONTÍNUOS
|
||||
17 INSP 4Y INSPEÇÃO CALENDÁRICA DE 4 YEARS Especial (a contar dela mesma Término da Anterior N B P 10 10 D 48 MESES CONTÍNUOS
|
||||
- Tipo D)
|
||||
18 INSP 100FH BR01 INSPEÇÃO DE 100 FH Especial (a contar dela mesma Término da Anterior N O 1 H 100:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
19 INSP 2400F BR01 INPEÇÃO 2400FH Especial (a contar dela mesma Término da Anterior N O 3 H 2400:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
20 INSP 3000F BR01 INSPEÇÃO 3000FH Especial (a contar dela mesma Término da Anterior N B 1 D 3000:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
22 INSP 1000F INPEÇÃO 1000FH Especial (a contar dela mesma Término da Anterior N B 1 D 1000:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
23 INSP 50FH INSPEÇÃO 50 FH Especial (a contar dela mesma Término da Anterior N B 1 D 50:00 HORAS DE VÔO
|
||||
- Tipo D)
|
||||
1
processed/.gitkeep
Normal file
1
processed/.gitkeep
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
Reference in New Issue
Block a user