I dati LiDAR
24 Marzo 2020
Il cratere di Chicxulub
20 Aprile 2020
I dati LiDAR
24 Marzo 2020
Il cratere di Chicxulub
20 Aprile 2020
Show all

Le giaciture: come convertirle con uno script Python

In geologia strutturale ci sono due notazioni per rappresentazione le giaciture di una struttura geologica: strike/dip e dip e dip/direction.

In Italia la notazione più usata è la strike/dip. In ambito lavorativo molto spesso si devono usare softwares specifici per le analisi strutturali (stereonet) o per le analisi geomeccaniche: questi usano la notazione dip/dip direction che è la notazione più usata in ambito informatico nonchè negli Stati Uniti.

In questo post condivido uno script Python per convertire delle giaciture di strato dalla notazione strike/dip (right hand rule) alla notazione dip/ direction.

Preparazione dei dati

Il primo passo da fare è organizzare bene i dati. Crea un file csv, usando Excell, dove nella prima colonna inserisci le “strike” mentre nella seconda inserisci le dip.

Questo file deve essere salvato nella stessa directory nella quale salveremo il file con lo script.

giaciture-csv

Il codice Python per convertire le giaciture

#FROM STRIKE/DIP (regola mano destra) to DIP/DIP DIRECTION

import pandas as pd

db = pd.read_csv("giaciture.csv")


strike = db.iloc[:,0]
dip = db.iloc[:,1]

dip_direction=[]


def convert():
    for x in strike:
        if x <= 270:
            dip_direction.append(x + 90)
        elif x > 270:
            dip_direction.append(x - 270)



new = pd.DataFrame({'DIP': dip, 'DIP DIRECTION':dip_direction}, name_index="id")

new.to_csv('measures_converted.csv')

In riga 3 si importa la libreria pandas mentre in riga 5 ho creato un dataframe (db) dal file csv (che ho chiamato giaciture.csv).

Nelle righe 8 e 9 ci sono due liste, strike e dip, che contengono i valori di direzione e pendenza delle giaciture presenti nel dataframe.

Con il comando iloc[ ] diciamo allo script in quale posizione del dataframe deve cercare i valori.

Nella riga 11 c’è una lista vuota chiamata dip_direction che verrà popolata con la funzione “convert” che troviamo dalla riga 14 alla riga 19.

Cosa fa questa funzione?

Per ogni elemento x presente nella lista strike, se x è minore o uguale a 270° aggiunge ad x 90 e lo “appende” dentro la lista dip_direction. Se invece x è maggiore di 270° toglie ad x 270 e la appende in dip_direction.

Lanciando la funzione avremo i dati di strike convertiti in dip direction.

Ma noi dobbiamo inserire le giaciture in un software specifico, come ad esempio Dips (Rockscience), magari attraverso un file csv. Come facciamo?

In riga 14 ho definito un nuovo dataframe, chiamato new (ovviamente tu puoi dargli qualsiasi altro nome!) dove nella prima colonna chiamata ‘DIP’ ho inserito i dati di pendenza presenti nella lista dip, mentre nella seconda colonna, denominata ‘DIP DIRECTION’ ho inserito i dati di dip direction che sono nella lista dip_direction.

A questo punto non resta che esportare il dataframe in un nuovo csv usando la riga di comando in riga 15.

Nell’immagine sottostante si può vedere il file risultante.

Approfondimenti su giaciture e Python

Per approfondire l’argomento trattato in questo post ti consiglio i seguenti testi

Antonio Nirta
Antonio Nirta
Geologo classe '86, laureato in Scienze e Tecnologie Geologiche all'Università di Pisa. Oltre a fare divulgazione geologica, svolgo la libera professione di geologo ed insegno Matematica e Scienze. Adoro la scienza, la tecnologia e la fotografia. Lettore appassionato dei romanzi fantasy e dei romanzi storici, ho un debole per la pizza e tifo Juve.

Lascia un commento

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