update doc
This commit is contained in:
parent
ffb9c9bba4
commit
07186df5e8
154
README.md
154
README.md
@ -1,16 +1,148 @@
|
||||
# FlightMonitor
|
||||
Certamente! Ho preparato due versioni della presentazione, una in italiano e una in inglese. Entrambe evidenziano non solo le funzionalità visibili all'utente, ma anche i punti di forza dell'architettura software, che sono molto importanti per un progetto di questo livello.
|
||||
|
||||
A brief description of FlightMonitor.
|
||||
---
|
||||
|
||||
## Features
|
||||
- Feature 1
|
||||
- Feature 2
|
||||
### Presentazione (Italiano)
|
||||
|
||||
## Getting Started
|
||||
...
|
||||
## FlightMonitor: Applicazione Avanzata per il Monitoraggio del Traffico Aereo
|
||||
|
||||
## Contributing
|
||||
...
|
||||
**FlightMonitor** è un'applicazione desktop sviluppata in Python, progettata per offrire una suite completa di strumenti per il monitoraggio, la registrazione e l'analisi del traffico aereo. Nata come strumento per sviluppatori e appassionati di aviazione, l'applicazione combina un'interfaccia utente reattiva con un backend robusto e multi-threaded per la gestione dei dati in tempo reale e storici.
|
||||
|
||||
## License
|
||||
...
|
||||
---
|
||||
|
||||
### Caratteristiche Principali
|
||||
|
||||
* **Monitoraggio Live:** Visualizza in tempo reale il traffico aereo in una specifica area geografica (Bounding Box). I dati vengono aggiornati a intervalli configurabili, ottimizzati in base allo stato di autenticazione dell'utente (utente registrato vs. anonimo).
|
||||
|
||||
* **Analisi Dati Storici:** Permette di scaricare e visualizzare i dati di volo per un intervallo di tempo passato, definendo l'area di interesse e l'intervallo di campionamento.
|
||||
|
||||
* **Mappa Interattiva e Intelligente:**
|
||||
* Una mappa completamente interattiva basata su tile, con caching su disco per performance ottimali e uso offline.
|
||||
* Funzionalità di pan, zoom e recenter.
|
||||
* Visualizzazione delle tracce dei velivoli con colori unici per ogni aereo.
|
||||
* Una griglia geografica (reticolo) dinamica con meridiani e paralleli, che si adatta intelligentemente al livello di zoom per una leggibilità ottimale.
|
||||
|
||||
* **Viste Dettagliate dei Dati:**
|
||||
* Un pannello di dettaglio rapido che mostra le informazioni principali del velivolo selezionato.
|
||||
* Una finestra di dettaglio completa con tutte le informazioni statiche (dal database) e dinamiche (dati di volo correnti), inclusa una mappa dedicata alla traccia completa del volo.
|
||||
|
||||
* **Logging Dati Avanzato:**
|
||||
* Possibilità di registrare l'intera sessione di monitoraggio.
|
||||
* Salvataggio dei **dati JSON grezzi** ricevuti dal provider, per analisi offline e debug.
|
||||
* Creazione automatica di un **file di report** riassuntivo con i dati della sessione e il conteggio degli aerei per ogni interrogazione.
|
||||
|
||||
* **Gestione Database:**
|
||||
* Importazione di database di aeromobili da file CSV con una dialog di progresso dedicata.
|
||||
* Archiviazione dei dati di volo in un database SQLite giornaliero per una gestione efficiente.
|
||||
|
||||
* **Personalizzazione:**
|
||||
* Salvataggio e caricamento di **profili di aree geografiche** per un accesso rapido alle zone di interesse comune.
|
||||
* Configurazione centralizzata per un facile tuning di parametri API, polling rate e stile della UI.
|
||||
|
||||
---
|
||||
|
||||
### Architettura Tecnica
|
||||
|
||||
Il progetto è costruito su un'architettura **MVC-like (Model-View-Controller)** pulita, con una forte enfasi sulla **separazione delle responsabilità (SoC)**.
|
||||
|
||||
* **Model:** Lo strato dati astrae completamente la fonte (OpenSky, ecc.) attraverso un **modello dati canonico** (`CanonicalFlightState`). Gli `Adapter` dedicati gestiscono la comunicazione con le API esterne. Lo storage è affidato a SQLite con una gestione separata per dati dinamici e statici.
|
||||
|
||||
* **View:** L'interfaccia, basata su **Tkinter (ttk)**, è composta da pannelli modulari e riutilizzabili. È un componente "passivo" che riceve dati dal Controller e notifica le interazioni dell'utente.
|
||||
|
||||
* **Controller:** Il `AppController` orchestra il flusso di lavoro. Non contiene la logica di business, ma delega a componenti specializzati come i `DataProcessor`, `MapCommandHandler`, `RawDataLogger` e `CleanupManager`.
|
||||
|
||||
* **Flusso Dati Asincrono:** Le operazioni di rete (chiamate API) e di rendering della mappa vengono eseguite in **thread separati** per garantire che l'interfaccia utente rimanga sempre fluida e reattiva. La comunicazione tra i thread e il thread principale della GUI avviene in modo sicuro tramite **code (`queue.Queue`)**, seguendo le best practice per le applicazioni concorrenti.
|
||||
|
||||
---
|
||||
|
||||
### Stack Tecnologico
|
||||
|
||||
* **Linguaggi:** Python (con hint di tipo per robustezza)
|
||||
* **GUI:** Tkinter (con widget moderni `ttk`)
|
||||
* **Networking:** `requests`
|
||||
* **Elaborazione Immagini:** `Pillow (PIL)`
|
||||
* **Dati Geospaziali:** `mercantile`, `pyproj`
|
||||
* **Database:** `sqlite3`
|
||||
|
||||
---
|
||||
|
||||
### Sviluppi Futuri
|
||||
|
||||
L'architettura modulare è predisposta per future espansioni, tra cui:
|
||||
* Integrazione di nuove fonti dati (es. FlightAware, ADSB-Hub).
|
||||
* Implementazione della modalità **Playback** per rivedere le sessioni registrate.
|
||||
* Creazione di dashboard con grafici e statistiche avanzate.
|
||||
|
||||
---
|
||||
---
|
||||
|
||||
### Presentation (English)
|
||||
|
||||
## FlightMonitor: An Advanced Aircraft Tracking Application
|
||||
|
||||
**FlightMonitor** is a desktop application developed in Python, designed to offer a comprehensive suite of tools for monitoring, recording, and analyzing air traffic. Conceived as a tool for developers and aviation enthusiasts, the application combines a responsive user interface with a robust, multi-threaded backend for managing real-time and historical data.
|
||||
|
||||
---
|
||||
|
||||
### Key Features
|
||||
|
||||
* **Live Monitoring:** Displays real-time air traffic within a user-defined geographical area (Bounding Box). Data is updated at configurable intervals, optimized based on the user's authentication status (registered vs. anonymous user).
|
||||
|
||||
* **Historical Data Analysis:** Allows for the download and visualization of flight data for a past time range, enabling users to define the area of interest and the sampling interval.
|
||||
|
||||
* **Interactive and Intelligent Map:**
|
||||
* A fully interactive, tile-based map with on-disk caching for optimal performance and offline use.
|
||||
* Features pan, zoom, and recenter functionalities.
|
||||
* Displays aircraft tracks with unique colors for each plane.
|
||||
* A dynamic geographical grid (graticule) with meridians and parallels that intelligently adapts to the current zoom level for optimal readability.
|
||||
|
||||
* **Detailed Data Views:**
|
||||
* A quick-look details panel showing essential information for the currently selected aircraft.
|
||||
* A full-details window with all static information (from the database) and dynamic data (current flight status), including a dedicated map for the aircraft's complete flight track.
|
||||
|
||||
* **Advanced Data Logging:**
|
||||
* The ability to record an entire monitoring session.
|
||||
* Saves the **raw JSON data** received from the provider, ideal for offline analysis and debugging.
|
||||
* Automatically generates a summary **report file** containing session metadata and the aircraft count for each query.
|
||||
|
||||
* **Database Management:**
|
||||
* Imports aircraft databases from CSV files through a dedicated progress dialog.
|
||||
* Archives flight data into a daily SQLite database for efficient management.
|
||||
|
||||
* **Customization:**
|
||||
* Saves and loads **geographical area profiles** for quick access to common zones of interest.
|
||||
* Centralized configuration for easy tuning of API parameters, polling rates, and UI styling.
|
||||
|
||||
---
|
||||
|
||||
### Technical Architecture
|
||||
|
||||
The project is built on a clean, **MVC-like (Model-View-Controller)** architecture with a strong emphasis on the **Separation of Concerns (SoC)**.
|
||||
|
||||
* **Model:** The data layer completely abstracts the source (e.g., OpenSky) through a **canonical data model** (`CanonicalFlightState`). Dedicated `Adapters` handle communication with external APIs. Storage is managed by SQLite, with separate handling for dynamic and static data.
|
||||
|
||||
* **View:** The interface, based on **Tkinter (ttk)**, is composed of modular and reusable panels. It acts as a "passive" component, receiving data from the Controller and notifying it of user interactions.
|
||||
|
||||
* **Controller:** The `AppController` orchestrates the application's workflow. It does not contain business logic itself but delegates to specialized components like `DataProcessors`, `MapCommandHandler`, `RawDataLogger`, and `CleanupManager`.
|
||||
|
||||
* **Asynchronous Data Flow:** Network operations (API calls) and map rendering are executed in **separate worker threads** to ensure the user interface remains always fluid and responsive. Communication between worker threads and the main GUI thread is handled safely via **queues (`queue.Queue`)**, following best practices for concurrent applications.
|
||||
|
||||
---
|
||||
|
||||
### Technology Stack
|
||||
|
||||
* **Languages:** Python (with type hints for robustness)
|
||||
* **GUI:** Tkinter (with modern `ttk` widgets)
|
||||
* **Networking:** `requests`
|
||||
* **Image Processing:** `Pillow (PIL)`
|
||||
* **Geospatial Data:** `mercantile`, `pyproj`
|
||||
* **Database:** `sqlite3`
|
||||
|
||||
---
|
||||
|
||||
### Future Developments
|
||||
|
||||
The modular architecture is designed for future expansions, including:
|
||||
* Integration of new data sources (e.g., FlightAware, ADSB-Hub).
|
||||
* Implementation of a **Playback mode** to review recorded sessions.
|
||||
* Creation of dashboards with advanced charts and statistics.
|
||||
@ -1,24 +1,132 @@
|
||||
# FlightMonitor - English Manual
|
||||
|
||||
## Introduction
|
||||
Welcome to FlightMonitor. This document provides an overview of how to install, use, and understand the project.
|
||||
|
||||
## Installation
|
||||
Describe the installation steps here. For example:
|
||||
1. Clone the repository: `git clone <repository_url>`
|
||||
2. Navigate to the project directory: `cd FlightMonitor`
|
||||
3. Install dependencies: `pip install -r requirements.txt` (if applicable)
|
||||
## User Manual - FlightMonitor
|
||||
|
||||
## Usage
|
||||
Explain how to run and use the application.
|
||||
- To run the application: `python -m flightmonitor`
|
||||
- Command-line arguments (if any).
|
||||
- GUI interaction (if any).
|
||||
**Version 1.0**
|
||||
|
||||
## Development
|
||||
Information for developers contributing to the project.
|
||||
- Code structure.
|
||||
- How to run tests.
|
||||
### Table of Contents
|
||||
1. Introduction
|
||||
2. Installation and Requirements
|
||||
3. User Interface Overview
|
||||
4. Core Features
|
||||
* 4.1. Live Monitoring
|
||||
* 4.2. Historical Data Download
|
||||
* 4.3. Area Profile Management
|
||||
* 4.4. Session Data Logging
|
||||
5. Map Interaction
|
||||
6. Practical Use Cases
|
||||
7. Frequently Asked Questions (FAQ)
|
||||
8. Troubleshooting
|
||||
|
||||
## Troubleshooting
|
||||
Common issues and their solutions.
|
||||
---
|
||||
|
||||
### 1. Introduction
|
||||
|
||||
Welcome to **FlightMonitor**, an advanced desktop application for air traffic monitoring and analysis. FlightMonitor is designed for aviation enthusiasts, hobbyists, and developers who need a powerful and flexible tool to visualize and record flight data from sources like the OpenSky Network.
|
||||
|
||||
This manual will guide you through all the application's features, from initial setup to using its most advanced capabilities.
|
||||
|
||||
### 2. Installation and Requirements
|
||||
|
||||
FlightMonitor is a Python-based application. To run it, ensure you have the following requirements installed in your environment:
|
||||
* Python 3.8 or higher
|
||||
* The Python libraries specified in the `requirements.txt` file, including: `requests`, `Pillow`, `mercantile`, `pyproj`.
|
||||
|
||||
For an optimal experience, it is recommended to use OpenSky Network API credentials to increase the query rate limits. Credentials can be entered in the `data/config.py` file.
|
||||
|
||||
### 3. User Interface Overview
|
||||
|
||||
The FlightMonitor interface is divided into two main, resizable columns:
|
||||
|
||||
* **Left Column (Control Panel):**
|
||||
* **Area Profiles & BBox:** Allows you to define the geographical area of interest (Bounding Box) and to save/load area configurations as "Profiles".
|
||||
* **Data Logging Session:** Contains controls to enable and configure the saving of raw and summary data for the monitoring session.
|
||||
* **Function Notebook:** A tabbed panel to select the operating mode (Live Monitor, Historical Download, Playback).
|
||||
* **Log & Status Area:** Displays detailed application logs and a summary status via a colored semaphore.
|
||||
|
||||
* **Right Column (Display Area):**
|
||||
* **Views Notebook:** A tabbed panel containing the **Map View** and other future views (e.g., Table View).
|
||||
* **Map Tools & Info Panels:** Provides tools to interact with the map (zoom, pan) and displays detailed information about the map itself (coordinates, scale) and the selected aircraft.
|
||||
|
||||
### 4. Core Features
|
||||
|
||||
#### 4.1. Live Monitoring
|
||||
|
||||
This is the primary mode for viewing real-time air traffic.
|
||||
|
||||
**How to use:**
|
||||
1. Select the **"Live Monitor"** tab in the left column.
|
||||
2. Define an area of interest in the "Area Profiles & BBox" panel by entering the minimum and maximum latitude and longitude coordinates, or by selecting a saved profile.
|
||||
3. (Optional) Enable data logging in the "Data Logging Session" section.
|
||||
4. Press the **"Start Live"** button.
|
||||
|
||||
The map will populate with aircraft within the specified area. Their positions will be updated with each query cycle. To end monitoring, press **"Stop Live"**.
|
||||
|
||||
#### 4.2. Historical Data Download
|
||||
|
||||
This mode allows you to download flight data for a past period. **Note:** this requires valid OpenSky credentials.
|
||||
|
||||
**How to use:**
|
||||
1. Select the **"Historical Download"** tab.
|
||||
2. Define the area of interest in the "Area Profiles & BBox" panel.
|
||||
3. In the "Download Parameters" panel, enter the start and end dates and times (in UTC).
|
||||
4. Set the **API Scan Rate** (how often to query the API, in seconds) and the **Sampling Interval** (the time gap between the data points to be downloaded).
|
||||
5. Press **"Start Download"**.
|
||||
|
||||
The application will begin downloading the data slice by slice, showing progress on the map and the virtual clock.
|
||||
|
||||
#### 4.3. Area Profile Management
|
||||
|
||||
To avoid manually entering coordinates every time, you can save areas as profiles.
|
||||
|
||||
* **Save a Profile:** Enter the desired coordinates and press **"Save"**. You will be prompted to enter a name for the profile.
|
||||
* **Load a Profile:** Select a profile from the dropdown menu. The coordinates will be loaded automatically.
|
||||
* **Delete a Profile:** Select a profile and press **"Delete"**. The "Default Zone" profile cannot be deleted.
|
||||
|
||||
#### 4.4. Session Data Logging
|
||||
|
||||
This powerful feature allows you to save the data from a monitoring session for future analysis.
|
||||
|
||||
**How to use:**
|
||||
1. Before starting a session (Live or Historical), check the **"Enable Raw Data Logging"** box.
|
||||
2. The "Save to" field will be populated with a default directory (`Atc_download`). You can change this by pressing **"Browse..."**.
|
||||
3. Start the monitoring. Two files will be created in the specified folder:
|
||||
* `atc-<timestamp>.txt`: Contains the raw JSON data received from the provider, one line per query.
|
||||
* `atc-<timestamp>_report.txt`: Contains a session summary, including the BBox and a table with the aircraft count for each fetch.
|
||||
4. The table in the UI will populate in real-time with the summary data.
|
||||
5. The **"Open Folder"** button directly opens the save location in your system's file explorer.
|
||||
|
||||
### 5. Map Interaction
|
||||
|
||||
* **Pan:** Click and drag the mouse on the map. Alternatively, use the pan buttons in the "Map Tools" panel.
|
||||
* **Zoom:** Use the mouse wheel. Alternatively, use the `+` and `-` buttons in the "Map Tools" panel.
|
||||
* **Select Aircraft:** Left-click on an aircraft icon. Its details will appear in the "Selected Flight Details" panel.
|
||||
* **Context Menu:** Right-click on the map to open a menu that allows you to:
|
||||
* Recenter the map at that point.
|
||||
* Define a new Bounding Box around that point.
|
||||
|
||||
### 6. Practical Use Cases
|
||||
|
||||
* **Monitor traffic over your city:** Enter the coordinates of a 100x100 km BBox around your city, save it as a "Home" profile, and start live monitoring.
|
||||
* **Record a specific event:** If you know an interesting aircraft will pass through a certain area at a specific time, you can start live monitoring with raw data logging enabled to capture all the details of its trajectory.
|
||||
* **Analyze a past anomaly:** Use the "Historical Download" mode to download data for an area and time period where an anomaly occurred (e.g., a go-around) to analyze its dynamics.
|
||||
|
||||
### 7. Frequently Asked Questions (FAQ)
|
||||
|
||||
* **Q: Why don't I see any aircraft on the map in Live mode?**
|
||||
* **A:** Check that your Bounding Box is correct and not too small. Verify that your internet connection is active. If you are using anonymous mode, you may have to wait 10-15 seconds for the first update. Check the status panel for any error messages from the API.
|
||||
|
||||
* **Q: Historical download isn't working. Why?**
|
||||
* **A:** Historical mode requires valid OpenSky Network API credentials to be correctly entered in the `data/config.py` file. Anonymous access does not allow downloading historical data.
|
||||
|
||||
* **Q: Can I change the map's appearance?**
|
||||
* **A:** Currently, the application uses OpenStreetMap as the tile provider. Future versions may allow selecting other map styles.
|
||||
|
||||
* **Q: Where are the log files saved?**
|
||||
* **A:** By default, in the `Atc_download` subfolder within the application's main directory. You can change this path using the "Browse..." button.
|
||||
|
||||
### 8. Troubleshooting
|
||||
|
||||
* **The application won't start:** Ensure that all requirements listed in Section 2 are installed correctly. Run the application from a terminal to see any startup error messages.
|
||||
* **The map only shows gray squares:** This indicates that the map tiles cannot be loaded. Check your internet connection. If the problem persists, the tile cache may be corrupt. Try deleting the `flightmonitor_tile_cache` folder.
|
||||
* **I see errors in the Log panel:** Error messages like "RATE_LIMITED" or "API_ERROR" indicate temporary issues with the API service. The application will attempt to reconnect automatically. If the error is "PERMANENT_FAILURE", check your API credentials.
|
||||
@ -1,24 +1,131 @@
|
||||
# FlightMonitor - Manuale Italiano
|
||||
## Manuale Utente - FlightMonitor
|
||||
|
||||
## Introduzione
|
||||
Benvenuto in FlightMonitor. Questo documento fornisce una panoramica su come installare, utilizzare e comprendere il progetto.
|
||||
**Versione 1.0**
|
||||
|
||||
## Installazione
|
||||
Descrivi i passaggi di installazione qui. Ad esempio:
|
||||
1. Clona il repository: `git clone <repository_url>`
|
||||
2. Naviga nella directory del progetto: `cd FlightMonitor`
|
||||
3. Installa le dipendenze: `pip install -r requirements.txt` (se applicabile)
|
||||
### Indice
|
||||
1. Introduzione
|
||||
2. Installazione e Requisiti
|
||||
3. Panoramica dell'Interfaccia Utente
|
||||
4. Funzionalità Principali
|
||||
* 4.1. Monitoraggio Live
|
||||
* 4.2. Download Dati Storici
|
||||
* 4.3. Gestione dei Profili di Area
|
||||
* 4.4. Logging dei Dati di Sessione
|
||||
5. Interazione con la Mappa
|
||||
6. Casi d'Uso Pratici
|
||||
7. Domande Frequenti (FAQ)
|
||||
8. Risoluzione dei Problemi
|
||||
|
||||
## Utilizzo
|
||||
Spiega come eseguire e utilizzare l'applicazione.
|
||||
- Per eseguire l'applicazione: `python -m flightmonitor`
|
||||
- Argomenti da riga di comando (se presenti).
|
||||
- Interazione con la GUI (se presente).
|
||||
---
|
||||
|
||||
## Sviluppo
|
||||
Informazioni per gli sviluppatori che contribuiscono al progetto.
|
||||
- Struttura del codice.
|
||||
- Come eseguire i test.
|
||||
### 1. Introduzione
|
||||
|
||||
Benvenuti a **FlightMonitor**, un'applicazione desktop avanzata per il monitoraggio e l'analisi del traffico aereo. FlightMonitor è stato progettato per appassionati di aviazione, hobbisti e sviluppatori che necessitano di uno strumento potente e flessibile per visualizzare e registrare dati di volo da fonti come OpenSky Network.
|
||||
|
||||
Questo manuale vi guiderà attraverso tutte le funzionalità dell'applicazione, dalla configurazione iniziale all'uso delle sue capacità più avanzate.
|
||||
|
||||
### 2. Installazione e Requisiti
|
||||
|
||||
FlightMonitor è un'applicazione basata su Python. Per eseguirla, assicuratevi di avere i seguenti requisiti installati nel vostro ambiente:
|
||||
* Python 3.8 o superiore
|
||||
* Le librerie Python specificate nel file `requirements.txt`, tra cui: `requests`, `Pillow`, `mercantile`, `pyproj`.
|
||||
|
||||
Per un'esperienza ottimale, si raccomanda di utilizzare le credenziali API di OpenSky Network per aumentare i limiti di interrogazione. Le credenziali possono essere inserite nel file `data/config.py`.
|
||||
|
||||
### 3. Panoramica dell'Interfaccia Utente
|
||||
|
||||
L'interfaccia di FlightMonitor è suddivisa in due colonne principali, ridimensionabili a piacere:
|
||||
|
||||
* **Colonna Sinistra (Pannello di Controllo):**
|
||||
* **Area Profiles & BBox:** Permette di definire l'area geografica di interesse (Bounding Box) e di salvare/caricare configurazioni di aree come "Profili".
|
||||
* **Data Logging Session:** Contiene i controlli per abilitare e configurare il salvataggio dei dati grezzi e di riepilogo della sessione di monitoraggio.
|
||||
* **Function Notebook:** Un pannello a schede per selezionare la modalità operativa (Live Monitor, Historical Download, Playback).
|
||||
* **Log & Status Area:** Mostra i log dettagliati dell'applicazione e uno stato sintetico tramite un semaforo colorato.
|
||||
|
||||
* **Colonna Destra (Area di Visualizzazione):**
|
||||
* **Views Notebook:** Un pannello a schede che contiene la **Map View** e altre viste future (es. Table View).
|
||||
* **Map Tools & Info Panels:** Fornisce strumenti per interagire con la mappa (zoom, pan) e visualizza informazioni dettagliate sulla mappa stessa (coordinate, scala) e sul velivolo selezionato.
|
||||
|
||||
### 4. Funzionalità Principali
|
||||
|
||||
#### 4.1. Monitoraggio Live
|
||||
|
||||
Questa è la modalità principale per visualizzare il traffico aereo in tempo reale.
|
||||
|
||||
**Come si usa:**
|
||||
1. Selezionare la tab **"Live Monitor"** nella colonna di sinistra.
|
||||
2. Definire un'area di interesse nel pannello "Area Profiles & BBox" inserendo le coordinate di latitudine e longitudine minime e massime, oppure selezionando un profilo salvato.
|
||||
3. (Opzionale) Abilitare il logging dei dati nella sezione "Data Logging Session".
|
||||
4. Premere il pulsante **"Start Live"**.
|
||||
|
||||
La mappa si popolerà con gli aerei presenti nell'area specificata. Le loro posizioni verranno aggiornate a ogni ciclo di interrogazione. Per terminare il monitoraggio, premere **"Stop Live"**.
|
||||
|
||||
#### 4.2. Download Dati Storici
|
||||
|
||||
Questa modalità permette di scaricare dati di volo per un periodo passato. **Nota:** richiede credenziali OpenSky valide.
|
||||
|
||||
**Come si usa:**
|
||||
1. Selezionare la tab **"Historical Download"**.
|
||||
2. Definire l'area di interesse nel pannello "Area Profiles & BBox".
|
||||
3. Nel pannello "Download Parameters", inserire le date e gli orari di inizio e fine (in UTC).
|
||||
4. Impostare l'**API Scan Rate** (quanto spesso interrogare l'API, in secondi) e il **Sampling Interval** (l'intervallo tra i punti dati da scaricare).
|
||||
5. Premere **"Start Download"**.
|
||||
|
||||
L'applicazione inizierà a scaricare i dati "fetta per fetta", mostrando l'avanzamento sulla mappa e sull'orologio virtuale.
|
||||
|
||||
#### 4.3. Gestione dei Profili di Area
|
||||
|
||||
Per evitare di inserire manualmente le coordinate ogni volta, è possibile salvare le aree come profili.
|
||||
|
||||
* **Salvare un Profilo:** Inserire le coordinate desiderate e premere **"Save"**. Verrà chiesto di inserire un nome per il profilo.
|
||||
* **Caricare un Profilo:** Selezionare un profilo dal menu a tendina. Le coordinate verranno caricate automaticamente.
|
||||
* **Cancellare un Profilo:** Selezionare un profilo e premere **"Delete"**. Non è possibile cancellare il profilo "Default Zone".
|
||||
|
||||
#### 4.4. Logging dei Dati di Sessione
|
||||
|
||||
Questa potente funzionalità permette di salvare i dati di una sessione di monitoraggio per analisi future.
|
||||
|
||||
**Come si usa:**
|
||||
1. Prima di avviare una sessione (Live o Storica), spuntare la casella **"Enable Raw Data Logging"**.
|
||||
2. Il campo "Save to" si popolerà con una directory di default (`Atc_download`). È possibile cambiarla premendo **"Browse..."**.
|
||||
3. Avviare il monitoraggio. Verranno creati due file nella cartella specificata:
|
||||
* `atc-<timestamp>.txt`: Contiene i dati JSON grezzi ricevuti dal provider, una riga per ogni interrogazione.
|
||||
* `atc-<timestamp>_report.txt`: Contiene un riepilogo della sessione, inclusi BBox e una tabella con il conteggio degli aerei per ogni fetch.
|
||||
4. La tabella nella UI si popolerà in tempo reale con i dati di riepilogo.
|
||||
5. Il pulsante **"Open Folder"** apre direttamente la cartella di salvataggio nel file explorer del sistema.
|
||||
|
||||
### 5. Interazione con la Mappa
|
||||
|
||||
* **Pan (Spostamento):** Cliccare e trascinare il mouse sulla mappa. In alternativa, usare i pulsanti di pan nel pannello "Map Tools".
|
||||
* **Zoom:** Usare la rotellina del mouse. In alternativa, usare i pulsanti `+` e `-` nel pannello "Map Tools".
|
||||
* **Selezione Aereo:** Cliccare con il tasto sinistro su un'icona di un aereo. I suoi dettagli appariranno nel pannello "Selected Flight Details".
|
||||
* **Menu Contestuale:** Cliccare con il tasto destro sulla mappa per aprire un menu che permette di:
|
||||
* Ricentrare la mappa in quel punto.
|
||||
* Definire una nuova Bounding Box attorno a quel punto.
|
||||
|
||||
### 6. Casi d'Uso Pratici
|
||||
|
||||
* **Monitorare il traffico sopra casa:** Inserire le coordinate di una BBox di circa 100x100 km attorno alla propria città, salvarla come profilo "Casa" e avviare il monitoraggio live.
|
||||
* **Registrare un evento specifico:** Se si sa che un aereo interessante passerà in una certa area a un certo orario, si può avviare il monitoraggio live con il logging dei dati grezzi abilitato per catturare tutti i dettagli della sua traiettoria.
|
||||
* **Analizzare un'anomalia passata:** Usare la modalità "Historical Download" per scaricare i dati di un'area e di un periodo in cui si è verificato un evento anomalo (es. un go-around) per analizzarne la dinamica.
|
||||
|
||||
### 7. Domande Frequenti (FAQ)
|
||||
|
||||
* **D: Perché non vedo aerei sulla mappa in modalità Live?**
|
||||
* **R:** Controlla che la tua Bounding Box sia corretta e non troppo piccola. Verifica che la tua connessione internet sia attiva. Se stai usando la modalità anonima, potresti dover attendere 10-15 secondi per il primo aggiornamento. Controlla il pannello di stato per eventuali messaggi di errore dall'API.
|
||||
|
||||
* **D: Il download storico non funziona. Perché?**
|
||||
* **R:** La modalità storica richiede credenziali API di OpenSky Network valide e correttamente inserite nel file `data/config.py`. L'accesso anonimo non permette di scaricare dati storici.
|
||||
|
||||
* **D: Posso cambiare l'aspetto della mappa?**
|
||||
* **R:** Attualmente, l'applicazione usa OpenStreetMap come fornitore di tile. Future versioni potrebbero permettere di selezionare altri stili di mappa.
|
||||
|
||||
* **D: Dove vengono salvati i file di log?**
|
||||
* **R:** Per default, nella sottocartella `Atc_download` all'interno della cartella principale dell'applicazione. È possibile cambiare questo percorso tramite il pulsante "Browse...".
|
||||
|
||||
### 8. Risoluzione dei Problemi
|
||||
|
||||
* **L'applicazione non si avvia:** Assicurati che tutti i requisiti elencati nella Sezione 2 siano installati correttamente. Esegui l'applicazione da un terminale per visualizzare eventuali messaggi di errore all'avvio.
|
||||
* **La mappa mostra solo quadrati grigi:** Questo indica che i "tile" della mappa non possono essere caricati. Controlla la tua connessione internet. Se il problema persiste, la cache dei tile potrebbe essere corrotta. Prova a cancellare la cartella `flightmonitor_tile_cache`.
|
||||
* **Vedo errori nel pannello di Log:** Messaggi di errore come "RATE_LIMITED" o "API_ERROR" indicano problemi temporanei con il servizio API. L'applicazione tenterà di riconnettersi automaticamente. Se l'errore è "PERMANENT_FAILURE", controlla le tue credenziali API.
|
||||
|
||||
## Risoluzione dei problemi
|
||||
Problemi comuni e relative soluzioni.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user