A d3-based SU (Seismic Unix) viewer and picker. The viewer is built
on nwjs
, a technology that let's one run web-based applications on
the desktop. The display is
through d3
, a javascript library for visualization.
This tool allows one to pick the times of events of interest in a seismic file and save the picks to a text file.
Javascript does not have a segy reader, thus we use python to read su
and segy files and serve them to the picker through WebSockets
.
Download nwjs (http://nwjs.io)
Install node
(http://nodejs.org), which includes npm
(the node
package manager)
Install bower
(another package manager(?))
npm install bower -g
git clone https://github.com/sanandak/d3-su-picker
cd d3-su-picker
# install the required packages
bower install
npm install
Install python3 3.5 or less (preferably through anaconda (http://continuum.io))
conda config --add channels conda-forge
conda install obspy
conda install websockets
These are installed by npm
and bower
- d3js v4
- sprintf-js
- angularjs
These are installed by conda
(pip
may work - untested)
- obspy
- websockets
- numpy and scipy are installed with obspy
/path/to/nwjs /path/to/d3-su-picker
Buttons to open an SU file and to save picks.
The viewer displays the first ensemble (by default, the first ffid
- field file id).
Keyboard commands:
j
andk
move the cursor forward and back in time by one sample.J
andK
move the cursor by 10 samplesh
andl
move the cursor to the next/previous traceH
andL
move the cursor by 10 tracesz
andZ
zoom in and out in timet
andT
zoom in and out in space (fewer and more traces are displayed)p
picks the time of the cursord
deletes the pick
The saved picks file is a JSON file that is an array of traces.
- sufile: file name of the picked data
- picktime: when the picking was done
- picks: an array of picks, with +/- 100 samps around the pick
Each picks member is a trace object with the following fields:
pickT
- the time of the pickpickIdx
- the sample number- 'pickVal` - the value
tracl
- see SU docs for the definition of these fieldsens
- the ffid or cdp ensemble numbersamps
(an array) - 100 samps before the pick and 100 after
Each member of samps
is an object with t
and v
fields: {t: 0, v: .01}
- Read SEG-Y files.
- Read pick files.
- populate pick file more fully