# Vectorising analog seismograms by techniques of machine learning for automated discriminating of seismic signal traces

Polina Lemenkova

► To cite this version:

Polina Lemenkova. Vectorising analog seismograms by techniques of machine learning for automated discriminating of seismic signal traces. Doctoral. École polytechnique de Bruxelles (Brussels Faculty of Engineering), Laboratory of Image Synthesis and Analysis (LISA), Brussels, Belgium, Belgium. 2021, pp.52. hal-04612499

HAL Id: hal-04612499

https://hal.science/hal-04612499

Submitted on 14 Jun 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Vectorising analog
seismograms by
techniques of machine
learning for automated
discriminating of seismic
signal traces

<figure><img src="image_1.png" /></figure>

**SUPERVISORS** Prof. Dr. Olivier DEBEIR (ULB) and Dr. Thomas LECOCQ (Royal Observatory of Belgium, Department of Seismology and Gravimetry, co-promoteur)

**PRESENTATION PLACE** Université Libre de Bruxelles, École polytechnique de Bruxelles (Brussels Faculty of Engineering), Laboratory of Image Synthesis and Analysis (LISA).

**DATE** 10.XII.2021

**PRESENTER** Polina Lemenkova
Vectorising analog
seismograms by
techniques of machine
learning for automated
discriminating of seismic
signal traces

<figure><img src="image_2.png" /></figure>

**SUPERVISORS** Prof. Dr. Olivier DEBEIR (ULB) and Dr. Thomas LECOCQ (Royal Observatory of Belgium, Department of Seismology and Gravimetry, co-promoteur)

**PRESENTATION PLACE** Université Libre de Bruxelles, École polytechnique de Bruxelles (Brussels Faculty of Engineering), Laboratory of Image Synthesis and Analysis (LISA).

**DATE** 10.XII.2021

**PRESENTER** Polina Lemenkova
# Part 1.

## Introduction.

### Key Facts on Seismograms.

### Project Objectives and Goals.

### Data and Instruments.

### Multi-Disciplinary Approaches.
# Part 1.

## Introduction.

### Key Facts on Seismograms.

### Project Objectives and Goals.

### Data and Instruments.

### Multi-Disciplinary Approaches.
# Research Object and Problem

* Study object => old historical scanned seismograms in TIFF format from the archives of Royal Observatory of Belgium (ROB), Department of Seismology & Gravimetry.

* Study area: Uccle station (see map).

* Study problem => to digitise large archive of the old paper-based seismograms from ROB quickly, accurately and automatically.

<figure><img src="image_2.png" /></figure>

Study area: location of Uccle seismic station, Belgium

Digital elevation data: GEBCO/SRTM, 15 arc sec resolution grid

<figure><img src="image_3.png" /></figure>

<figure><img src="image_4.png" /></figure>

2021 Oct 29 11:26:51

<figure><img src="image_5.png" /></figure>
# Research Object and Problem

* Study object => old historical scanned seismograms in TIFF format from the archives of Royal Observatory of Belgium (ROB), Department of Seismology & Gravimetry.

* Study area: Uccle station (see map).

* Study problem => to digitise large archive of the old paper-based seismograms from ROB quickly, accurately and automatically.

<figure><img src="image_3.png" /></figure>

Study area: location of Uccle seismic station, Belgium

Digital elevation data: GEBCO/SRTM, 15 arc sec resolution grid

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

2021 Oct 29 11:26:51

<figure><img src="image_6.png" /></figure>
# Data and Instrument

* There are various types of seismometers used in geophysics. In this study we used archived seismograms recorded in 1954 by the Galitzine seismometer in Uccle station.

* Currently dataset included a collection of 145 images from 1 January 1954 to 12 March 1954

* The period will be gradually enlarged as soon as other seismograms are scanned to cover 70 last years.

* Now images are monochrome (B/W). Other images might be scanned in colour.

* Some of the images are well preserved, some have distortions and defects visible on the aged paper

<figure><img src="image_6.png" /><figcaption>Instrument used for data capture in 1954: Horizontal Galitzine seismometer located in UCC. Image source: courtesy of ROB. Photo: Raphaël S. M. De Plaen</figcaption></figure>
# Data and Instrument

* There are various types of seismometers used in geophysics. In this study we used archived seismograms recorded in 1954 by the Galitzine seismometer in Uccle station.

* Currently dataset included a collection of 145 images from 1 January 1954 to 12 March 1954

* The period will be gradually enlarged as soon as other seismograms are scanned to cover 70 last years.

* Now images are monochrome (B/W). Other images might be scanned in colour.

* Some of the images are well preserved, some have distortions and defects visible on the aged paper

<figure><img src="image_7.png" /><figcaption>Instrument used for data capture in 1954: Horizontal Galitzine seismometer located in UCC. Image source: courtesy of ROB. Photo: Raphaël S. M. De Plaen</figcaption></figure>
# Research Questions

**What** are the best ML/DL approaches for automatic processing of seismograms? – Develop an effective repetitive workflow.

<figure><img src="image_7.png" /></figure>

**Methods & Approaches**

<figure><img src="image_8.png" /></figure>

**How** to assess and interpret signals using seismic data in a semi-automated and automated regimes?

<figure><img src="image_9.png" /></figure>

**Algorithms**

<figure><img src="image_10.png" /></figure>

**How** does seismic activity differs by years in Uccle station area (time-series analysis of large data 1950s+)?

<figure><img src="image_11.png" /></figure>

**Data Analysis**

<figure><img src="image_12.png" /></figure>

<figure><img src="image_13.png" /></figure>

<figure><img src="image_14.png" /></figure>

**Processing & Modelling**

