Coder Social home page Coder Social logo

Ciao! 👋 I'm Matteo (he/him )

I am a passionate, actively curious, data-driven geoscientist


Curriculum Vitae

For a traditional, Google-style CV, click this link


Table of Contents

  1. GitHub and Stack Overflow Stats
  2. Skills
  3. Featured blog posts
  4. Articles published in Geophysical literature
  5. Upcoming articles and tutorials
  6. Projects portfolio
  7. Exploratory Data Analysis and visualization portfolio
  8. Coding challenges
  9. My Data Science continuous learning roadmap
  10. Book library
  11. Community engagement
  12. Stuff I would do differently

GitHub and Stack Overflow Stats

Anurag's github stats

profile for MyCarta on Stack Exchange, a network of free, community-driven Q&A sites


Skills


Featured blog posts


Articles published in Geophysical literature


Upcoming articles and tutorials

For 52 Things You Should Know About Geocomputing: A crowdsourced collection of articles from practitioners, reviewed and edited by the Software Underground community:

Projects portfolio

made-with-python

  • Tutorial: Working with 3D seismic data in Python using segyio, numpy, Scikit-image. A notebook to demonstrate how to:
    • read a seismic amplitude volume and a seismic similarity volume as numpy arrays using segyio
    • manipulate the similarity to create a discontinuity / fault volume
    • create a fault mask and display a couple of amplitude time slices with superimposed faults
    • write the fault volume to SEG-Y file re-using the headers from the input file

  • Image augmentation pipelines for Deep Learning. I've worked on two image augmentation pipelines to increase the size of training sets for classification of geologic edges in seismic data, a typically low bias / high variance problem.
    • I developed the first pipeline to increase the size of training sets for classification of geologic edges in seismic data. The work was commissioned by a company (as a free-lance) and I am not able to share any detail on the image manipulations used. I have permission, however, to disclose that in production tests with Convolutional Neural Networks the approach helped improve performance, and that these efforts paved the path for the company's subsequent coding and investigations.
    • I developed the second pipeline working with the images from the 2018 TGS Salt Identification Challenge on Kaggle in mind. Although I did not participate in the competition, having considere at length the problem of segmenting salt deposits, I came up with the idea of an "adversarial" augmentation strategy, in which not only the size of the training set is increased, but the task is rendered much harder with the image transformation. Some examples are shown below. Preliminar tests (unpublished) are encouraging and I am currently working at open-sourcing my functions by way of a PR to the Augmentor package, so that where operations can be added not only in a sequence, but also stochastically with a probability value assigned by the user for each operation.

  • Web app (Hackathon project): Sketch2model - a browser-based app to turn back-of-the-napkin geological sketches into geologic models that can then be used to generate synthetic seismic sections. The web app was Built around a prototype put together at the 2015 Calgary Geoscience Hackathon, organized by Agile Scientific, with team mates Evan Saltman and Elwyn Galloway, and special guest Ben Bougher from Agile. The original idea for the prototype was proposed by Elwyn at the Hackathon, was to make an app that would turn an image of geological sketch (for example one taken from a boardmeeting whiteboard) into a digital rock model. The implementation of the finished app involves using morphological filtering and other image processing methods to enhance the sketch and convert it into a model with discrete bodies to be passed to a tool akin to Agile's modelr.io to create and investigate a synthetic seismic model.

Blog posts:

sketch2model

sketch2model – sketch image enhancements

sketch2model – linking edges with mathematical morphology

Workflow:

App screenshot:

  • Web app (Hackathon project) : FRIDA (restore live app and add link here) - a browser-based app for interactive removal of acquisition footprint noise removal from 3D seismic data.

Prior to the hackathon I had done a lot of work imagining and protptyping a tool to remove acquisition footprint from 2D seismic slices (this has been my longest-lived side project) and eventually asked Elwyn to participate. If you are curious about the whole background, please read Chapter 39 of the upcoming 52 Things You Should Know About Geocomputing and then head over to my Tutorial notebook. For a definition of acquisition footprint, please read the SEG Wiki, and to see some published industry examples, read this blog post.

At the 2021 Hackathon, Transform virtual conference we took the existing tool to the next level with team mates @leocd91, @WesleyTheGeolien,and @markogauk. We spent significant efforts on brainstorming several approaches for how to turn the tool in a production caliber app; check this screen shot of our MIRO board:

And the we set out to work. We were really impressed with the final result, see animation below:

  • Collaboration project: Rainbow. For this project with Matt Hall, I created a pipeline of image processing routines to enhance, clean-up, segment, and rectify the main map from published figures. This was a necessary preprocessing stage for Rainbow, an online tool for automagic recovery data from scientific images with unknown colourmaps. An example of the image processing work is shown is sketched below, with full list of operations in the intro to my blog series Computer vision in Geoscience, and detailed methodology described in Part I and Part II.

Also, watch Matt’s talk (very insightful and very entertaining) from the 2017 Calgary Geoconvention below:

Recovering data from seismic images

  • Knowledge sharing: My answer to the question In the northern hemisphere only, what percentage of the surface is land? on Stack Exchange Earth Science Beta. This was a lot of fun combining domain knowledge (about map projections) with a tiny bit of Python programming (using numpy arrays) to provide a quantitative solution. It is the mini-project I am proud the most of, and I did it out of curiosity and the pure joy of solving a problem!

