Geotour a Pietra Cappa e alle Rocce di San Pietro
17 Marzo 2018Come costruire un curva granulometrica con Python
14 Aprile 2018Gli stereonet sono uno strumento fondamentale per i geologi, infatti attraverso le proiezioni stereografiche si possono fare analisi strutturali usando le giaciture geologiche acquisite durante una campagna di rilevamento geologico.
Inoltre gli stereonet vengono impiegati per fare analisi geomeccaniche, quindi studiare la stabilità di versanti in roccia. Una volta prese delle giaciture di discontinuità queste vengono inserite in appositi software che restituiscono proiezioni stereografiche.
La libreria mplstereonet
La libreria mplstereonet, che si basa sulla libreria matplotlib, ci permette di generare stereonets in Python. Questa libreria genera anche contours e dispone di strumenti per analizzare i dati strutturali.
La documentazione ufficiale contiene una vasta gamma di ottimi esempi che consiglio di sfogliare.
Mplstereonet si aspetta che i dati inseriti al suo interno siano nel formato strike-dip, nel quale viene usata la regola della mano destra. Ciò significa che se si posiziona la mano destra sul piano con le dita che puntano verso il basso ( azimut del dip), il pollice punta nella direzione dell’azimut dello strike. Di seguito sono riportati esempi con la regola della mano destra applicata:
- 025/50W: diventa strike 225 e dip 50, si aggiungono 180 gradi alla misura dello strike perché la struttura immerge verso ovest;
- 090/20E: la misura dello strike rimane 90 e dip 20, perché la struttura immerge verso est.
Scripts python per plottare stereonet: alcuni esempi
Come prima cosa importiamo i moduli necessari:
import numpy as np import mplstereonet import matplotlib.pyplot as plt
I moduli numpy, mplstereonet e matplotlib servono per la creazione degli stereonet.
fig = plt.figure() ax = fig.add_subplot(111, projection='stereonet') ax.plane(strike, dip, 'g-', linewidth=0.7) ax.grid() plt.show() ### Proiezione Poli ### fig = plt.figure() ax = fig.add_subplot(111, projection='stereonet') ax.pole(strike, dip, 'g^', markersize=5) ax.grid() plt.show() ### Diagramma di densità ### fig = plt.figure() ax = fig.add_subplot(111, projection='stereonet') ax.pole(strike, dip, c='k', label='Pole of the Planes') ax.density_contourf(strike, dip, measurement='poles', cmap='Blues') #ax.set_title('Density coutour dei poli', y=1.10, fontsize=12) ax.grid() plt.show()
Con il modulo mplstereonet possono essere anche eseguite analisi strutturali; ad esempio si può ricavare l’asse di una piega conoscendo le giaciture dei suoi fianchi.
Dalla geologia strutturale sappiamo che per determinare l’asse di una piega possono essere utilizzati i diagrammi β ed i diagrammi π.
Con i diagrammi β i piani vengono proiettati come grandi cerchi. In una piega cilindrica ogni superficie misurata sui fianchi contiene l’asse della piega: l’intersezione di due di queste superfici definisce una linea, detta asse β, che è parallela all’asse della piega. Se la piega è perfettamente cilindrica, i grandi cerchi rappresentanti le superfici passano tutti per β. Proiettando quindi le superfici misurate sui due fianchi della piega queste si intersecheranno in un unico punto corrispondente all’asse della piega.
Invece con i diagrammi π i piani vengono proiettati mediante i loro poli. Se la piega è cilindrica, i poli dei piani misurati cadono tutti su un grande cerchio (piano π) che rappresenta il piano ortogonale all’asse della piega (in poche parole l’asse della piega corrisponde al polo del piano che contiene tutti i poli delle superfici misurate). Il polo di questo piano, definito dall’asse π, è parallelo all’asse della piega.
######### Asse di una piega ################## strikes=[268.0, 248.0, 240.0, 41.0, 35.0, 20.0] dips=[16.0, 30.0, 45.0, 50.0, 35.0, 20.0] from collections import OrderedDict fig=plt.figure() # Diagramma beta ax = fig.add_subplot(121, projection='stereonet') ax.plane(strikes, dips, c='k', label='Piani (Fianchi della piega)') strike, dip = mplstereonet.fit_girdle(strikes, dips) ax.pole(strike, dip, c='r', label='Asse beta (Intersezione dei piani)') # Digramma pi ax = fig.add_subplot(122, projection='stereonet') ax.pole(strikes, dips, c='k', label='Poli (Fianchi della piega)') ax.plane(strike, dip, c='g', label='Fitted GC') ax.pole(strike, dip, c='r', label='Asse pi (Polo del GC)') for ax, title in zip(fig.axes[1::2], ['Diagramma beta', 'Diagramma pi']): ax.set_title(title, y=1.10, fontsize=12) ax.grid() plt.savefig('asse-piega.png')
L’uso di script di questo tipo è molto utile, sia per la gestione di dati presenti in file in formato csv che per la costruzione di proiezioni stereografiche senza essere vincolati all’uso di software proprietari.
Inoltre, con il modulo mplstereonet si possono creare i “Rose Diagrams”: volete sapere come?
Contattatemi via e-mail o tramite la pagina Facebook di IntraGeo!
Ulteriori letture
Per approfondire l’argomento trattato in questo post consiglio questi libri acquistabili comodamente su Amazon. Poi usando Amazon Prime, puoi riceverli rapidamente a casa tua: provalo cliccando qui!
- Manuale di Data Science in Python
- Tipo di prodotto:ABIS_LIBRO
- Marca:O'Reilly Media
Corso Python
Sei digiuno di Python e vuoi acquisire nozioni su questo potente linguaggio di programmazione? Ti consiglio il corso “Python 3.8 Guida Completa: da Principiante a Esperto” (LINK) presente su Udemy. Saper usare questo linguaggio di programmazione è molto utile, anche perchè possiamo creare da solo degli scripts per le tue analisi anzichè spendere soldi per software proprietari.