Panoramica
CartoGarminConverter è stato sviluppato per Navionics S.p.A. (acquisita in seguito da Garmin) per convertire geometrie complesse dal formato Shapefile (.shp) in carte nautiche elettroniche (.img) compatibili con i plotter di navigazione Garmin (serie EchoMap e successive).
Il progetto ha comportato un lavoro approfondito sulla semplificazione, mapping e gestione delle geometrie per venire incontro alle caratteristiche di rendering e visualizzazione dei plotter di navigazione marina Garmin.
Durata del Progetto e Competenze
- Tempo di Realizzazione: 12+ mesi
- Conoscenze Acquisite:
- Approfondimento Python e parallelismo
- Librerie per lavorare con gli shapefile
- Algoritmi geometrici:
- Semplificazione
- Generazione di geometrie
- Differenza fra poligoni
Implementazione Tecnica
Caratteristiche Core
- Architettura Multi-processo:
- Sfrutta il multiprocess di Python
- Ottimizzato per elaborazione parallela di grandi dataset
- Pipeline di preprocessing configurabile
Librerie e Tecnologie
- Librerie Principali:
- Gdal/OGR per elaborazione shapefile
- Shapely per operazioni geometriche
- Supporto Formati:
- Input: ShapeFile (.shp)
- Output: formato carte Garmin (.img)
- Supporto Cross-platform:
- Nativo su macOS/Linux
- Supporto Windows tramite emulatore Wine
Pipeline di Preprocessing
Il tool implementa una sofisticata fase di preprocessing basata sui vari livelli di zoom:
- Eliminazione punti in base al livello
- Semplificazione e approssimazione di linee
- Operazioni di merge su shapefile
- Operazioni di dissolve per ottimizzazione geometrie
Miglioramento Dati
- Generazione POI: Creazione automatica di Points of Interest
- Dati Real-time: Informazioni aggiuntive per la lettura in realtime di caratteristiche delle aree
- Mapping Feature: Mapping completo tra le feature disponibili in ingresso e quelle supportate da Garmin
Caratteristiche di Sviluppo
Sistema di Configurazione
- Setup Flessibile: File di configurazione per ottimizzazione processo
- Parametri Personalizzabili: Impostazioni regolabili per diverse esigenze
- Test Prototipi: Validazione iniziale delle funzionalità tramite prototipazione
Controllo Qualità
- Strumenti di Verifica:
- Validazione output intermedio
- Controllo correttezza dati in input
- Tool separati per verifica punti, linee ed aree
Reverse Engineering
Il progetto ha incluso fasi di Reverse Engineering del formato Garmin, pur utilizzando il compilatore cGPSMapper già presente sul mercato.
Obiettivo del Progetto
L’obiettivo finale è stato quello di ricreare le carte nautiche molto più ricche e dettagliate di Navionics su hardware della concorrenza (Garmin), mantenendo l’alto livello di qualità e dettaglio.
Questo ha richiesto particolare attenzione a:
- Preservazione accuratezza dei dati
- Ottimizzazione livello di dettaglio
- Considerazioni sulle performance
- Compatibilità hardware
Link al Progetto
Sorgenti sotto NDA forniti solo parzialmente.
- Codice e Documentazione: NavGarminConverter