Command line plotting with GWpy¶
The gwpy-plot
command-line script provides a terminal-based user interface
to querying data and generating images.
Functionality for this tool is primarily inspired by LigoDV-web
(LDVW, https://ldvw.ligo.caltech.edu), a web tool for viewing LIGO data,
available to members of the joint LIGO-Virgo collaboration.
LDVW, written in Java, uses the gwpy-plot
command-line script provided by
GWpy to generate the plots based on web-form input from the user.
The basic usage for gwpy-plot
is as follows:
gwpy-plot <ACTION> --chan <channel-name> --start <gps-start-time> [OPTIONS]
Where <ACTION>
is the type of plot to make.
You can run gwpy-plot --help
to list the plot types (‘actions’) you can use:
$ gwpy-plot --help
/home/duncan.macleod/.conda/envs/gwpy-nightly-3.9/lib/python3.9/site-packages/gwpy/plot/gps.py:28: MatplotlibDeprecationWarning: The matplotlib.docstring module was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
from matplotlib import (ticker, docstring)
Usage: gwpy-plot [-h] [-V]
{timeseries,spectrum,spectrogram,coherence,coherencegram,qtransform,transferfunction}
...
Generate plots of GW observatory data using GWpy
Options:
-h, --help show this help message and exit
-V, --version show program's version number and exit
Actions:
Select one of the following actions:
{timeseries,spectrum,spectrogram,coherence,coherencegram,qtransform,transferfunction}
timeseries Plot one or more time series
spectrum Plot the ASD spectrum of one or more time series
spectrogram Plot the spectrogram of a time series
coherence Plot coherence between a reference time series and one
coherencegram Plot the coherence-spectrogram comparing two time series
qtransform Plot the Q-transform (Omega)
transferfunction Plot transfer function between a reference time series and one
Examples:
$ gwpy-plot timeseries --chan H1:GDS-CALIB_STRAIN --start 1126259457
$ gwpy-plot spectrum --chan H1:GDS-CALIB_STRAIN L1:GDS-CALIB_STRAIN --chan V1:Hrec_hoft_16384Hz --start 1187008866 --duration 32 --xmin 10 --xmax 4000
$ gwpy-plot coherencegram --chan H1:GDS-CALIB_STRAIN H1:PEM-CS_ACC_PSL_PERISCOPE_X_DQ --start 1126260017 --duration 600
Written by Joseph Areeda <joseph.areeda@ligo.org>.
Report bugs to https://github.com/gwpy/gwpy/issues/.
To see the arguments and options for a given action, you can run, for example,
gwpy-plot timeseries --help
:
$ gwpy-plot timeseries --help
/home/duncan.macleod/.conda/envs/gwpy-nightly-3.9/lib/python3.9/site-packages/gwpy/plot/gps.py:28: MatplotlibDeprecationWarning: The matplotlib.docstring module was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
from matplotlib import (ticker, docstring)
usage: gwpy-plot timeseries [-h] [-v] [-s] --chan CHAN [CHAN ...]
[--start START [START ...]] [--duration DURATION]
[-c FRAMECACHE | -n HOSTNAME | --frametype FRAMETYPE]
[--highpass HIGHPASS] [--lowpass LOWPASS]
[--notch [NOTCH ...]] [-g WxH] [--dpi DPI]
[--interactive] [--title TITLE]
[--suptitle SUPTITLE] [--out OUT]
[--legend LEGEND [LEGEND ...]] [--nolegend]
[--nogrid] [--style FILE] [--xlabel XLABEL]
[--xmin XMIN] [--xmax XMAX]
[--xscale XSCALE | --logx] [--epoch EPOCH]
[--std-seg] [--seg SEG [SEG ...]]
[--ylabel YLABEL] [--ymin YMIN] [--ymax YMAX]
[--yscale YSCALE | --logy]
Options:
-h, --help show this help message and exit
Verbosity options:
-v, --verbose increase verbose output (default: 1)
-s, --silent show only fatal errors (default: False)
Data options:
What data to load
--chan CHAN [CHAN ...]
channels to load (default: None)
--start START [START ...]
Starting GPS times (required) (default: None)
--duration DURATION Duration (seconds) [10] (default: 10)
Data source options:
Where to get the data
-c FRAMECACHE, --framecache FRAMECACHE
read data from cache (default: None)
-n HOSTNAME, --nds2-server HOSTNAME
name of nds2 server to use, default is to try all of
them (default: None)
--frametype FRAMETYPE
GWF frametype to read from (default: None)
Signal processing options:
What to do with the data before plotting
--highpass HIGHPASS Frequency for highpass filter (default: None)
--lowpass LOWPASS Frequency for lowpass filter (default: None)
--notch [NOTCH ...] Frequency for notch (can give multiple) (default:
None)
Plot options:
-g WxH, --geometry WxH
size of resulting image (default: 1200x600)
--dpi DPI dots-per-inch for figure (default: 100.0)
--interactive when running from ipython allows experimentation
(default: False)
--title TITLE Set title (below suptitle, defaults to parameter
summary (default: None)
--suptitle SUPTITLE 1st title line (larger than the others) (default:
None)
--out OUT output filename (default: gwpy.png)
--legend LEGEND [LEGEND ...]
strings to match data files (default: [])
--nolegend do not display legend (default: False)
--nogrid do not display grid lines (default: False)
--style FILE path to custom matplotlib style sheet, see
http://matplotlib.org/users/style_sheets.html#style-
sheets for details of how to write one (default: None)
X axis options:
--xlabel XLABEL X axis label (default: None)
--xmin XMIN min value for X axis (default: None)
--xmax XMAX max value for X axis (default: None)
--xscale XSCALE scale for X axis (default: None)
--logx use logarithmic X axis (default: None)
--epoch EPOCH center X axis on this GPS time, may beabsolute
date/time or delta (default: None)
--std-seg add DQ segment describing IFO state (default: False)
--seg SEG [SEG ...] specify one or more DQ segment names (default: None)
Y axis options:
--ylabel YLABEL Y axis label (default: None)
--ymin YMIN min value for Y axis (default: None)
--ymax YMAX max value for Y axis (default: None)
--yscale YSCALE scale for Y axis (default: None)
--logy use logarithmic Y axis (default: None)
The options for each action vary but many are common.
Specifying input data¶
The following table summarises the allowed number of inputs for each action
Action |
Number of channels |
Number of times |
---|---|---|
|
>=1 |
>=1 |
|
>=1 |
>=1 |
|
>=2 |
>=1 |
|
1 |
1 |
|
2 |
1 |
|
1 |
1 |
By default all data are retrieved using TimeSeriesDict.get()
, which uses nds2
for data access, but the --framcache
option allows you to pass your own data via a LAL-format cache file.
Interactive mode¶
The --interactive
argument uses pyplot
to display
the image and allow interactive manipulations, (zoom, pan, etc).
Examples¶
- 1. Simple timeseries
- 2. Filtered timeseries
- 3. Time-series of estimated distance sensitivity
- 4. Simple spectrum
- 5. Spectrum at two times
- 6. Spectrum with three interferometers
- 7. High-resolution spectrum
- 8. Simple spectrogram
- 9. Normalised spectrogram
- 10. Simple coherence
- 11. Simple coherence spectrogram