<figure><img src="image_15.png" /></figure>

**How** to effectively process and model big datasets of atchived seismograms with minimised human workflow and maximised automatisation ?

**ML/DL**

<figure><img src="image_16.png" /></figure>

**How** to effectively train machine to identify timing for fully automated data processing (hours and minute marks/gaps)?
# Research Questions

**What** are the best ML/DL approaches for automatic processing of seismograms? – Develop an effective repetitive workflow.

<figure><img src="image_8.png" /></figure>

## Methods & Approaches

<figure><img src="image_9.png" /></figure>

**How** to assess and interpret signals using seismic data in a semi-automated and automated regimes?

<figure><img src="image_10.png" /></figure>

## Algorithms

<figure><img src="image_11.png" /></figure>

**How** does seismic activity differs by years in Uccle station area (time-series analysis of large data 1950s+)?

<figure><img src="image_12.png" /></figure>

## Data Analysis

<figure><img src="image_13.png" /></figure>

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>

## Processing & Modelling

<figure><img src="image_16.png" /></figure>

**How** to effectively process and model big datasets of atchived seismograms with minimised human workflow and maximised automatisation ?

## ML/DL

<figure><img src="image_17.png" /></figure>

**How** to effectively train machine to identify timing for fully automated data processing (hours and minute marks/gaps)?
Examples of the raw data: paper-based seismograms

<figure><img src="image_17.png" /></figure>

Empty records between the lines of seismic traces with enlarged fragment of seismogram. Here: UCC19540106Gal_N_0811.TIFF

<figure><img src="image_18.png" /></figure>

Continuous noise dark background with blurred traces => lack of contrast for image recognition. Here: UCC19540108Gal_N_0815.TIFF

<figure><img src="image_19.png" /></figure>

Partially spotted image caused by storage, with enlarged fragment of seismogram. Here: UCC19540107Gal_N_0815.TIFF

<figure><img src="image_20.png" /></figure>

Overlapped traces => problems for recognition of trace direction during vectorising. Here: UCC19540112Gal_E_0750.TIFF

PROBLEMS ARE CAUSED BY TECHNIQUES OF OLD SEISMOGRAM RECORDING + TIME (SPOTS, BLURS, BROKEN PAPER, ETC.)
Examples of the raw data: paper-based seismograms

<figure><img src="image_18.png" /></figure>

Empty records between the lines of seismic traces with enlarged fragment of seismogram. Here: UCC19540106Gal_N_0811.TIFF

<figure><img src="image_19.png" /></figure>

Continuous noise dark background with blurred traces => lack of contrast for image recognition. Here: UCC19540108Gal_N_0815.TIFF

<figure><img src="image_20.png" /></figure>

Partially spotted image caused by storage, with enlarged fragment of seismogram. Here: UCC19540107Gal_N_0815.TIFF

<figure><img src="image_21.png" /></figure>

Overlapped traces => problems for recognition of trace direction during vectorising. Here: UCC19540112Gal_E_0750.TIFF

PROBLEMS ARE CAUSED BY TECHNIQUES OF OLD SEISMOGRAM RECORDING + TIME (SPOTS, BLURS, BROKEN PAPER, ETC.)
# Actuality, Importance and Research Tasks

* Manual digitising cannot provide accurate and rapid data processing for developing digitised big dataset of archived seismograms

* Seismic data cannot be processed manually and require automatization and programming approaches

* We need to process big archives of seismic data from ROB effectively and quickly but accurately and precisely

* We need to analyse data with minimised human labour to derive information on earthquakes and ground motion

Example of the digitised seismograms using DigitSeis
So far there are no existing integrated studies of digitising seismograms in big data volumes by ML methods. Only selected software exist (e.g. DigitSeis, SKATE, Teseo)

<figure><img src="image_21.png" /></figure>
# Actuality, Importance and Research Tasks

* Manual digitising cannot provide accurate and rapid data processing for developing digitised big dataset of archived seismograms

* Seismic data cannot be processed manually and require automatization and programming approaches

* We need to process big archives of seismic data from ROB effectively and quickly but accurately and precisely

* We need to analyse data with minimised human labour to derive information on earthquakes and ground motion

Example of the digitised seismograms using DigitSeis
So far there are no existing integrated studies of digitising seismograms in big data volumes by ML methods. Only selected software exist (e.g. DigitSeis, SKATE, Teseo)

<figure><img src="image_22.png" /></figure>
# Interdisciplinary Nature of Project

* Complexity of geophysical data processing requires integrated multi-disciplinary approaches

* Applying ML to digitising seismograms brings new possibilities and benefits in seismology.

* Opportunities of ML =>> accurate and rapid digitising of the scanned images, rapid processing of historical seismograms, improved techniques of automated recognition of signals and data interpreting. =>>

* We need to handle seismic data by ML techniques and advanced software.

* Therefore, our project presents a multi-disciplinary approach of ML applications to seismic data processing

<figure><img src="image_22.png" /></figure>
# Interdisciplinary Nature of Project

* Complexity of geophysical data processing requires integrated multi-disciplinary approaches

* Applying ML to digitising seismograms brings new possibilities and benefits in seismology.

* Opportunities of ML =>> accurate and rapid digitising of the scanned images, rapid processing of historical seismograms, improved techniques of automated recognition of signals and data interpreting. =>>

* We need to handle seismic data by ML techniques and advanced software.

* Therefore, our project presents a multi-disciplinary approach of ML applications to seismic data processing

<figure><img src="image_23.png" /></figure>
# Project Motivation, Strengths and Challenges

<figure><img src="image_23.png" /></figure>

## Strengths of Big Data

Large amount of
seismograms.
Ground motions can
be detected from
digital datasets