Exploratory Data Analysis and visualization portfolio

  • Enhanced seaborn pairgrid matrix: one of the things I always do when I start looking at a multivariate probelm is to explore possible associations between features and target; one way I've found really useful is to "enhance" the standard Seaborn pairgrid matrix by labeling each bivariate scatter plot with the distance correlation colored by p-value, and also rearrage the plots by the results of clustering analysis, like in the example below (you can read more about it here):

  • 3D model of the ternary system quartz – nepheline – kalsilite, also called petrogeny’s “residua” system, which is used to describe the composition of many cooled residual magma. This was an advanced pet project while I was a student in Geology at the University of Rome, Italy. It involved using AutoCAD and 3D Studio Max to create a WRLM file. For the 3D sketchfab version of the model, I used a DXF export and re-rendered using Rhino3D. See the static snapshot below; navigate, inspet, and download the model on Sketchfab

  • 3D model of the Yoder Tilley tetrahedron for basalt classification. In this visualization the tetrahedron isbroken to separate the Quartz Tholeiite, Oliving Tholeiite, and Alkali Basalt sub-volumes and show the critical planes of silica saturation and silica under-saturation. For the 3D sketchfab version of the model, I used a DXF export and re-rendered using Rhino3D. Check it out on Sketchfab

  • 3D paths of colormap in CIELAB color space. These are a very useful way to analyze a colormap as they show clearly where abrupt chages in contrast happen; these are responsible for artifacts in mapping when these colormaps are used (more details in this blog post ). As example in the two animations below (produced using the 3D color inspector plugin for ImageJ), notice the may abrupt changes in the path for the classic Jet colormap (top) and compary to the regular piraling path of a more perceptual rainbow, called CubicYF (bottom), which I created:


Coding challenges

  • Completed all the Python challenges at Coding bat and earned an overall 10-Star badge.


My Data Science continuous learning roadmap

📕

Click here to expand the roadmap section

Management

  • Project Management Skills for LEaders, Linkedin Learning
  • Decision Intelligence, Linkedin Learning

Python development, unit testing, and debugging

Foundations of Data Science Professional Certificate (edX)

Intermediate Data Science

Analytics

GIS and Geospatial

  • Climate Geospatial Analysis in Python with Xarray, Coursera Project Network
  • ARSET - Fundamentals of Remote Sensing, NASA Applied Science
  • ARSET - Introduction to Synthetic Aperture Radar, NASA Applied Science
  • ARSET - Humanitarian Applications Using NASA Earth Observations, NASA Applied Science

AI, Deep Learning, Ethics, ML explainability

Diversity, Equity, Inclusion

Communication tools

📕

Book library

It looks like it has become very trendy these days to post a picture your datascience library. I admit it, I could not resist doing it too! Here is my collection of books, with a focus on computative geoscience and visualization (… and keeping myself honest about what I have not read yet…)


Community engagement

  • Beta-testing courses by DeepLEarning.AI
  • Mentor, Canadian Society of Exploration Geophysicists (volunteer). From 2010 to 2020: mentored in Geophysics - and more recently in both Geophysics and Data Science - 3rd-4th year undergraduate students, and graduate students.
  • Co-founder and coordinator of the Calgary GeoPy group, which run semi-regular meetups for 2018 and 2019.
  • Editor, Canadian Society of Exploration Geophysicists (volunteer). From 2014 to 2016 Editor for the society's journal Recorder; notable project: conceived and coordinated a special topic edition on Programming in Geoscience.

Stuff I would do differently

Matteo Niccoli's Projects

2014_fall_astr599 icon 2014_fall_astr599

Content for my Astronomy 599 / Applied Math 500 Course: Intro to scientific computing in Python

2d_fft_filter_tutorial icon 2d_fft_filter_tutorial

Geophysical tutorial: filtering of (modeled and real) 2D periodic noise in the frequency domain

52things icon 52things

52 Things You Should Know About Geocomputing

ace icon ace

Python package for performing the Alternating Conditional Expectation (ACE) regression

aoc2019 icon aoc2019

Solutions and fails for the 2019 Advent of Code https://adventofcode.com

auralib icon auralib

Python package to support investigation of geoscience problems including geophysics, rock physics, petrophysics, and data read/write in common formats.

awesome-open-geoscience icon awesome-open-geoscience

Curated from repositories that make our lives as geoscientists, hackers and data wranglers easier or just more awesome

awesome-panel icon awesome-panel

A repository for sharing knowledge on Panel by HoloViz in order to build awesome analytics apps in Python

beakerx icon beakerx

Beaker Extensions for Jupyter Notebook

bruges icon bruges

Geophysics library with various helpful functions

choicescript icon choicescript

ChoiceScript is a language for developing multiple-choice games.

cmaptools icon cmaptools

A collection of tools to evaluate and fix bad colormaps

colorcet icon colorcet

A set of useful perceptually uniform colormaps for plotting scientific data

cookiecutter-data-science icon cookiecutter-data-science

A logical, reasonably standardized, but flexible project structure for doing and sharing data science work.

coursera-xarray icon coursera-xarray

Repository for the "Climate Geospatial Analysis with Python and Xarray" project on Coursera

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.