Modules | Area | Type | Hours | Teacher(s) | |
COMPUTATIONAL GEOPHYSICS | GEO/11 | LEZIONI | 60 |
|
Il corso mira a far acquisire agli studenti capacità operative di programmazione e le conoscenze dei metodi numerici per l’elaborazione di dati geofisici. Gli studenti acquisiranno la conoscenza di un linguaggio di programmazione di alto livello (Python) e, attraverso le esercitazioni, saranno in grado di sviluppare codici per l'elaborazione numerica dei dati geofisici
This course aims to provide to the students oparational skills in programming, computational thinking and numerical methods for geophysics. The students will learn a high level programming language (Python) and through practical sessions they will learn to apply it for geophysical data processing.
Attraverso le esercitazioni lo studente dovrà dimostrare di saper applicare in modo critico i concetti illustrati dal docente durante il corso.
Through the practical sessions each student shall show to be able to apply, with critical awareness, what explained by the lecturer during the course.
Al termine del corso lo studente conoscerà un linguaggio di programmazione di alto livello (Python) e sarà in grado di utilizzarlo per risolvere problemi numerici e per l'elaborazione dei dati geofisici. Soprattutto avrà le conoscenze necessarie per poter approfondire autonomamente argomenti avanzati leagati all'elaborazione dei dati geofisici.
The student will learn a high level programming language (Python) and he will be able to use it to solve basic numerical problems and for geophysical data processing. He/She can also carry out in-depth analysis on topics related to geophysical data processing.
Verranno svolte sessioni di live coding finalizzate all'analisi dei dati geofisici utilizzando codici scritti in Python
Live coding practicals aimed at analyzing geophysical data will be carried out using codes written in Python
Questo corso permetterà agli studenti di svilupapre il pensiero computazionale impareranno a risolvere autonomamente problemi di svariata natura
Students attending this course will develop the computational thinkning, furthermore they will learn to solve autonomously a wide range of numerical problems
Verranno svolte sessioni di live coding dove, per la risoluzione di un particolare problema, verranno confrontate differenti stratgie computazionali
Live coding practicals where, in order to solve a particular problem, different comptational strategies will be compared.
Teoria dei Segnali, Sismica a Riflessione (consigliati)
Signal theory; Exploration Seismology (suggested).
Introduzione al corso.
Informatica di base: Rappresentazione digitale dei dati e codifica dell'informazione, Architattura dei calcolatori, Agoritimi e complessità computazionale. Panoramica sui vari linguaggi e paradigmi di programmazione.
Programmazione in Python: Variabili; Strutture Dati; Istruzioni di Controllo del flusso; Funzioni; Incapsulazione; Input e Output; Programmazione Orientata agli ogetti; Ottimizzazione e debugging
Calcolo scientifico e visualizzazione scientifica: Numpy, Scipy e Matplotlib
Applicazioni geofisiche:
Campionamento e Trasformata di Fourier: il campionamento di una sinusoide; l'alias di una sinusoide
Modeling di sismogrammi sintetici: Il modello convoluzionale
Modeling di spettri di sorgenti sismiche: il modello di Brune
Analisi spettrale della forma d'onda di un terremoto, deconvoluzione e calcolo della magnitudo.
Filtraggio di dati geofisici: esempio di applicazione di un filtro nel tempo e nelle frequenze su dati sintetici e reale. filtro di Wiener
Autocorrelazione e cross-correlazione; proprietà dell'autocorrelazione nei confronti del rumore random; esempio di applicazione della cross-correlazione: il template matching.
Traformata di Fourier 2D: esempi sintetici e reali; Filtraggio FK ed esempio di applicazione di un filtro nel dominio FK. Funzione di trasferimento di un array.
Stima della coerenza delle forme d'onda: il funzionale di Semblance
Basic computer science concepts: Digital representation of data, Computer architecture, Algorithms and computational complexity, Overview on programming languages and programming paradigms
Python programming: Variables, Data Structures, Flow control instructions, Functions, Encapsulation, Input and Output, Object Oriented Programming, Code optimization and debugging.
Scientific computing and visualization: Numpy, Scipy and Matplotlib
Geophyisical applications:
Sampling and Fourier Transform: sampling of a sine function and aliasing, the amplitude and phase spectra.
Modeling of seismograms: the convolutional model
Modeling of seismic source spectra: the brune model
Spectral analysis of earthquake waveforms, deconvolution and magnitude estimation.
Filtering seismic signals: application to real and synthetic datasets. Filters in frequency domain and Wiener filters
Cross-correlation and autocorrelation: Application to random noise, Power Spectral Density of seismic noise, Template matching.
2D Fourier Transform: Application to real and synthetic datasets; FK filter and its application. The transfer function of an array.
Waveforms coherence estimation: the Semblance functional
Dispense del corso
Course notes
Esame scritto e orale
written and oral test