Usage¶
Running PyStoch is a three-step process. All commands read parameters.ini
(and, after step 1, framesets.ini) from the current working directory unless
told otherwise.
1. Read frames — read_frames¶
Keep the frames you want to process in subdirectories; each subdirectory is
a frameset. For example, FSID frames for the O3 run from the H1L1 baseline can
live in ./frames/O3_H1L1/, giving a frameset named O3_H1L1. You can have
framesets for different baselines (e.g. O3_H1V1, O3_L1V1).
All frames within a frameset are assumed to share the same parameters (duration, sampling rate, etc.).
Point the frames_location field in parameters.ini at the parent of the
framesets, then run:
read_frames
This creates (or updates) framesets.ini with each frameset and its parameters.
Every frameset has a process flag: if True, it is included in the map
calculation; if False, it is ignored. Always double-check the detected
parameters.
usage: read_frames [-h] [--param_file PARAM_FILE] [--log_file LOG_FILE] [--err_file ERR_FILE]
2. Convert frames — convert_frames¶
Once framesets.ini is correct, convert the .gwf frames to a compressed HDF5
file (this only has to be done once per frameset, and speeds up reading):
convert_frames
usage: convert_frames [-h] [--param_file PARAM_FILE] [--datasets [DATASETS ...]]
[--log_file LOG_FILE] [--err_file ERR_FILE]
3. Make maps — pystoch¶
Check parameters.ini and framesets.ini, then run:
pystoch
Framesets whose process flag is True are processed. Results are written as
pickle (.pkl) files in output_map_location, along with a run_parameters.ini
recording the exact settings used.
Most parameters can also be overridden on the command line (these take
precedence over parameters.ini), for example:
pystoch --param_nside 8 --param_f_min 20 --param_f_max 100 \
--param_sph True --param_pixel True --output_prefix run1_
Run pystoch --help for the full list of overrides.
Outputs¶
Depending on the selected bases, PyStoch writes:
Pixel_<dataset>_<nside>_<date>.pkl— pixel-basis dirty map and Fisher information.SpH_<dataset>_<lmax>_<date>.pkl— spherical-harmonic dirty map and Fisher.Pixel_NBR_<dataset>_<nside>_<date>.pkl— narrowband-radiometer point estimate and sigma (whennbris enabled).
Each pickle is a dictionary that also stores the run parameters and frameset metadata.
Using PyStoch as a library¶
The main building blocks are available directly from the top-level pystoch
namespace, so PyStoch can be scripted as well as run from the command line.
They are imported lazily, so import pystoch itself stays lightweight (it does
not pull in healpy/gwpy until you actually use a function that needs them).
import pystoch
# detector geometry and antenna response
location = pystoch.gwdetectors("H1")["Location"]
gmst = pystoch.gmst_calculate(1369056000)
# build the parameter object from a parameters.ini file
params = pystoch.PystochParam("parameters.ini")
# spherical-harmonic index table, notching, spectral index, ...
lm = pystoch.complex_getlm(params.lmax)
The map-making pieces (FramesetParam, FramesetIntermediates,
calculate_maps, calculate_fisher_diag) are exposed the same way. See the
API reference reference for the complete list.