Skip to content
View mycarta's full-sized avatar
💭
Trying to live in the present moment
💭
Trying to live in the present moment

Organizations

@softwareunderground
Block or Report

Block or report mycarta

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mycarta/README.md

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

Pinned

  1. Be-a-geoscience-detective Be-a-geoscience-detective Public

    Why choose between Data Science and Geoscience? Do both!

    Jupyter Notebook 6 5

  2. Data-science-tools-petroleum-exploration-and-production Data-science-tools-petroleum-exploration-and-production Public

    Python and R notebooks accompanying a talk at the 2018 CSEG / CSPG Geoconvention in Calgary - and a lot MORE!

    Jupyter Notebook 26 15

  3. Force-2020-Machine-Learning-competition_predict-lithology-EDA Force-2020-Machine-Learning-competition_predict-lithology-EDA Public

    Exploratory Data Analysis for the Lithology prediction part of the 2020 FORCE Machine Learning Contest

    Jupyter Notebook 12 10

  4. Colormap-distorsions-Panel-app Colormap-distorsions-Panel-app Public

    A Panel app to demonstrate distorsions created by non-perceptual colormaps on geophysical data

    Jupyter Notebook 10 2

  5. segyio-notebooks segyio-notebooks Public

    Forked from equinor/segyio-notebooks

    Notebooks with examples and demos of segyio

    Jupyter Notebook 6 2

  6. 2017-hall-niccoli 2017-hall-niccoli Public

    Forked from CSEG/2017-hall-niccoli

    Recovering data from images of seismic

    Jupyter Notebook 2 2