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.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 methods to fit it.

Class Inheritance Diagram

digraph inheritanceff4c249b35 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "DynamicSpectrum" [URL="api/screens.dynspec.DynamicSpectrum.html#screens.dynspec.DynamicSpectrum",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Dynamic spectrum and methods to fit it."]; }

screens.conjspec Module

Classes

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

Conjugate spectrum and methods to fit it.

Class Inheritance Diagram

digraph inheritance98c899d105 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ConjugateSpectrum" [URL="api/screens.conjspec.ConjugateSpectrum.html#screens.conjspec.ConjugateSpectrum",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Conjugate spectrum and methods to fit it."]; }

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

digraph inheritancef94a3e27b8 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "NDArrayShapeMethods" [URL="https://docs.astropy.org/en/stable/api/astropy.utils.shapes.NDArrayShapeMethods.html#astropy.utils.shapes.NDArrayShapeMethods",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Mixin class to provide shape-changing methods."]; "Screen" [URL="api/screens.screen.Screen.html#screens.screen.Screen",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Screen passing through a source of radiation."]; "Source" -> "Screen" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Screen1D" [URL="api/screens.screen.Screen1D.html#screens.screen.Screen1D",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="One-dimensional screen."]; "Screen" -> "Screen1D" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ShapedLikeNDArray" [URL="https://docs.astropy.org/en/stable/api/astropy.utils.shapes.ShapedLikeNDArray.html#astropy.utils.shapes.ShapedLikeNDArray",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Mixin class to provide shape-changing methods."]; "NDArrayShapeMethods" -> "ShapedLikeNDArray" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Source" [URL="api/screens.screen.Source.html#screens.screen.Source",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Source of radiation at a given position and velocity."]; "ShapedLikeNDArray" -> "Source" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Telescope" [URL="api/screens.screen.Telescope.html#screens.screen.Telescope",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Telescope detecting a source of radiation."]; "Screen" -> "Telescope" [arrowsize=0.5,style="setlinewidth(0.5)"]; }

screens.visualization Package

Functions

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

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

Classes

ThetaTheta(theta)

Class Inheritance Diagram

digraph inheritance2d0d0d3eeb { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ThetaTheta" [URL="api/screens.visualization.ThetaTheta.html#screens.visualization.ThetaTheta",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top"]; }