maggio 04, 2015

Declinazione Geomagnetica


Prima di qualsiasi sistema di navigazione satellitare orientarsi era cosa di scienza. Provate a chiederlo a Cristoforo Colombo oppure a Ferdinando Magellano, sbagliarsi poteva portare fuori rotta per molte miglia. Le rotte allora si tracciavano anche con l'ausilio della bussola, che non era l'unico strumento utilizzato per orientarsi.
Nell'antichità, per l'orientamento, venivano utilizzati il sole e la volta celeste. Qualcuno poi, si dice siano stati i cinesi, inventò casualmente la bussola e quindi scoprì il campo geomagnetico.
La bussola diviene uno strumento prezioso non perché sia più affidabile ma perché immediata e leggibile da tutti.  Di fondamentale aiuto in mare aperto, nei cieli e in spazi privi di punti di riferimento, il suo unico difetto è che punta al polo magnetico, seguendo l'andamento sinuoso delle linee di forza del campo magnetico terrestre.
Diversamente il polo geografico  si trova sempre in direzione della Stella Polare nell'emisfero boreale  o della Croce del Sud (costellazione) nell'emisfero australe.  
Quasi sempre le carte geografiche indicano solo il polo geografico che  ha, però, posizione diversa dal polo magnetico, questa differenza si chiama DeclinazioneVariazione magnetica.
A queste difficoltà si somma lo spostamento continuo dei due poli magnetici che non stanno mai nello stesso punto. Fortunatamente le moderne tecnologie di osservazione permettono di stimare con una imprecisione tollerabile la continua e quasi lineare migrazione.

...si può fare!


