Galileo Conference DASDAE Tutorial
dasdae.github.io/galileo_2026 – the rendered site, with the slides and this page.
Data and code for the Galileo 2026 DASDAE tutorial.
- The intro slides set the session up
- the conclusion slides close it.
Learning objectives
Patch– filter, smooth, transform and plot DFOS data.Spool– subselect, chunk, merge, reshape and visualize an archive.Inventory– attach deployment metadata, and let it enrich selections and patches.- (bonus, if time permits) DASJax – compile a CPU/GPU kernel and time it against DASCore’s numpy.
Contents
We will primarily cover 3 notebooks that explain DASCore using a real research dataset.
The solutions column opens the same notebook with every exercise worked; the files live in solutions/.
Bonus: The Need for Speed
This notebook demonstrates DASJax, a proof-of-concept notebook for using Jax to accelerate DASCore.
| Notebook | Topic | molab |
|---|---|---|
04_dasjax.py |
Compiled kernels with DASJax |
Bonus: Novel or Nonsense?
To practice separating insight from slop in AI-generated research, I asked Claude Code with Fable 5 and Codex with GPT-5.6 Sol Ultra to investigate the dataset. Time permitting, we’ll assess the reasoning and code in their six notebooks.
Claude Code
| Notebook | Topic | molab |
|---|---|---|
01_the_step_response.py |
A blast-induced phase offset follows the interrogator’s first-order high-pass step response. | |
02_the_clock_in_the_files.py |
Reported 5 Hz gaps reflect a drifting sample count, not missing data; within-file times are accurate to about one second. | |
03_the_brillouin_record.py |
BOTDR detects no borehole motion above noise, while robust statistics reveal four cable junctions. |
Codex
| Notebook | Topic | molab |
|---|---|---|
01_blast_moveout.py |
A robust plane fit estimates blast velocities along the drift and boreholes, checked against paired fiber legs. | |
02_transient_or_permanent.py |
The N180 step decays within a minute on both fiber legs, with no persistent Brillouin signal. | |
03_coupling_or_optics.py |
Cemented intervals are quieter – a registration feature, not a coupling test – and uncoupled variability does not track cumulative connector and splice loss. |
Background
The data comes from an underground hardrock mine in Europe, where two types of sensing cable are grouted into 14 boreholes above the planned extraction volume, to watch how the rockmass holds up as extraction proceeds. See the borehole geometry and the optical paths.
Four kinds of fiber data ship with it, along with the metadata that describes them: DSS from a Febus G1 BOTDR, low frequency and 2 kHz DAS from a Sintela Onyx Peta (the interrogator samples at 20 kHz, but everything it writes out is decimated), and OTDR traces from a Tempo Communications OFL100. Later notebooks study a mine blast that went off at 2026-08-06T10:13:27 UTC.
Setup
The notebooks are marimo notebooks: plain python files that name their own dependencies, so there is no environment to build by hand. You will need python 3.12 or newer, and familiarity with numpy, pandas and matplotlib.
In the browser
Click a molab badge above: it opens the notebook on a machine that is not the conference wifi, and the notebook installs this repository, data and all, from its own first lines. Signing in with Google or GitHub is the only setup. Please open one before you arrive, so a login problem is not the first thing you hit in the session.
The bonus notebook is the one place the machine matters: molab’s notebook specs button will attach an NVIDIA GPU, and 04_dasjax.py compiles for whatever it finds. It runs on the default CPU too, and says which one it got.
On your own machine
Please do this before you arrive. Conference wifi is not a good place to install a scientific python stack for the first time.
First get the repository, with git or without – either way you end up with the same folder:
git clone https://github.com/DASDAE/galileo_2026
cd galileo_2026Without git, take the ZIP from the green Code button on the repo page, unzip it, and cd into it.
From that folder, uv builds one environment for every notebook:
uv run marimo editWithout uv, build that environment yourself:
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\Activate.ps1
python -m pip install -e . # use ".[bonus]" if you want notebook 04
marimo editEither way this pulls DASCore from its dev branch – the inventory, the OTDR reader and the hive-style directory attributes are not released yet – so the install needs git on your path and a few minutes.
Then open 00_setup.py in the marimo browser tab and run it. If it prints a DASCore version and four rows of file counts, you are ready for the session.
(One more option, for the curious: uvx marimo edit --sandbox 00_setup.py opens a single notebook file in its own throwaway environment, no clone needed – it fetches this repository, data included, and unpacks the recordings into galileo_2026_data beside the notebook. Cloning is still the better way to work through the session.)
If something goes wrong
- The DASCore install comes from a git branch, so it needs
giton your path even if you took the ZIP, and the first install takes a few minutes.error: ... git ... not foundmeans install git first. - Do not put the folder inside Dropbox, OneDrive, or another synced directory: the syncer fights the
.venvand the install gets slow or breaks in strange ways. Clone somewhere plain instead. - The
bonusextra is a heavy one on Linux: it brings JAX’s CUDA wheels, a few gigabytes of them, so that notebook 04 can reach a GPU. Everywhere else it installs the CPU build and the notebook runs the same, just slower. Skip it if you are short on bandwidth – notebook 04 also runs fine on molab. - If the local install keeps fighting you, stop: the molab links above are the fallback, and they need nothing but a browser. Come a few minutes early and we will sort the local install out.
Building the site
Maintainers only – attendees can skip this section entirely.
The landing page and both slide decks are one quarto project, so one command builds all of it into _site:
quarto render # or: quarto preview, for live reloadNothing is executed – the pages are markdown, the figures and the borehole geometry are committed files – so quarto is the only thing you need installed. Pushing any of them to main publishes the site to GitHub Pages.
License
Code is MIT, data is CC BY 4.0. See LICENSING.md.
AI usage
Claude Code and Codex were used to help prepare and edit this material.