Ask a Question | Search PSRCHIVE: |
Home
|
PSRCHIVE Documentation IntroductionThe PSRCHIVE Library implements a set of base classes (in C++) that may be used in the storage, manipulation, and analysis of the observational data commonly used in pulsar experiments. The base classes implement a wide variety of general purpose, flexible routines. Pulse ProfilesThe basic quantity observed in most pulsar experiments is the pulse profile: a one-dimensional array of some measured quantity as a function of pulse phase. This is represented by the Pulsar::Profile class. The Pulsar::Integration class contains a two-dimensional array of Pulsar::Profile objects, each integrated over the same time interval. The Pulsar::Profile objects are typically organized as a function of polarization and observing frequency, though other measured states are possible. The Pulsar::Archive class implements a one-dimensional array of Pulsar::Integration objects, each with similar observational parameters and each in "pulse phase" with each other. Container InterfaceThe Pulsar::Profile, Pulsar::Integration, and Pulsar::Archive classes are Pulsar::Container classes; they implement a minimal set of operations required to load, store, and perform simple manipulations of their contents. For example, the Pulsar::Profile class provides the following member functions:
The Pulsar::Integration class implements a minimal set of operations required to manipulate a set of Pulsar::Profile objects in the polarization and frequency domains. In addition to simple nested calls of the above functions, these include:
The Pulsar::Archive virtual base class is the interface that will be used in most applications. In addition to providing interfaces to all of the above functions, the Pulsar::Archive class implements:
More sophisticated operations are generally implemented as objects that take one of the Pulsar::Container classes as an input. These mostly inherit the Pulsar::Algorithm base class. To list the majority of the classes defined by the PSRCHIVE library, please see the Class List. Algorithm InterfaceThe interface to an Pulsar::Algorithm is arbitrary. The base class exists only as a means of classification. Pulsar::Algorithm classes can be used to calculate statistics, find the best-fit shift between a profile and a template, perform scattered power correction, etc. Archive File FormatsThe Pulsar::Archive virtual base class specifies only the minimal set of information required in order to implement basic data reduction algorithms. Although it specifies the interface to set and get the values of various attributes and load and unload data from file, no storage or I/O capability is implemented by Pulsar::Archive. These methods, especially those related to file I/O, must be implemented by classes that inherit the Pulsar::Archive base class. Most observatories and research groups use unique file formats and associate different pieces of information with their observations. The derived classes must therefore implement the storage and modification of this auxiliary information. This may be facilitated using the Archive::Extension classes. In general, applications need not know anything about the specific archive file format with which they are dealing. New Pulsar::Archive instances are created and loaded from file by calling the static Pulsar::Archive::load factory. Generated using doxygen 1.8.17
|