<figure><img src="image_24.png" /></figure>

## Why old seismograms ?

Old seismograms
provide valuable
information for
retrospective
geophysical modelling.

<figure><img src="image_25.png" /></figure>

## Needs

We need to digitise
seismograms
automatically,
effectively and
rapidly

<figure><img src="image_26.png" /></figure>

## Solutions

ML is a solution
to process old
scanned
seismograms as
big raster data

<figure><img src="image_27.png" /><figcaption>Old scanned raster seismogram (TIFF file)</figcaption></figure>

<figure><img src="image_28.png" /><figcaption>Fragment of the vectorised output (DigitSeis)</figcaption></figure>
# Project Motivation, Strengths and Challenges

<figure><img src="image_24.png" /></figure>

## Strengths of Big Data

Large amount of
seismograms.
Ground motions can
be detected from
digital datasets

<figure><img src="image_25.png" /></figure>

## Why old seismograms ?

Old seismograms
provide valuable
information for
retrospective
geophysical modelling.

<figure><img src="image_26.png" /></figure>

## Needs

We need to digitise
seismograms
automatically,
effectively and
rapidly

<figure><img src="image_27.png" /></figure>

## Solutions

ML is a solution
to process old
scanned
seismograms as
big raster data

<figure><img src="image_28.png" /><figcaption>Old scanned raster seismogram (TIFF file)</figcaption></figure>

<figure><img src="image_29.png" /><figcaption>Fragment of the vectorised output (DigitSeis)</figcaption></figure>
# Various Approaches in One Study: Overlapping Disciplines

Our project presents an interdisciplinary research combining overlapping scientific clusters and engineering disciplines (image processing, geophysics, ML and data science).

A multi-disciplinary project integrates 3 major scientific clusters and several disciplines as subsections for vectorising seismograms:

1. Image Processing, Pattern Recognition, Computer Science, Programming, ML

2. Earth Observation data (ROB, Uccle archive), Geophysics and Seismology, Geology, Earthquake Engineering

3. Data Science, Data Analysis, Signal Processing Algorithms of Digitising & Vectorising

<figure><img src="image_29.png" /></figure>
# Various Approaches in One Study: Overlapping Disciplines

Our project presents an interdisciplinary research combining overlapping scientific clusters and engineering disciplines (image processing, geophysics, ML and data science).

A multi-disciplinary project integrates 3 major scientific clusters and several disciplines as subsections for vectorising seismograms:

1. Image Processing, Pattern Recognition, Computer Science, Programming, ML

2. Earth Observation data (ROB, Uccle archive), Geophysics and Seismology, Geology, Earthquake Engineering

3. Data Science, Data Analysis, Signal Processing Algorithms of Digitising & Vectorising

<figure><img src="image_30.png" /></figure>
# Goals and Objectives of my PhD Project

## PhD Thesis

**Education**
PhD activities: 60 ETCS credits, thesis, presentations, conferences, seminars

<figure><img src="image_30.png" /></figure>

## Research

**Publications**
Writing journals articles with my supervisors (Drs. O.Debeir and T. Lecocq) to publish in journals

<figure><img src="image_31.png" /></figure>

## Methods

**Algorithms**
Developing and testing advanced approaches to automated vectorising

<figure><img src="image_32.png" /></figure>

## Datasets

**Data Analysis**
Data-driven techniques of ML to analyse large seismic archives of ROB (1950s+)

<figure><img src="image_33.png" /></figure>

## Vectorising

**Image Processing**
Automated recognition of seismic traces by R2V techniques applied for ROB archived data

<figure><img src="image_34.png" /></figure>

<figure><img src="image_35.png" /></figure>
# Goals and Objectives of my PhD Project

<figure><img src="image_31.png" /></figure>

**Education**
PhD activities: 60 ETCS credits, thesis, presentations, conferences, seminars

<figure><img src="image_32.png" /></figure>

<figure><img src="image_33.png" /></figure>

**Publications**
Writing journals articles with my supervisors (Drs. O.Debeir and T. Lecocq) to publish in journals

<figure><img src="image_34.png" /></figure>

<figure><img src="image_35.png" /></figure>

**Algorithms**
Developing and testing advanced approaches to automated vectorising

<figure><img src="image_36.png" /></figure>

<figure><img src="image_37.png" /></figure>

**Data Analysis**
Data-driven techniques of ML to analyse large seismic archives of ROB (1950s+)

<figure><img src="image_38.png" /></figure>

<figure><img src="image_39.png" /></figure>

**Image Processing**
Automated recognition of seismic traces by R2V techniques applied for ROB archived data

<figure><img src="image_40.png" /></figure>

<figure><img src="image_41.png" /></figure>
# Activities Towards Achieving Project Goals

<figure><img src="image_36.png" /></figure>
# Activities Towards Achieving Project Goals

<figure><img src="image_42.png" /></figure>
Part 2.

Application of DigitSeis Software for
Vectorising Seismograms.
# Part 2.

## Application of DigitSeis Software for Vectorising Seismograms.
# Workflow of DigitSeis Software for Vectorising

<figure><img src="image_37.png" /><figcaption>## Workflow for processing seismograms in DigitSeis software</figcaption></figure>

<figure><img src="image_38.png" /></figure>
# Workflow of DigitSeis Software for Vectorising

<figure><img src="image_43.png" /><figcaption>## Workflow for processing seismograms in DigitSeis software</figcaption></figure>

<figure><img src="image_44.png" /></figure>
## Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_39.png" /></figure>

Seismogram processed by DigitSeis

Fragment of the resulting digitised output (enlarged) showing seismic traces (horizontal curve lines) and 1-minute time gaps (small vertical dashed lines)

