Geologia e Python: uno script per la creazione degli stereonet

Gli stereonet sono uno strumento fondamentale per i geologi, infatti attraverso le proiezioni stereografiche facciamo analisi strutturali usando le giaciture geologiche acquisite durante una campagna di rilevamento geologico.

Gli stereonet vengono impiegati per fare analisi geomeccaniche e 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.

Bene, in questo vediamo come creare gli stereonet usando Python. Se siete digiuni di Python e volete acquisire nozioni su questo potente linguaggio di programmazione, vi consiglio il corso “Python 3.8 Guida Completa: da Principiante a Esperto” (LINK) presente su Udemy. Sicuramente saper usare questo linguaggio di programmazione e le sue librerie è molto utile, anche perchè possiamo creare degli scripts per le nostre analisi invece che comprare software propietari.

Gli scripts per gli stereonet

Come prima cosa importiamo i moduli necessari:


import pandas as pd
import numpy as np
import mplstereonet
import matplotlib.pyplot as plt

Il modulo pandas serve per leggere il file giaciture.csv, nel quale in precedenza vanno inserite le giaciture. Invece 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()

stereonet piani python
stereonet poli python
steronet densità python

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')

stereonet asse di una piega python

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?Contattateci via e-mail o tramite la pagina Facebook di IntraGeo!

Approfondimenti

Per approfondire l’argomento trattato in questo post consiglio il seguente testo:

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *