Stores information about digital, band-limited, time-varying signals. More...

#include <Observation.h>

Inheritance diagram for dsp::Observation:
OwnStream Reference::Able Reference::HeapTracked dsp::ASCIIObservation dsp::BitSeries dsp::DataSeries dsp::FadcObservation dsp::ObservationChange dsp::ParallelBitSeries dsp::PMDAQ_Observation dsp::PrestoObservation dsp::SigProcObservation

Classes

class  Interface
 Provides a text interface to get and set Observation attributes. More...
 

Public Member Functions

 Observation ()
 Null constructor.
 
 Observation (const Observation &)
 Copy constructor.
 
 Observation (const Observation *)
 Copy from pointer constructor.
 
const Observationoperator= (const Observation &)
 Assignment operator.
 
virtual ~Observation ()
 Virtual destructor (see Effective C++ Item 14)
 
virtual void copy (const Observation *obs)
 Same as operator= but takes a pointer.
 
virtual Observationclone () const
 Cloner (calls new)
 
virtual void set_basis (Signal::Basis _basis)
 Set the type of receiver feeds.
 
Signal::Basis get_basis () const
 Return the type of receiver feeds.
 
virtual void set_state (Signal::State _state)
 Set the state of the signal.
 
Signal::State get_state () const
 Return the state of the signal.
 
virtual void set_type (Signal::Source _type)
 Set the source type.
 
Signal::Source get_type () const
 Return the source type.
 
virtual void set_ndim (unsigned _ndim)
 Set the dimension of each datum.
 
unsigned get_ndim () const
 Return the dimension of each datum.
 
virtual void set_nchan (unsigned _nchan)
 Set the number of channels into which the band is divided.
 
unsigned get_nchan () const
 Return the number of channels into which the band is divided.
 
virtual void set_npol (unsigned _npol)
 Set the number of polarizations.
 
unsigned get_npol () const
 Return the number of polarizations.
 
virtual void set_nbit (unsigned _nbit)
 Set the number of bits per value.
 
unsigned get_nbit () const
 Return the number of bits per value.
 
uint64_t bits_per_sample () const
 Return the number of bits in a single time sample (over all channels, pols, and dimensions)
 
virtual void set_ndat (uint64_t _ndat)
 Set the number of time samples in container. More...
 
uint64_t get_ndat () const
 Return the number of time samples in container.
 
virtual void set_telescope (const std::string &name)
 Set the telescope name.
 
std::string get_telescope () const
 Return the telescope name.
 
virtual void set_receiver (const std::string &name)
 Set the receiver name.
 
std::string get_receiver () const
 Return the receiver name.
 
virtual void set_source (const std::string &name)
 Set the source name.
 
std::string get_source () const
 Return the source name.
 
virtual void set_coordinates (sky_coord _coordinates)
 Set the coordinates of the source.
 
sky_coord get_coordinates () const
 Return the coordinates of the source.
 
virtual void set_centre_frequency (double cf)
 Set the centre frequency of the band-limited signal in MHz.
 
double get_centre_frequency () const
 Return the centre frequency of the band-limited signal in MHz.
 
double get_centre_frequency (unsigned ichan) const
 Returns the centre frequency of the specified channel in MHz.
 
double get_base_frequency () const
 Returns the centre frequency of the reference channel in MHz.
 
unsigned get_unswapped_ichan (unsigned ichan) const
 Returns the unswapped channel index of the specified channel.
 
virtual void set_bandwidth (double _bandwidth)
 Set the bandwidth of signal in MHz (-ve = lsb; +ve = usb)
 
double get_bandwidth () const
 Return the bandwidth of signal in MHz (-ve = lsb; +ve = usb)
 
virtual void set_start_time (MJD _start_time)
 Set the start time of the leading edge of the first time sample.
 
MJD get_start_time () const
 Return the start time of the leading edge of the first time sample.
 
virtual void set_rate (double _rate)
 Set the sampling rate (time samples per second in Hz)
 
double get_rate () const
 Return the sampling rate (time samples per second in Hz)
 
virtual void set_scale (double _scale)
 Set the amount by which data has been scaled.
 
double get_scale () const
 Return the amount by which data has been scaled.
 
virtual void set_swap (bool _swap)
 Set true if frequency channels are out of order (band swappped)
 
bool get_swap () const
 Return true if frequency channels are out of order (band swappped)
 
virtual void set_nsub_swap (unsigned _nsub)
 Set the number of sub-bands that must be band swapped.
 
unsigned get_nsub_swap () const
 Return the number of sub-bands that must be band swapped.
 
virtual void set_dual_sideband (int _dual)
 Set to 1 if the spectrum in each channel has dual-sideband frequency order. More...
 
int get_dual_sideband () const
 Return the dual-sideband. More...
 