<figure><img src="image_40.png" /></figure>

<figure><img src="image_41.png" /></figure>

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.
## Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_45.png" /></figure>

Seismogram processed by DigitSeis

Fragment of the resulting digitised output (enlarged) showing seismic traces (horizontal curve lines) and 1-minute time gaps (small vertical dashed lines)

<figure><img src="image_46.png" /></figure>

<figure><img src="image_47.png" /></figure>

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.
Examples of the identified time gaps on the raw TIFF images

<figure><img src="image_42.png" /></figure>

* Enlarged fragment of image

* Time gaps indicating minutes breaking the trace line

* Zoomed segment separating the trace line between each other (tiny white gaps breaking traces)
# Examples of the identified time gaps on the raw TIFF images

<figure><img src="image_48.png" /></figure>

* Enlarged fragment of image

* Time gaps indicating minutes breaking the trace line

* Zoomed segment separating the trace line between each other (tiny white gaps breaking traces)
# Identifying time gaps on seismogram using DigitSeis

<figure><img src="image_43.png" /><figcaption>* Identifying time marks on seismograms by measuring time gap between records. Here: UCC19540119Gal_N_0825.tif</figcaption></figure>

Indicating time marks on seismograms as -22 and preparing image for classification
Identifying time gaps on seismogram using DigitSeis

<figure><img src="image_49.png" /><figcaption>* Identifying time marks on seismograms by measuring time gap between records. Here: UCC19540119Gal_N_0825.tif</figcaption></figure>

Indicating time marks on seismograms
as -22 and preparing image for
classification
Identifying noise and annotations on seismogram using DigitSeis

<figure><img src="image_44.png" /><figcaption>* Results of the classified seismogram with shown identified object categories.</figcaption></figure>

<caption>* Traces are vector white lines while noise is red-coloured objects, automatically recognised (here: handwritten annotations)</caption>

Small region analysis used for defining a smaller area of interest for closer examination of a border region of the seismogram
Identifying noise and annotations on seismogram using DigitSeis

<figure><img src="image_50.png" /><figcaption>* Results of the classified seismogram with shown identified object categories.</figcaption></figure>

<caption>* Traces are vector white lines while noise is red-coloured objects, automatically recognised (here: handwritten annotations)</caption>

Small region analysis used for defining a smaller area of interest for closer examination of a border region of the seismogram
# Digitised segments of the trace lines in DigitSeis

<figure><img src="image_45.png" /><figcaption>* Results of the classified image with shown yellow segments of the identified trace (enlarged fragment).</figcaption></figure>

* Here: example of the file UCC19540109Gal_E_0812.tif

* Classified seismogram with traces saved in binary format 0-1.

* Here: example of file UCC19540109Gal_E_0812.tif (January 9, 1954.)

<figure><img src="image_46.png" /></figure>
Digitised segments of the trace lines in DigitSeis

<figure><img src="image_51.png" /><figcaption>* Results of the classified image with shown yellow segments of the identified trace (enlarged fragment).</figcaption></figure>

* Here: example of the file UCC19540109Gal_E_0812.tif

* Classified seismogram with traces saved in binary format 0-1.

* Here: example of file UCC19540109Gal_E_0812.tif (January 9, 1954.)

<figure><img src="image_52.png" /></figure>
Digitised traces after classification in DigitSeis

* Enlarged view of the automatically recognised digitised traces displayed by lines of various colours,

* Zero-lines for each trace are visualised as cyan-coloured dashed lines, numbered from top to bottom.

* Vertical yellow dashes are time gaps

<figure><img src="image_47.png" /></figure>

* Some time gaps (upper left part of the image) were not identified and not recognised automatically between the trace and dark background.

* In these cases, gaps required manual correction to identify time intervals.
Digitised traces after classification in DigitSeis

<figure><img src="image_53.png" /></figure>

* Some time gaps (upper left part of the image) were not identified and not recognised automatically between the trace and dark background.

* In these cases, gaps required manual correction to identify time intervals.

* Enlarged view of the automatically recognised digitised traces displayed by lines of various colours,

* Zero-lines for each trace are visualised as cyan-coloured dashed lines, numbered from top to bottom.

* Vertical yellow dashes are time gaps

<figure><img src="image_54.png" /></figure>
## Identified traces for selective correction and re-digitising using Correct Trace mode

* Detected misclassifications caused erroneous digitising.

* The gaps on the zero-lines (small yellow boxes) show the gaps that existed in the old paper in the original image itself.

<figure><img src="image_48.png" /></figure>

* Identified wrong vector direction of line crossing individual traces
## Identified traces for selective correction and re-digitising using Correct Trace mode

<figure><img src="image_55.png" /></figure>

* Detected misclassifications caused erroneous digitising.

* The gaps on the zero-lines (small yellow boxes) show the gaps that existed in the old paper in the original image itself.

<figure><img src="image_56.png" /></figure>

* Identified wrong vector direction of line crossing individual traces
## Identified traces for selective correction and re-digitising using Correct Trace mode

<figure><img src="image_49.png" /><figcaption>* Overlap of line traces unrecognised during digitising: one segment of trace went steeply downwards and merged with another trace</figcaption></figure>

<figure><img src="image_50.png" /><figcaption>* Enlarged view of the manually corrected entangled traces. Correcting misclassified traces with wrong direction based on colour and geometric pixel's characteristics.</figcaption></figure>

<figure><img src="image_51.png" /></figure>
## Identified traces for selective correction and re-digitising using Correct Trace mode

<figure><img src="image_57.png" /><figcaption>* Overlap of line traces unrecognised during digitising: one segment of trace went steeply downwards and merged with another trace</figcaption></figure>

