Using Geoscience Skills
Meta-skill for discovering, routing, and composing the geoscience skills library.
This skill maps user intent to domain skills, workflow skills, slash commands, and agents.
Domain Routing Table
Match user intent keywords to the appropriate domain skill.
| Keywords / Triggers |
Skill |
Domain |
| SEG-Y, seismic traces, trace headers, inline, crossline |
segyio |
Seismic I/O |
| waveform, earthquake, FDSN, seismogram, miniSEED |
obspy |
Seismology |
| surface wave, dispersion, Rayleigh, Love wave |
disba |
Seismology |
| LAS, well logs, wireline, borehole curves |
lasio |
Well Logs |
| DLIS, RP66, array logs, modern well data |
dlisio |
Well Logs |
| well analysis, curve QC, multi-well, despike |
welly |
Well Logs |
| petrophysics, Sw, porosity, formation evaluation |
petropy |
Petrophysics |
| lithology, stratigraphy, striplog, facies log |
striplog |
Stratigraphy |
| 3D model, geology, implicit surface, faults |
gempy |
3D Modelling |
| fold modelling, structural frame, Loop3D |
loopstructural |
3D Modelling |
| GIS, spatial data prep, borehole to GemPy |
gemgis |
GIS Preprocessing |
| inversion, DC resistivity, magnetics, gravity, EM |
simpeg |
Inversion |
| ERT, SRT, IP, near-surface inversion |
pygimli |
Inversion |
| PDE, wave equation, finite differences, stencil |
devito |
Simulation |
| linear operator, inverse problem, sparsity |
pylops |
Inverse Problems |
| gravity, magnetic, Bouguer, upward continuation |
harmonica |
Potential Fields |
| AVO, Zoeppritz, Gassmann, fluid substitution, wavelet |
bruges |
Rock Physics |
| gridding, interpolation, spatial, Verde |
verde |
Spatial Analysis |
| variogram, kriging, GSLIB, geostatistics |
geostatspy |
Geostatistics |
| variogram fitting, scikit-learn style geostat |
scikit-gstat |
Geostatistics |
| spatial regression, GWR, GNNWR, non-stationarity, coefficient mapping |
gnnwr |
Spatial Regression |
| groundwater, time series, pumping test |
pastas |
Hydrology |
| landscape, erosion, surface processes, DEM |
landlab |
Surface Processes |
| stereonet, strike, dip, poles, structural |
mplstereonet |
Structural Geology |
| geochemistry, REE, spider diagram, ternary |
pyrolite |
Geochemistry |
| GPR, ground-penetrating radar, radargram |
gprpy |
Near-Surface |
| magnetotellurics, MT, impedance tensor |
mtpy |
Near-Surface |
| NetCDF, xarray, multi-dimensional, climate |
xarray |
Data Formats |
| 3D visualization, mesh, VTK, point cloud |
pyvista |
Visualization |
| data download, sample data, cache, fetch |
pooch |
Utilities |
Workflow Skills
Workflow skills chain multiple domain skills into end-to-end pipelines.
| Workflow |
Slash Command |
Skill Chain |
| Seismic Interpretation |
/seismic-workflow |
segyio -> obspy -> bruges -> disba -> pyvista |
| Well Log Evaluation |
/well-analysis |
lasio/dlisio -> welly -> petropy -> striplog -> pyvista |
| Geological Modelling |
/model-3d |
gemgis -> gempy/loopstructural -> pyvista |
| Geophysical Inversion |
/inversion-workflow |
simpeg/pygimli -> verde -> pyvista |
| Rock Physics & AVO |
/rock-physics |
lasio/welly -> bruges -> segyio |
Available Agents
| Agent |
Purpose |
Typical Trigger |
data-qc-reviewer |
Automated data quality checks across formats |
"QC my data", "check data quality" |
geoscience-mentor |
Guided explanations of geoscience concepts and methods |
"explain", "teach me", "what is" |
All 30 Domain Skills by Category
Seismic and Seismology
segyio -- SEG-Y file I/O, trace and header access
obspy -- seismological waveform processing, FDSN services
disba -- surface wave dispersion (Rayleigh, Love)
Well Log Analysis
lasio -- LAS file reading and writing
dlisio -- DLIS/RP66 binary well log parsing
welly -- well data analysis, curve QC, multi-well projects
petropy -- petrophysical analysis, formation evaluation
striplog -- lithological and stratigraphic log display
3D Geological Modelling
gempy -- implicit 3D geological modelling
loopstructural -- 3D modelling with fold and fault support
gemgis -- spatial data preprocessing for GemPy
Geophysical Inversion
simpeg -- multi-method geophysical inversion framework
pygimli -- ERT, SRT, IP inversion with simple API
devito -- symbolic PDE solver for wave propagation
pylops -- linear operators for inverse problems
Potential Fields and Rock Physics
harmonica -- gravity and magnetic data processing
bruges -- AVO, Gassmann, wavelets, elastic moduli
Spatial Analysis and Geostatistics
verde -- spatial gridding and interpolation
geostatspy -- variograms, kriging (GSLIB-style)
scikit-gstat -- geostatistics with scikit-learn API
gnnwr -- geographically weighted neural network regression
Hydrology and Surface Processes
pastas -- groundwater time series modelling
landlab -- landscape evolution modelling
Structural Geology and Geochemistry
mplstereonet -- stereonet plots for orientation data
pyrolite -- geochemical analysis and diagrams
Near-Surface Geophysics
gprpy -- GPR data processing
mtpy -- magnetotelluric data analysis
Data Formats and Visualization
xarray -- NetCDF, multi-dimensional labeled arrays
pyvista -- 3D mesh visualization and analysis
pooch -- data file fetching and caching
Skill Composition Rules
Chain skills when a task spans multiple stages of a geoscience workflow.
Composition Patterns
Data Loading -> Processing -> Modelling -> Visualization
1. Always start with a data I/O skill (segyio, lasio, dlisio, xarray)
2. Use processing skills for QC and transformation (welly, obspy, verde)
3. Apply domain modelling (bruges, gempy, simpeg, pygimli)
4. Finish with visualization (pyvista, matplotlib via domain skill)
When to Chain vs Use Standalone
| Scenario |
Approach |
| Single file format question |
Standalone domain skill |
| End-to-end analysis pipeline |
Workflow skill to orchestrate |
| Data QC across formats |
data-qc-reviewer agent |
| Concept explanation |
geoscience-mentor agent |
| Multi-library code generation |
Chain domain skills in order |
Dependency Awareness
When composing skills, respect data flow:
# Correct: segyio loads, obspy processes, bruges models
import segyio
import obspy
from bruges.reflection import zoeppritz
# Load with segyio
with segyio.open('seismic.sgy') as f:
data = f.trace[:]
# Process with obspy (convert to Stream if needed)
# Model with bruges
Rpp = zoeppritz(vp1, vs1, rho1, vp2, vs2, rho2, theta)
When to Use This Skill
This is the discovery and routing skill. Use it when:
- Starting a new geoscience coding session and unsure which library to use
- A user request spans multiple geoscience domains
- You need to find the right slash command or workflow for a task
- Composing multiple domain skills into a pipeline
- Looking up which skill handles a specific file format or analysis type
This skill does not perform any analysis itself. It directs to the appropriate
domain skill, workflow skill, or agent for execution.
Quick Decision Tree
User wants to...
|
+-- Load/write a file? --> Check format:
| SEG-Y -> segyio LAS -> lasio DLIS -> dlisio
| NetCDF -> xarray VTK -> pyvista
|
+-- Process signals? --> obspy (seismology), welly (well logs)
|
+-- Build a model?
| 3D geology -> gempy or loopstructural
| Rock physics -> bruges
| Inversion -> simpeg or pygimli
|
+-- Visualize results? --> pyvista (3D), matplotlib (2D via domain skill)
|
+-- Run a full pipeline? --> Use workflow skills above
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: steadfastasart-geoscience-skills-workflows3description: Using Geoscience Skills4---56# Using Geoscience Skills78Meta-skill for discovering, routing, and composing the geoscience skills library.9This skill maps user intent to domain skills, workflow skills, slash commands, and agents.1011## Domain Routing Table1213Match user intent keywords to the appropriate domain skill.1415| Keywords / Triggers | Skill | Domain |16|---------------------|-------|--------|17| SEG-Y, seismic traces, trace headers, inline, crossline | `segyio` | Seismic I/O |18| waveform, earthquake, FDSN, seismogram, miniSEED | `obspy` | Seismology |19| surface wave, dispersion, Rayleigh, Love wave | `disba` | Seismology |20| LAS, well logs, wireline, borehole curves | `lasio` | Well Logs |21| DLIS, RP66, array logs, modern well data | `dlisio` | Well Logs |22| well analysis, curve QC, multi-well, despike | `welly` | Well Logs |23| petrophysics, Sw, porosity, formation evaluation | `petropy` | Petrophysics |24| lithology, stratigraphy, striplog, facies log | `striplog` | Stratigraphy |25| 3D model, geology, implicit surface, faults | `gempy` | 3D Modelling |26| fold modelling, structural frame, Loop3D | `loopstructural` | 3D Modelling |27| GIS, spatial data prep, borehole to GemPy | `gemgis` | GIS Preprocessing |28| inversion, DC resistivity, magnetics, gravity, EM | `simpeg` | Inversion |29| ERT, SRT, IP, near-surface inversion | `pygimli` | Inversion |30| PDE, wave equation, finite differences, stencil | `devito` | Simulation |31| linear operator, inverse problem, sparsity | `pylops` | Inverse Problems |32| gravity, magnetic, Bouguer, upward continuation | `harmonica` | Potential Fields |33| AVO, Zoeppritz, Gassmann, fluid substitution, wavelet | `bruges` | Rock Physics |34| gridding, interpolation, spatial, Verde | `verde` | Spatial Analysis |35| variogram, kriging, GSLIB, geostatistics | `geostatspy` | Geostatistics |36| variogram fitting, scikit-learn style geostat | `scikit-gstat` | Geostatistics |37| spatial regression, GWR, GNNWR, non-stationarity, coefficient mapping | `gnnwr` | Spatial Regression |38| groundwater, time series, pumping test | `pastas` | Hydrology |39| landscape, erosion, surface processes, DEM | `landlab` | Surface Processes |40| stereonet, strike, dip, poles, structural | `mplstereonet` | Structural Geology |41| geochemistry, REE, spider diagram, ternary | `pyrolite` | Geochemistry |42| GPR, ground-penetrating radar, radargram | `gprpy` | Near-Surface |43| magnetotellurics, MT, impedance tensor | `mtpy` | Near-Surface |44| NetCDF, xarray, multi-dimensional, climate | `xarray` | Data Formats |45| 3D visualization, mesh, VTK, point cloud | `pyvista` | Visualization |46| data download, sample data, cache, fetch | `pooch` | Utilities |4748## Workflow Skills4950Workflow skills chain multiple domain skills into end-to-end pipelines.5152| Workflow | Slash Command | Skill Chain |53|----------|---------------|-------------|54| Seismic Interpretation | `/seismic-workflow` | segyio -> obspy -> bruges -> disba -> pyvista |55| Well Log Evaluation | `/well-analysis` | lasio/dlisio -> welly -> petropy -> striplog -> pyvista |56| Geological Modelling | `/model-3d` | gemgis -> gempy/loopstructural -> pyvista |57| Geophysical Inversion | `/inversion-workflow` | simpeg/pygimli -> verde -> pyvista |58| Rock Physics & AVO | `/rock-physics` | lasio/welly -> bruges -> segyio |5960## Available Agents6162| Agent | Purpose | Typical Trigger |63|-------|---------|-----------------|64| `data-qc-reviewer` | Automated data quality checks across formats | "QC my data", "check data quality" |65| `geoscience-mentor` | Guided explanations of geoscience concepts and methods | "explain", "teach me", "what is" |6667## All 30 Domain Skills by Category6869### Seismic and Seismology70- `segyio` -- SEG-Y file I/O, trace and header access71- `obspy` -- seismological waveform processing, FDSN services72- `disba` -- surface wave dispersion (Rayleigh, Love)7374### Well Log Analysis75- `lasio` -- LAS file reading and writing76- `dlisio` -- DLIS/RP66 binary well log parsing77- `welly` -- well data analysis, curve QC, multi-well projects78- `petropy` -- petrophysical analysis, formation evaluation79- `striplog` -- lithological and stratigraphic log display8081### 3D Geological Modelling82- `gempy` -- implicit 3D geological modelling83- `loopstructural` -- 3D modelling with fold and fault support84- `gemgis` -- spatial data preprocessing for GemPy8586### Geophysical Inversion87- `simpeg` -- multi-method geophysical inversion framework88- `pygimli` -- ERT, SRT, IP inversion with simple API89- `devito` -- symbolic PDE solver for wave propagation90- `pylops` -- linear operators for inverse problems9192### Potential Fields and Rock Physics93- `harmonica` -- gravity and magnetic data processing94- `bruges` -- AVO, Gassmann, wavelets, elastic moduli9596### Spatial Analysis and Geostatistics97- `verde` -- spatial gridding and interpolation98- `geostatspy` -- variograms, kriging (GSLIB-style)99- `scikit-gstat` -- geostatistics with scikit-learn API100- `gnnwr` -- geographically weighted neural network regression101102### Hydrology and Surface Processes103- `pastas` -- groundwater time series modelling104- `landlab` -- landscape evolution modelling105106### Structural Geology and Geochemistry107- `mplstereonet` -- stereonet plots for orientation data108- `pyrolite` -- geochemical analysis and diagrams109110### Near-Surface Geophysics111- `gprpy` -- GPR data processing112- `mtpy` -- magnetotelluric data analysis113114### Data Formats and Visualization115- `xarray` -- NetCDF, multi-dimensional labeled arrays116- `pyvista` -- 3D mesh visualization and analysis117- `pooch` -- data file fetching and caching118119## Skill Composition Rules120121Chain skills when a task spans multiple stages of a geoscience workflow.122123### Composition Patterns124125```text126Data Loading -> Processing -> Modelling -> Visualization1271281. Always start with a data I/O skill (segyio, lasio, dlisio, xarray)1292. Use processing skills for QC and transformation (welly, obspy, verde)1303. Apply domain modelling (bruges, gempy, simpeg, pygimli)1314. Finish with visualization (pyvista, matplotlib via domain skill)132```133134### When to Chain vs Use Standalone135136| Scenario | Approach |137|----------|----------|138| Single file format question | Standalone domain skill |139| End-to-end analysis pipeline | Workflow skill to orchestrate |140| Data QC across formats | `data-qc-reviewer` agent |141| Concept explanation | `geoscience-mentor` agent |142| Multi-library code generation | Chain domain skills in order |143144### Dependency Awareness145146When composing skills, respect data flow:147148```python149# Correct: segyio loads, obspy processes, bruges models150import segyio151import obspy152from bruges.reflection import zoeppritz153154# Load with segyio155with segyio.open('seismic.sgy') as f:156 data = f.trace[:]157158# Process with obspy (convert to Stream if needed)159# Model with bruges160Rpp = zoeppritz(vp1, vs1, rho1, vp2, vs2, rho2, theta)161```162163## When to Use This Skill164165This is the **discovery and routing** skill. Use it when:166167- Starting a new geoscience coding session and unsure which library to use168- A user request spans multiple geoscience domains169- You need to find the right slash command or workflow for a task170- Composing multiple domain skills into a pipeline171- Looking up which skill handles a specific file format or analysis type172173This skill does not perform any analysis itself. It directs to the appropriate174domain skill, workflow skill, or agent for execution.175176## Quick Decision Tree177178```text179User wants to...180 |181 +-- Load/write a file? --> Check format:182 | SEG-Y -> segyio LAS -> lasio DLIS -> dlisio183 | NetCDF -> xarray VTK -> pyvista184 |185 +-- Process signals? --> obspy (seismology), welly (well logs)186 |187 +-- Build a model?188 | 3D geology -> gempy or loopstructural189 | Rock physics -> bruges190 | Inversion -> simpeg or pygimli191 |192 +-- Visualize results? --> pyvista (3D), matplotlib (2D via domain skill)193 |194 +-- Run a full pipeline? --> Use workflow skills above195```196197---198> Converted and distributed by [TomeVault](https://tomevault.io/claim/steadfastasart) — claim your Tome and manage your conversions.199<!-- tomevault:4.0:skill_md:2026-04-11 -->