virtual void set_dc_centred (bool _centred)
 Set true if centre channel is centred on centre frequency. More...
 
bool get_dc_centred () const
 
virtual void set_identifier (const std::string &_id)
 Set the observation identifier.
 
std::string get_identifier () const
 Return the observation identifier.
 
virtual void set_machine (const std::string &_m)
 Set the instrument used to record signal.
 
std::string get_machine () const
 Return the instrument used to record signal.
 
virtual void set_format (const std::string &_f)
 Set the format used to record signal.
 
std::string get_format () const
 Return the format used to record signal.
 
virtual void set_dispersion_measure (double dm)
 Set the pulsar dispersion mesure.
 
double get_dispersion_measure () const
 Returns the pulsar dispersion measure.
 
virtual void set_rotation_measure (double rm)
 Set the pulsar rotation mesure.
 
double get_rotation_measure () const
 Returns the pulsar rotation measure.
 
virtual void set_mode (const std::string &_mode)
 Set the observation mode.
 
std::string get_mode () const
 Return the observation mode.
 
virtual void set_calfreq (double _calfreq)
 Set the calibrator frequency.
 
double get_calfreq () const
 get the calibrator frequency
 
virtual void set_oversampling_factor (const Rational &_osf)
 Set the oversampling factor.
 
const Rationalget_oversampling_factor () const
 Get the oversampling factor.
 
virtual void set_deripple (const std::vector< dsp::FIRFilter > &_deripple)
 
const std::vector< dsp::FIRFilter > & get_deripple () const
 
unsigned get_deripple_stages () const
 
virtual void set_pfb_dc_chan (const bool _pfb_dc_chan)
 set/get the DC PFB channel flag (for inverse filterbank)
 
bool get_pfb_dc_chan () const
 
virtual void set_pfb_nchan (unsigned nchan)
 set/get the number of channels output by the PFB per input channel
 
unsigned get_pfb_nchan () const
 
virtual void change_state (Signal::State new_state)
 Change the state and correct other attributes accordingly.
 
bool state_is_valid (std::string &reason) const
 Return true if the state of the Observation is valid. More...
 
bool get_detected () const
 Returns true if state is Detected, Coherence, or Stokes.
 
void change_start_time (int64_t _ndat)
 Change the start time by the number of time samples specified.
 
virtual MJD get_end_time () const
 Return the end time of the trailing edge of the last time sample.
 
uint64_t get_idat (const MJD &mjd)
 Return the nearest time sample corresponding to the specified MJD.
 
void rescale (double factor)
 Multiply scale by factor.
 
virtual uint64_t get_nbytes (uint64_t nsamples) const
 Return the size in bytes of nsamples time samples.
 
uint64_t get_nbytes () const
 Return the size in bytes of ndat time samples.
 
uint64_t verbose_nbytes (uint64_t nsamples) const
 
float get_nbyte () const
 Return the size in bytes of one time sample.
 
virtual uint64_t get_nsamples (uint64_t nbytes) const
 Return the number of samples in nbytes bytes.
 
void copy_dimensions (const Observation *)
 Copy the dimensions of another observation.
 
bool combinable (const Observation &obs) const
 Returns true if the signal may be integrated.
 
std::string get_reason ()
 Returns the reason if combinable returns false.
 
bool contiguous (const Observation &next) const
 Return true if the first sample of next follows the last sample of this.
 
void init ()
 Set all attributes to null default.
 
void set_nbyte_nsample_policy (NbyteNsamplePolicy *)
 Set the policy that defines the bijection between number of bytes and number of samples.
 
const NbyteNsamplePolicy * get_nbyte_nsample_policy () const
 Get the policy that defines the bijection between number of bytes and number of samples.
 
virtual TextInterface::Parserget_interface ()
 Return a text interface that can be used to access this instance.
 
- Public Member Functions inherited from OwnStream
 OwnStream (const OwnStream &)
 
const OwnStreamoperator= (const OwnStream &)
 
virtual void set_cout (std::ostream &) const
 
virtual void set_cerr (std::ostream &) const
 
- Public Member Functions inherited from Reference::Able
 Able (const Able &)
 
Ableoperator= (const Able &)
 
unsigned get_reference_count () const
 
- Public Member Functions inherited from Reference::HeapTracked
 HeapTracked (const HeapTracked &)
 
HeapTrackedoperator= (const HeapTracked &)
 
bool __is_on_heap () const
 

Static Public Attributes

static bool verbose = false
 Verbosity flag.
 

Protected Attributes

std::string telescope
 Telescope name.
 
std::string receiver
 Receiver name.
 
std::string source
 Source name. If a pulsar, should be J2000.
 
double centre_frequency = 0.0
 Centre frequency of band-limited signal in MHz.
 