<figure><img src="image_58.png" /><figcaption>* Enlarged view of the manually corrected entangled traces. Correcting misclassified traces with wrong direction based on colour and geometric pixel's characteristics.</figcaption></figure>

<figure><img src="image_59.png" /></figure>
Identified traces for selective correction and re-digitising using Correct Trace mode

* Reclassification of the selected segment and digitising the centroid of the trace line (purple-coloured). Correcting trace for the selected segments

<figure><img src="image_52.png" /></figure>

* Merging the trace initially broken into the three separate parts (three small yellow boxes)
## Identified traces for selective correction and re-digitising using Correct Trace mode

<figure><img src="image_60.png" /><figcaption>* Reclassification of the selected segment and digitising the centroid of the trace line (purple-coloured). Correcting trace for the selected segments</figcaption></figure>

<caption>* Merging the trace initially broken into the three separate parts (three small yellow boxes)</caption>
Seismogram image with adjusted timing. Here: UCC19540311Gal_E_0727.mat

<figure><img src="image_53.png" /></figure>

* Time markers at 1-minute intervals on each 30-minute trace.

<figure><img src="image_54.png" /></figure>

* Timing setup using time display increment

* Yellow vertical small dash lines - minute marks

<figure><img src="image_55.png" /></figure>

<figure><img src="image_56.png" /></figure>
Seismogram image with adjusted timing. Here: UCC19540311Gal_E_0727.mat

<figure><img src="image_61.png" /><figcaption>* Time markers at 1-minute intervals on each 30-minute trace.</figcaption></figure>

<caption>* Timing setup using time display increment</caption>

<caption>* Yellow vertical small dash lines - minute marks</caption>
<figure><img src="image_57.png" /><figcaption>Example of the digitised image with minute time gaps
Here: fragment of UCC19540311Gal_E_0727.mat)</figcaption></figure>
<figure><img src="image_62.png" /><figcaption>Example of the digitised image with minute time gaps
Here: fragment of UCC19540311Gal_E_0727.mat)</figcaption></figure>
# Validating Results of MATLAB File in Python: Post-Processing

<figure><img src="image_58.png" /></figure>

## DATA ANALYSIS

### Reasons

The misclassified pixels were induced by the distortions of paper => erroneous recognition of pixels in the edge (red dots)

<figure><img src="image_59.png" /></figure>

## IDENTIFYING TIME INTERVALS

Hours and minutes
Hours marks are aligned, as the rotation speed of drum (2/h). Second gaps are slanted due to the rotation of drum.

<figure><img src="image_60.png" /></figure>

## STATISTIC ANALYSIS

### Data analysis

Visualizing frequency of segment length: size of various segments in a trace per hours of recording

<figure><img src="image_61.png" /></figure>

## CHECK AND PLOTTING

### Quality check

The data were kept as valid the segment inside the range [.8 * Styp, 1.1 * Styp]. Green dots - starting position of segments

<figure><img src="image_62.png" /><figcaption>UCC19540109Gal_E_0812</figcaption></figure>

<figure><img src="image_63.png" /></figure>

Controlling digitising results using Python (Matplotlib library).

Blue dots shown the starting position of the hours segments.

Green dots show the minute marks.

Red dots show the noise and edge dots.

Correctly identified time gaps controlled by Python's Matplotlib

Quality control for time gaps: missed marks in unrecognised segments.
# Validating Results of MATLAB File in Python: Post-Processing

<figure><img src="image_63.png" /></figure>

## DATA ANALYSIS

### Reasons

The misclassified pixels were induced by the distortions of paper => erroneous recognition of pixels in the edge (red dots)

<figure><img src="image_64.png" /></figure>

## IDENTIFYING TIME INTERVALS

Hours and minutes
Hours marks are aligned, as the rotation speed of drum (2/h). Second gaps are slanted due to the rotation of drum.

<figure><img src="image_65.png" /></figure>

## STATISTIC ANALYSIS

### Data analysis

Visualizing frequency of segment length: size of various segments in a trace per hours of recording

<figure><img src="image_66.png" /></figure>

## CHECK AND PLOTTING

### Quality check

The data were kept as valid the segment inside the range [.8 * Styp, 1.1 * Styp]. Green dots - starting position of segments

<figure><img src="image_67.png" /></figure>

Controlling digitising results using Python (Matplotlib library).

Blue dots shown the starting position of the hours segments.

Green dots show the minute marks.

Red dots show the noise and edge dots.

Correctly identified time gaps controlled by Python's Matplotlib

Quality control for time gaps: missed marks in unrecognised segments.

<figure><img src="image_68.png" /></figure>
Statistical Plotting of Data Frequency in .mat File processed by Python

<figure><img src="image_64.png" /></figure>

UCC19540109Gal_E_0812

<figure><img src="image_65.png" /></figure>

length: 210

max

<figure><img src="image_66.png" /></figure>

UCC19540311Gal_E_0727_28O

<figure><img src="image_67.png" /></figure>

length: 210

max
Statistical Plotting of Data Frequency in .mat File processed by Python

<figure><img src="image_69.png" /></figure>

UCC19540109Gal_E_0812

<figure><img src="image_70.png" /></figure>

length: 210

max

<figure><img src="image_71.png" /></figure>

UCC19540311Gal_E_0727_28O

<figure><img src="image_72.png" /></figure>

length: 210

max
# Research Approach of DigitSeis: Major Steps of Seismic Data Processing

## Pre-processing

Image loading (export TIFF files), Identifying time gaps (1 minute breaks of trace lines), often 12-20 pixels.

## Correcting

Manual corrections of the misclassified segments by enlarging small sections. Converting to .mat format.