Potevo essere una promessa della conduzione televisiva di documentari,  mi sono limitato a dare un contributo ad una delle più grandi comunità appartenenti all'Open Source Geospatial Foundation, per noi OSGeo (http://www.osgeo.org/).
Qgis come già trattato nel precedente post QGIS i moduli Python e Mac OS X è un validissimo strumento, che mancava però di un plugin per il calcolo del nord magnetico, così nasce il plugin MagneticDeclination (http://plugins.qgis.org/plugins/MagneticDeclination/).


Come funziona il plugin


Il plugin permette le seguenti azioni:

    • inserire coordinate WGS84 
    • selezionare coordinate dalla mappa nel relativo  sistema EPSG 
    • impostare una data compresa tra il  1-10-2014 al 31-12-2019 
    • impostare l'altezza in metri o in piedi 
    • impostare e valorizzare il tipo di heading (bearing), sia magnetico o geografico 
    • Con la semplice pressione del tasto “Calculate” vengono calcolati declinazione e heading


     L'algoritmo di predizione e calcolo utilizzato è frutto del lavoro di Christopher Weiss (https://github.com/cmweiss/geomag)  che ha adattato in python quello originale del NOAA (http://www.ngdc.noaa.gov/geomag/WMM/DoDWMM.shtm). Il modello magnetico utilizzato (WMM2015), come detto prima, ha una validità di circa 5 anni ed è il più preciso, ma esistono modelli meno attendibili che riescono anche a calcolare la declinazione in un range che va dal 1590 ad oggi.

    Una volta calcolati i valori della declinazione possiamo decidere se imprimere sulla mappa una bussola nautica, che riporterà i relativi dati alfanumerici impressi nel suo centro, indicando con una stella la direzione del nord geografico e con una freccia quella del nord magnetico.
    Purtroppo non si può ancora considerare una rosa conforme, nelle prossime release lavorerò per renderla tale.


    Perchè serve


    L'utilità della bussola  oggi è oscurata dai moderni sistemi di navigazione satellitare (GPS & Co), ma alcuni tra i suoi innumerevoli vantaggi sono: 
    • costo ridotto
    • non ha bisogno di batterie e non si scarica
    • non è affetta da disturbi di ricezione
    • è piccola e leggera
    • non si dovrà attendere l'imbrunire per puntare con il sestante la stella di riferimento del vostro emisfero (sempre che sappiate usarlo), io no.

      Se conosciamo la variazione magnetica di un luogo, saremo quindi in grado di orientarci con più precisione, soprattutto in quelle zone dove la declinazione raggiunge i 20°.
      Ci sarà  ancora tanto da lavorare sul plugin, ma io programmo per passione e non per mestiere, siate pazienti.

      Lanciarsi in cose che non conosci, il senso è tutto nella riuscita.

      7 commenti:

      Wellington Duarte ha detto...

      Hi,

      my qgis reported this error:

      m erro ocorreu enquanto executava o seguinte código Python:


      Traceback (most recent call last):
      File "C:/Users/woduarte/.qgis2/python/plugins\cadtools\tools\modifycirculararctool.py", line 103, in deactivate
      print "***************** deactivate modifycirculararctool"
      IOError: [Errno 9] Bad file descriptor


      Versão do Python:
      2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)]


      Versão do QGIS:
      2.8.2-Wien Wien, 1b929ef

      Caminho para o Python: ['C:/Users/woduarte/.qgis2/python/plugins\\processing', 'C:/PROGRA~1/QGISWI~1/apps/qgis/./python', u'C:/Users/woduarte/.qgis2/python', u'C:/Users/woduarte/.qgis2/python/plugins', 'C:/PROGRA~1/QGISWI~1/apps/qgis/./python/plugins', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\matplotlib-1.3.1-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\nose-1.3.3-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\tornado-4.0.1-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\backports.ssl_match_hostname-3.4.0.2-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\certifi-14.05.14-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\bin\\python27.zip', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\DLLs', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\plat-win', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\lib-tk', 'C:\\PROGRA~1\\QGISWI~1\\bin', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\PIL', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\jinja2-2.7.2-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\markupsafe-0.23-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\pytz-2012j-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\win32', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\Pythonwin', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\Shapely-1.2.18-py2.7-win-amd64.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\six-1.3.0-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\wx-2.8-msw-unicode', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\xlrd-0.9.2-py2.7.egg', 'C:\\PROGRA~1\\QGISWI~1\\apps\\Python27\\lib\\site-packages\\xlwt-0.7.5-py2.7.egg', u'C:/Users/woduarte/.qgis2//python', 'C:\\Users\\woduarte\\.qgis2\\python\\plugins\\DsgTools', 'C:\\Users\\woduarte\\.qgis2\\python\\plugins\\irods_qgis', 'C:\\PROGRA~1\\QGISWI~1\\apps\\qgis\\python\\plugins\\fTools\\tools']

      What the solution?

      Aldo Scorza ha detto...

      Hi Wellington,
      I've received the same error. The issue is caused by CADTOOLS.
      Turn it off.

      Francesco Saliola ha detto...

      Buongiorno Aldo,
      ho installato e usato il plugin da te creato e devo anzitutto farti i complimenti per averlo realizzato e per l'immediatezza d'uso e l'ottimo risultato grafico che si ottiene.
      L'unico "appunto" che mi sento di fare è che il plugin purtroppo funziona correttamente solo se in QGIS si utilizza un sistema di riferimento gegrafico, il che in certi casi non è la scelta migliore.
      Quando infatti si impiega un sistema di riferimento kilometrico basato su reticolo UTM, il plugin assume come nord di riferimento il nord rete UTM e non il vero nord geografico. Il nord del reticolo UTM, infatti, coincide con il nord geografico solo al centro del fuso UTM di riferimento ma non coincide con il nord geografico per gran parte dell'estensione del fuso UTM, disostandosene fino a un massimo di 3° E o W.
      Per aggirare il problema so bene che è possibile creare un progetto QGIS con Sistema di Riferimento geografico WGS84, usare il plugin e poi applicare un reticolo UTM nel compositore di stampe mappa, ma questo crea una inevitabile distorsione oltre che nella mappa, anche nel reticolo (che non è più una quadrettatura).
      Ho anche tentato senza successo, restando con SR basato su UTM, di ruotare la "compass rose" creata dal tuo plugin, aggiungendo o sottraendo i gradi convergenza rete calcolabili da pagine come questa

      http://www.earthpoint.us/Convert.aspx

      Ti segnalo tutto ciò non con spirito polemico, ma come contributo per eventuali future versioni del plugin che in questo modo potrebbe diventare utile anche per la "navigazione terrestre" laddove si usino carte con quadrettatura kilometrica.
      Grazie per l'attenzione e ancora sinceri complimenti per la realizzazione che è davvero significativa, visto che esistono pochi plugin che migliorino le funzionalità di QGIS per un uso prettamente "cartografico",

      Grazie e buon lavoro
      Francesco

      Aldo Scorza ha detto...

      Ciao,

      grazie per i complimenti che come sembra ancora non merito pienamente.
      Purtroppo non è molto il tempo che posso dedicare al plugin ma comunque ti ringrazio per la segnalazione, è un problema non valutato che cercherò di risolvere (lo spero) nelle prossime release.

      Ciao e grazie

      Francesco Saliola ha detto...

      Grazie a te per l'attenzione. In ogni caso, per le carte nautiche e aeronautiche basate su sistemi di riferimento Lat-Long va già più che bene :-)

      Se e quando potrai rilasciare una nuova release, sarà benevenuta.

      Di nuovo saluti e buon lavoro
      Francesco

      alt230 ha detto...

      CAN'T PASTE DATA FROM GE

      Aldo Scorza ha detto...

      Hi alt230,
      depends on the inserted coordinate format, normally GE shows coordinate as DMS format, the plugin accept only "GIS-friendly" decimal degrees format(as explained in the integrated help).
      You have to simply convert to the correct format then paste.

      Good luck

      Posta un commento