double bandwidth = 0.0
 Bandwidth of signal in MHz (-ve = lsb; +ve = usb)
 
Signal::Source type
 Type of signal source (Pulsar, CAL, etc.)
 
Signal::State state
 State of the signal (Full Stokes, Total Intensity, etc.)
 
Signal::Basis basis
 Type of receiver feeds (Linear or Circular)
 
double rate = 0.0
 Time samples per second in Hz.
 
MJD start_time
 Start time of the leading edge of the first time sample.
 
std::string identifier
 Observation identifier.
 
std::string mode
 Observation mode.
 
std::string machine
 Instrument used to record signal.
 
std::string format
 Data format used to record signal.
 
sky_coord coordinates
 Coordinates of the source.
 
double dispersion_measure = 0.0
 The dispersion measure to be archived.
 
double rotation_measure = 0.0
 The rotation measure to be archived.
 
bool require_equal_sources = true
 Require equal sources in combinable.
 
bool require_equal_rates = true
 Require equal rates in combinable.
 
double scale = 1.0
 Amount by which data has been scaled.
 
bool swap = false
 Flag set when frequency channels are out of order (band swappped)
 
unsigned nsub_swap = 0
 The number of sub-bands that must be band swapped.
 
bool dc_centred = false
 Flag set when centre channel is centred on centre frequency.
 
Rational oversampling_factor
 oversampling factor
 
std::vector< FIRFilter > deripple
 information about deripple correction
 
bool pfb_dc_chan = true
 Do we have the DC, or zeroth PFB channel?
 
unsigned pfb_nchan = 0
 Number of channels output by PFB for a single input time series. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Reference::Able
static size_t get_instance_count ()
 
- Static Public Member Functions inherited from Reference::HeapTracked
static void * operator new (size_t size, void *ptr=0)
 
static void operator delete (void *location, void *ptr)
 
static void operator delete (void *location)
 
static size_t get_heap_queue_size ()
 
- Protected Member Functions inherited from Reference::Able
Handle__reference (bool active) const
 
void __dereference (bool auto_delete=true) const
 

Detailed Description

Stores information about digital, band-limited, time-varying signals.

Member Function Documentation

◆ get_dual_sideband()

int dsp::Observation::get_dual_sideband ( ) const

Return the dual-sideband.

Return true if the data are dual_sideband.

References Signal::Analytic.

Referenced by dsp::Observation::Interface::Interface(), and dsp::CyclicFold::prepare_output().

◆ set_dc_centred()

virtual void dsp::Observation::set_dc_centred ( bool  _centred)
inlinevirtual

Set true if centre channel is centred on centre frequency.

This flag is currently experimental

Reimplemented in dsp::ObservationChange.

References dc_centred.

Referenced by dsp::ObservationChange::change(), and dsp::ObservationChange::set_dc_centred().

◆ set_dual_sideband()

void dsp::Observation::set_dual_sideband ( int  _dual)
virtual

Set to 1 if the spectrum in each channel has dual-sideband frequency order.

Set true if the data are dual sideband.

Set to N if the spectrum is also composed of N dual-sideband sub-bands. Set to -N if the spectrum is only composed of N dual-sideband sub-bands.

Referenced by dsp::ObservationChange::change(), dsp::Observation::Interface::Interface(), and dsp::ObservationChange::set_dual_sideband().

◆ set_ndat()

virtual void dsp::Observation::set_ndat ( uint64_t  _ndat)
inlinevirtual

Set the number of time samples in container.

Note that one time sample may be complex and/or vector in nature. For instance, the in-phase and quadrature components of two orthogonal polarizations, though represented by four independent numbers, still represent one time sample.

Reimplemented in dsp::DataSeries, and dsp::ObservationChange.

Referenced by dsp::ObservationChange::change(), dsp::TimeSeries::decrease_ndat(), dsp::Seekable::load_data(), dsp::MPIRoot::load_data(), dsp::ObservationChange::set_ndat(), dsp::DataSeries::set_ndat(), and dsp::Input::set_total_samples().

◆ state_is_valid()

bool dsp::Observation::state_is_valid ( std::string &  reason) const

Return true if the state of the Observation is valid.

Return values
booleantrue if the state of the Observation is valid
Parameters
reasonIf the return value is false, a string describing why

References Signal::valid_state().

Member Data Documentation

◆ pfb_nchan

unsigned dsp::Observation::pfb_nchan = 0
protected

Number of channels output by PFB for a single input time series.

If two stages of analysis filter bank operations are performed, pfb_nchan should be the number of fine channels per input coarse channel.

If only the fine channels that span the critically-sampled portion of each coarse channel are kept, then pfb_nchan should be the number of fine channels that are kept.

Referenced by set_pfb_nchan().


The documentation for this class was generated from the following files:

Generated using doxygen 1.8.17