<figure><img src="image_68.png" /></figure>

## Classification

Discriminating traces from time gaps and noise (handwritten annotations), object recognition by image analysis (thresholds).

## Vectorisation

Automatic discrimination of traces, noise, time gaps and background (algorithm of golden-section search).
# Research Approach of DigitSeis: Major Steps of Seismic Data Processing

## Pre-processing

Image loading (export TIFF files), Identifying time gaps (1 minute breaks of trace lines), often 12-20 pixels.

## Correcting

Manual corrections of the misclassified segments by enlarging small sections. Converting to .mat format.

<figure><img src="image_73.png" /></figure>

## Classification

Discriminating traces from time gaps and noise (handwritten annotations), object recognition by image analysis (thresholds).

## Vectorisation

Automatic discrimination of traces, noise, time gaps and background (algorithm of golden-section search).
# Methodology of Project

* Machine Learning (ML) and Deep Learning (DL) in vectorising
analog seismograms

* ML & DL: Automatic and intelligent data analysis: detecting
trace lines using threshold parameters

* Image processing: segmentation, classification of
seismograms (separating lines from noise)

* Data visualisation and plotting

* Data analysis and interpretation

* Advanced methods => solve problem of efficient processing of
big massifs of old scanned files (TIFFs) for geophysical
modelling and data interpretation for seismology research

* Developing new advanced ML algorithms to digitise
seismograms and convert them in vector format automatically

<figure><img src="image_69.png" /></figure>

<figure><img src="image_70.png" /></figure>

<figure><img src="image_71.png" /></figure>

<figure><img src="image_72.png" /></figure>
# Methodology of Project

* Machine Learning (ML) and Deep Learning (DL) in vectorising
analog seismograms

* ML & DL: Automatic and intelligent data analysis: detecting
trace lines using threshold parameters

* Image processing: segmentation, classification of
seismograms (separating lines from noise)

* Data visualisation and plotting

* Data analysis and interpretation

* Advanced methods => solve problem of efficient processing of
big massifs of old scanned files (TIFFs) for geophysical
modelling and data interpretation for seismology research

* Developing new advanced ML algorithms to digitise
seismograms and convert them in vector format automatically

<figure><img src="image_74.png" /></figure>

<figure><img src="image_75.png" /></figure>

<figure><img src="image_76.png" /></figure>

<figure><img src="image_77.png" /></figure>
# Part 3.

Using Cytomine Workspace for
Storing, Viewing and Analysing Data.
# Part 3.

Using Cytomine Workspace for
Storing, Viewing and Analysing Data.
# Why using Cytomine for Processing Seismostorm Project ?

<figure><img src="image_73.png" /></figure>
# Why using Cytomine for Processing Seismostorm Project ?

<figure><img src="image_78.png" /></figure>
# Cytomine for data storage, sharing and analysis

<figure><img src="image_74.png" /></figure>

* Data were placed on the Cytomine environment (Cytomine), developed by the ULiège team.

* We uploaded our TIFF images into our project.

* Originally designed as a tool for biomedical image processing, Cytomine is adopted in this study for geophysical data processing using seismograms.

* The dataset contains 145 files recorded in 1954 by Galitzine seismometer.

## View of the Seismostorm project and file browsing system

* The workspace containing seismic dataset is shared by users (collaborators of Seismostorm)

* Navigating in Cytomine => paths and hierarchical structure of the project

<figure><img src="image_75.png" /><figcaption>## Content of files in the Seismostorm project in Cytomine</figcaption></figure>

Cytomine is an image analysis workspace to contain, organise, visualise, annotate and analyse images.
# Cytomine for data storage, sharing and analysis

<figure><img src="image_79.png" /></figure>

* Data were placed on the Cytomine environment (Cytomine), developed by the ULiège team.

* We uploaded our TIFF images into our project.

* Originally designed as a tool for biomedical image processing, Cytomine is adopted in this study for geophysical data processing using seismograms.

* The dataset contains 145 files recorded in 1954 by Galitzine seismometer.

## View of the Seismostorm project and file browsing system

* The workspace containing seismic dataset is shared by users (collaborators of Seismostorm)

* Navigating in Cytomine => paths and hierarchical structure of the project

<figure><img src="image_80.png" /><figcaption>## Content of files in the Seismostorm project in Cytomine</figcaption></figure>

Cytomine is an image analysis workspace to contain, organise, visualise, annotate and analyse images.
# Creating ontologies in Cytomine for objects recognition

* Ontologies generated in Seismostorm project in Cytomine enable to class shapes for automated recognition

* Segments, start hours ticks and flares detected as object classes on the scanned images

<figure><img src="image_76.png" /></figure>

Hour ticks, minute ticks and various categories detected as object classes on the images

Examples of the detected and annotated object classes on the scanned seismograms
# Creating ontologies in Cytomine for objects recognition

* Ontologies generated in Seismostorm project in Cytomine enable to class shapes for automated recognition

* Segments, start hours ticks and flares detected as object classes on the scanned images

<figure><img src="image_81.png" /></figure>

Hour ticks, minute ticks and various categories detected as object classes on the images

Examples of the detected and annotated object classes on the scanned seismograms
# Examples of detecting cases in seismograms in Cytomine

<figure><img src="image_77.png" /></figure>

Segments separated as fragments on the trace lines

Examples of the detected and annotated object classes on the scanned seismograms
# Examples of detecting cases in seismograms in Cytomine

<figure><img src="image_82.png" /></figure>

Hour ticks on the seismograms recorded by the seismometer drum

Examples of the detected and annotated object classes on the scanned seismograms

Segments separated as fragments on the trace lines
# Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_78.png" /></figure>

