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 Package

Pulsar Scintillation Screen modelling.

Classes

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

Conjugate spectrum and methods to fit it.

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

Dynamic spectrum and its axes.

Class Inheritance Diagram

Inheritance diagram of screens.conjspec.ConjugateSpectrum, screens.dynspec.DynamicSpectrum

screens.screen Module

Representations for sources, screens, and telescopes.

Warning

experimental, i.e., API likely to change. For an example, see Simulating a multiple-screen system

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