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 i valori validi esposti nell'help (Es. 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.shtml). 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.

      14 commenti:

      1. 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?

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

        RispondiElimina
      3. 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

        RispondiElimina
      4. 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

        RispondiElimina
      5. 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

        RispondiElimina
      6. 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

        RispondiElimina
      7. Hello. This is a very useful plugin. Thanks for creating it! One day, do you see adding the possibility of accessing historical data or models, let's say from about 1970 to the present?

        RispondiElimina
        Risposte
        1. Hi, David,
          for now there is no way to use historical data. It is however in the list of additions.

          Elimina
      8. is this project / plugin dead now?
        How can I use historic (1800s) data? Even if less accurate, would like to be able to specify older date.
        Also this plugin is impossible to use on UHD/4k workstation...

        RispondiElimina
        Risposte
        1. Hello Unknown,
          the project is alive! I'm sorry but it's not my main job. I don't have much time for the update.
          The date range available for the calculation is indicated on the Help tab. For now there is no way to use historical data. It is however in the list of additions.

          Elimina
        2. what problem occurs in UHD / 4K workstations?

          Elimina
      9. Hello,
        I guess since we are in 2020 now, the date part has some problem and the results look wrong. Any idea ??!!

        Thanks

        RispondiElimina
        Risposte
        1. Which version of the plugin and QGIS do you use?
          The latest stable version is 2.3.1 and as described in the guide sheet and also in the release note, the conversion is now valid from January 2020 to December 31, 2024.

          Elimina