Manual hour marks for handwritten annotations on the old scanned image

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.
# Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_83.png" /></figure>

Manual hour marks for handwritten annotations on the old scanned image

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.
## Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_79.png" /></figure>

Flares detected on the old scanned raster images of the analog seismograms

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.

Minute marks detected, recognised and classified using 'ontologies' of Cytomine on the TIFF files
Examples of marking time gaps (minutes/hours) on seismograms in Cytomine

<figure><img src="image_84.png" /></figure>

Flares detected on the old scanned raster images of the analog seismograms

Examples of the annotation classes on the raw data: scanned analog seismograms from the Uccle station.

Minute marks detected, recognised and classified using 'ontologies' of Cytomine on the TIFF files
# Part 4.
Using Python for Automatic Data
Processing
# Part 4.
Using Python for Automatic Data
Processing
# Why Python in Vectorising Seismograms?

<figure><img src="image_80.png" /></figure>
# Why Python in Vectorising Seismograms?

<figure><img src="image_85.png" /></figure>
# ML for Vectorising Seismograms: a Workflow in Python

The workflow for digitising seismograms in Python includes several steps:

* Defining Region of Interest (ROI)

* Selecting threshold parameters (radius of pixels, percentage of contrast)

* Sampling several approaches with varied parameters

* Processing full ROI after testing parameters and selecting the best and optimal parameters (e.g. pixel size 30, radius 85%)

* Vectorising (executing Python script)

* Exporting the results to the HDFS format

<figure><img src="image_81.png" /></figure>
# ML for Vectorising Seismograms: a Workflow in Python

The workflow for digitising seismograms in Python includes several steps:

* Defining Region of Interest (ROI)

* Selecting threshold parameters (radius of pixels, percentage of contrast)

* Sampling several approaches with varied parameters

* Processing full ROI after testing parameters and selecting the best and optimal parameters (e.g. pixel size 30, radius 85%)

* Vectorising (executing Python script)

* Exporting the results to the HDFS format

<figure><img src="image_86.png" /></figure>
# Python-based digitising of raster image (1)

<figure><img src="image_82.png" /></figure>

Automated vectorising of seismograms was
performed using several work steps.
First, the low-resolution images were grabbed by
Python script from the Cytomine and used in script.

Enlarged fragment of the vectorised
segments of the trace lines

<figure><img src="image_83.png" /></figure>
# Python-based digitising of raster image (1)

<figure><img src="image_87.png" /></figure>

Automated vectorising of seismograms was
performed using several work steps.
First, the low-resolution images were grabbed by
Python script from the Cytomine and used in script.

Enlarged fragment of the vectorised
segments of the trace lines

<figure><img src="image_88.png" /></figure>
# Python-based digitising of raster image (2)

<figure><img src="image_84.png" /></figure>

Second, the hour gaps have been detected using the indication of the repeatability of gaps (double gaps, close located next to the first minute of this hour).

Above: view of the seismogram with indicated hour gaps.

Right: enlarged fragment.
Python-based digitising of raster image (2)

<figure><img src="image_89.png" /></figure>

Second, the hour gaps have been detected using the indication of
the repeatability of gaps (double gaps, close located next to the
first minute of this hour).

Above: view of the seismogram with indicated hour gaps.

Right: enlarged fragment.
Python-based digitising of raster image (3)

<figure><img src="image_85.png" /></figure>

Third, the line with double vectorisation (overlapping time periods) were processed.

<figure><img src="image_86.png" /></figure>

Workflow for vectorising in Python, Matplotlib library (slide 3/10)
# Python-based digitising of raster image (3)

<figure><img src="image_90.png" /></figure>

Third, the line with double vectorisation (overlapping time periods) were processed.

<figure><img src="image_91.png" /></figure>

## Workflow for vectorising in Python, Matplotlib library (slide 3/10)
# Python-based digitising of raster image (4)

<figure><img src="image_87.png" /></figure>

<figure><img src="image_88.png" /></figure>

Left: Example of the digitised traces in Python.

Above: Example of the misclassified line, which was vectorised several times as belonging to 'neighbor' hours segments (e.g. hour 1 and hour 2).

## Workflow for vectorising in Python, Matplotlib library (slide 4/10)
# Python-based digitising of raster image (4)

<figure><img src="image_92.png" /><figcaption>Left: Example of the digitised traces in Python. Above: Example of the misclassified line, which was vectorised several times as belonging to 'neighbor' hours segments (e.g. hour 1 and hour 2).</figcaption></figure>
# Region of Interest: Automatic Detection (slide 1/2)

<figure><img src="image_89.png" /></figure>

ROI detection was performed using setup of threshold for contrasting pixels on the images. As a result, the mask only included ROI between the red dashed lines (upper left image). The histograms show the value of pixels excluded from the ROI (those above the red line on the graphs).

It is possible to process images in Python both in horizontal and in vertical orientation (image on the right)

## Workflow for vectorising in Python, Matplotlib library (slide 5/10)
Region of Interest: Automatic Detection (slide 1/2)

<figure><img src="image_93.png" /></figure>

ROI detection was performed using setup of threshold for contrasting pixels on the images. As a result, the mask only included ROI between the red dashed lines (upper left image). The histograms show the value of pixels excluded from the ROI (those above the red line on the graphs).

It is possible to process images in Python both in horizontal and in vertical orientation (image on the right)

Workflow for vectorising in Python, Matplotlib library (slide 5/10)
# Region of Interest: Automatic Detection (slide 2/2)

<figure><img src="image_90.png" /></figure>

