Pulsar scintillation screens

Powered by Astropy Badge Test Status Documentation Status DOI 10.5281/zenodo.7455535

Analyze and model pulsar dynamic spectra, using secondary spectra and theta-theta decompositions for linear screens.

Everything here is super-preliminary and in constant flux.

Installation instructions

The package and its dependencies can be installed with:

pip install git+https://github.com/mhvk/screens.git#egg=screens

License

This project is Copyright (c) M.H. van Kerkwijk and licensed under the terms of the GNU GPL v3+ license. This package is based upon the Astropy package template which is licensed under the BSD 3-clause licence. See the licenses folder for more information.

Background

Tutorials

Generating and processing scintillometry data

Modelling scintillation velocities

This is a sequence of interconnected tutorials dealing with time series of scintillation velocities (or curvature). See also the background document on scintillation velocities for a derivation of the equation appearing in these tutorials.

Reference/API

screens.screen Module

Representations for sources, screens, and telescopes.

Warning

experimental, i.e., API likely to change. For an example, see examples/two_screens.py.

Classes

Source([pos, vel, magnification])

Source of radiation at a given position and velocity.

Screen([pos, vel, magnification, source, ...])

Screen passing through a source of radiation.

Telescope([pos, vel, magnification, source, ...])

Telescope detecting a source of radiation.

Screen1D(normal[, p, v, magnification, ...])

One-dimensional screen.

Class Inheritance Diagram

Inheritance diagram of screens.screen.Source, screens.screen.Screen, screens.screen.Telescope, screens.screen.Screen1D

screens.fields Module

Functions

phasor(indep, transform[, linear_axis])

Calculate phase part of a Fourier transform like operation.

dynamic_field(theta_par, theta_perp, ...[, fast])

Given a set of scattering points, construct the dynamic wave field.

theta_grid(d_eff, mu_eff, fobs, dtau, ...)

Make a grid of theta that sample the parabola in a particular way.

theta_theta_indices(theta[, lower, upper])

Indices to pairs of angles within bounds.

screens.dynspec Module

Classes

DynamicSpectrum(dynspec, f, t[, noise])

Dynamic spectrum and its axes.

Class Inheritance Diagram

Inheritance diagram of screens.dynspec.DynamicSpectrum

screens.conjspec Module

Classes

ConjugateSpectrum(conjspec, tau, fd[, noise])

Conjugate spectrum and methods to fit it.

Class Inheritance Diagram

Inheritance diagram of screens.conjspec.ConjugateSpectrum

screens.remap Module

Functions

lincover(a, n)

Cover the range spanned by a in n points.

remap_time(ds, t_map, new_t)

Remap DS(t, f) to new(t_map[t], f).

screens.modeling Module

Classes to model dynamic and conjugate spectra.

This is very much work in progress, with a somewhat illogical combination of the various fitting methods in a single class.

Classes

DynamicSpectrumModel(ds[, d_eff, mu_eff, ...])

Model a dynamic spectrum.

ConjugateSpectrumModel(cs[, d_eff, mu_eff, ...])

Conjugate spectrum and methods to fit it.

Class Inheritance Diagram

Inheritance diagram of screens.modeling.DynamicSpectrumModel, screens.modeling.ConjugateSpectrumModel

screens.visualization Package

Functions

axis_extent(*args)

Treat the arguments as axis arrays of an image, and get their extent.

make_sketch(theta[, beta, screen_y_scale, ...])

Draw a schematic of the thin-screen model of for scintillation.

Classes

ThetaTheta(theta)

Class Inheritance Diagram

Inheritance diagram of screens.visualization.thetatheta.ThetaTheta