Panoramica

NavGarminConverter img 2

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

NavGarminConverter img 1

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

Sorgenti sotto NDA forniti solo parzialmente.