Defining ROI (between the red dashed lines) and enlarged fragment. Below: 2 histograms showing the distribution of pixels and those deleted (above the red dashed line). Right: enlarged fragment of the digitised seismogram. Workflow for vectorising in Python, Matplotlib library (slide 6/10).
Region of Interest: Automatic Detection (slide 2/2)

<figure><img src="image_94.png" /><figcaption>Defining ROI (between the red dashed lines) and enlarged fragment. Below: 2 histograms showing the distribution of pixels and those deleted (above the red dashed line). Right: enlarged fragment of the digitised seismogram. Workflow for vectorising in Python, Matplotlib library (slide 6/10).</figcaption></figure>
# Defining optimal parameters for the line thickness and radius of pixels (1)

<figure><img src="image_91.png" /></figure>

The thickness of the trace lines was defined by a series of trial tests with varied parameters.

Radius of 30 pixels was defined as the optimal for the given image (it may vary through in other cases).

Above: image with tested line thickness from 17 to 34 and radius of 50.

Below: image with tested thickness of the trace line from 14 to 26 pixels (upper row) and 20 to 38 pixels (lower row) and radius of 40, 50 and 60 for each corresponding row (downwards). Changed thickness of line is visible in all trial cases (yellow-coloured horizontal lines).

<figure><img src="image_92.png" /></figure>

## Workflow for vectorising in Python, Matplotlib library (slide 7/10)
# Defining optimal parameters for the line thickness and radius of pixels (1)

<figure><img src="image_95.png" /></figure>

The thickness of the trace lines was defined by a series of trial tests with varied parameters.

Radius of 30 pixels was defined as the optimal for the given image (it may vary through in other cases).

Above: image with tested line thickness from 17 to 34 and radius of 50.

Below: image with tested thickness of the trace line from 14 to 26 pixels (upper row) and 20 to 38 pixels (lower row) and radius of 40, 50 and 60 for each corresponding row (downwards). Changed thickness of line is visible in all trial cases (yellow-coloured horizontal lines).

<figure><img src="image_96.png" /></figure>
Defining optimal parameters for the line thickness and radius of pixels (2)

<figure><img src="image_93.png" /></figure>

Continue testing the parameters for the line with
spots and seismogram with blurred contrast of
lines against the background

Workflow for vectorising in Python, Matplotlib library (slide 8/10)
Defining optimal parameters for the line thickness and radius of pixels (2)

<figure><img src="image_97.png" /></figure>

Continue testing the parameters for the line with
spots and seismogram with blurred contrast of
lines against the background

Workflow for vectorising in Python, Matplotlib library (slide 8/10)
Buffering parameters for the time gaps

<figure><img src="image_94.png" /></figure>

Buffering minute intervals for the one-
minute gaps completed for the whole
seismogram

<figure><img src="image_95.png" /></figure>

UCC19540107Gal_E_0815_r

<figure><img src="image_96.png" /></figure>

Buffering minute intervals for the
one-minute gaps completed for
the whole seismogram;

Buffering of missing data: minute
and hour gaps
Buffering parameters for the time gaps

<figure><img src="image_98.png" /></figure>

<figure><img src="image_99.png" /></figure>

Buffering minute intervals for the
one-minute gaps completed for
the whole seismogram;

Buffering of missing data: minute
and hour gaps

Buffering minute intervals for the one-
minute gaps completed for the whole
seismogram

<figure><img src="image_100.png" /></figure>
## Seismogram vectorised by Python overlain on the original image and uploaded in Cytomine

<figure><img src="image_97.png" /></figure>

Example of the vectorised trace segments (red lines) overlaid on the spotted image

Enlarged fragment with visible distinct traces;

Enlarged fragment with visible time gaps

## Workflow for vectorising in Python, Matplotlib library (slide 10/10)
Seismogram vectorised by Python overlain on the original image and uploaded in Cytomine

<figure><img src="image_101.png" /></figure>

Example of the
vectorised trace
segments (red
lines) overlaid on
the spotted
image

Enlarged
fragment with
visible distinct
traces;

Enlarged
fragment with
visible time gaps

Workflow for vectorising in Python, Matplotlib library (slide 10/10)
# Summary of Project Milestones and Approaches

<figure><img src="image_98.png" /></figure>

<figure><img src="image_99.png" /></figure>

<figure><img src="image_100.png" /></figure>

<figure><img src="image_101.png" /></figure>
# Summary of Project Milestones and Approaches

<figure><img src="image_102.png" /></figure>

<figure><img src="image_103.png" /></figure>

<figure><img src="image_104.png" /></figure>

<figure><img src="image_105.png" /></figure>
# Conclusion: Research Connections and Structure

<figure><img src="image_102.png" /></figure>

**Data** Challenge of big data in seismic studies: massif volumes of historical seismograms from ROB exist and present a source of information. These archive old data must be processed, digitised and 'revitalised'.

**Methods** Our project focuses on developing automated methods of vectorising seismograms with minimised human interaction and maximised ML approach in trace vectorisation

**People** Human interaction is necessary for the whole workflow: archiving and processing data, organising project, developing algorithms, executing scripts, visualising graphics, testing methods and trials, interpreting results
# Conclusion: Research Connections and Structure

<figure><img src="image_106.png" /></figure>

**Data** Challenge of big data in seismic studies: massif volumes of historical seismograms from ROB exist and present a source of information. These archive old data must be processed, digitised and 'revitalised'.

**Methods** Our project focuses on developing automated methods of vectorising seismograms with minimised human interaction and maximised ML approach in trace vectorisation

**People** Human interaction is necessary for the whole workflow: archiving and processing data, organising project, developing algorithms, executing scripts, visualising graphics, testing methods and trials, interpreting results
<figure><img src="image_103.png" /></figure>
<figure><img src="image_107.png" /></figure>