TimerArchive ()
Default constructor.
TimerArchive (const TimerArchive &archive)
Copy constructor.
~TimerArchive ()
Destructor.
const TimerArchive & operator= (const TimerArchive &archive)
Assignment operator.
TimerArchive (const Archive &archive)
Base copy constructor.
void copy (const Archive &archive)
Copy all of the class attributes and the selected Integration data.
TimerArchive * clone () const
Return a pointer to a new copy constructed instance equal to this.
virtual std::string get_telescope () const
Get the telescope name.
virtual void set_telescope (const std::string &telescope)
Set the telescope name.
virtual Signal::State get_state () const
Get the state of the profiles.
virtual void set_state (Signal::State state)
Set the state of the profiles.
virtual Signal::Scale get_scale () const
Get the scale of the profiles.
virtual void set_scale (Signal::Scale scale)
Set the scale of the profiles.
virtual Signal::Source get_type () const
Get the observation type (psr, cal)
virtual void set_type (Signal::Source type)
Set the observation type (psr, cal)
virtual std::string get_source () const
Get the source name.
virtual void set_source (const std::string &source)
Set the source name.
virtual sky_coord get_coordinates () const
Get the coordinates of the source.
virtual void set_coordinates (const sky_coord &coordinates)
Set the coordinates of the source.
virtual unsigned get_nbin () const
Get the number of pulsar phase bins used.
virtual unsigned get_nchan () const
Get the number of frequency channels used.
virtual unsigned get_npol () const
Get the number of frequency channels used.
virtual unsigned get_nsubint () const
Get the number of sub-integrations stored in the file.
virtual double get_bandwidth () const
Get the overall bandwidth of the observation.
virtual void set_bandwidth (double bw)
Set the overall bandwidth of the observation.
virtual double get_centre_frequency () const
Get the centre frequency of the observation.
virtual void set_centre_frequency (double cf)
Set the centre frequency of the observation.
virtual double get_dispersion_measure () const
Get the dispersion measure (in )
virtual void set_dispersion_measure (double dm)
Set the dispersion measure (in )
virtual double get_rotation_measure () const
Get the rotation measure (in )
virtual void set_rotation_measure (double rm)
Set the rotation measure (in )
virtual bool get_dedispersed () const
Inter-channel dispersion delay has been removed.
virtual void set_dedispersed (bool done=true)
Set true when the inter-channel dispersion delay has been removed.
virtual bool get_faraday_corrected () const
Data has been corrected for ISM faraday rotation.
virtual void set_faraday_corrected (bool done=true)
Set the status of the ISM RM flag.
virtual bool get_poln_calibrated () const
Data has been poln calibrated.
virtual void set_poln_calibrated (bool done=true)
Set the status of the poln calibrated flag.
int hydra_obstype ()
Returns the Hydra observation type, given the coordinates.
virtual void correct ()
Set various redundant parameters in the timer and mini headers.
Archive ()
Default constructor.
Archive (const Archive &archive)
Copy constructor.
virtual ~Archive ()
Destructor.
Archive & operator= (const Archive &a)
Assignment operator.
template<class T>
const T * get () const
template<class T>
T * get ()
template<class T>
T * getadd ()
void copy (const Archive &)
Copy all base class attributes, Extensions, and Integrations.
void copy (const Archive *)
Copy all base class attributes, Extensions, and Integrations.
Archive * total (bool tscrunch =true) const
Return pointer to a new fscrunched, tscrunched and pscrunched clone.
Archive * tscrunched () const
Return pointer to a new tscrunched clone.
Archive * extract (std::vector< unsigned > &subints) const
Return pointer to a new instance with only the specified subints.
Profile * get_Profile (unsigned subint, unsigned pol, unsigned chan)
Return pointer to the specified profile.
const Profile * get_Profile (unsigned subint, unsigned pol, unsigned chan) const
Return pointer to the specified profile.
void set_ephemeris (const Parameters *ephemeris , bool update =true)
Install the given ephemeris and call update_model.
const Parameters * get_ephemeris () const
Return a pointer to the current archive ephemeris.
bool has_ephemeris () const
Return true if the Archive has an ephemeris.
void set_model (const Predictor *model, bool apply=true)
Install the given predictor and shift profiles to align.
const Predictor * get_model () const
Return a pointer to the current phase predictor.
bool has_model () const
Returns true if the Archive has a model.
void update_model ()
Create a new predictor and align the Integrations to the new model.
void bscrunch (unsigned nscrunch)
Integrate pulse profiles in phase.
void fold (unsigned nfold)
Integrate neighbouring sections of the pulse profiles.
void pscrunch ()
Integrate profiles in polarization.
void fscrunch (unsigned nscrunch=0)
Integrate profiles in frequency.
void tscrunch (unsigned nscrunch=0)
Integrate profiles in time.
void rotate (double time)
Phase rotate each profile by time seconds.
void rotate_phase (double phase )
Rotate each profile by phase.
void append (const Archive *archive)
Append the Integrations from the specifed archive.
void remove_chan (unsigned first, unsigned last)
Delete the specified inclusive channel range from the Archive .
void update_centre_frequency ()
Update the centre frequency.
void centre (double phase_offset=0.5)
Phase rotate pulsar Integrations so that pulse phase zero is centred.
void centre_max_bin (double phase_offset=0.5)
Phase rotate pulsar Integrations so centre the maximum amplitude.
void convert_state (Signal::State state)
Convert data to the specified state.
Signal::Basis get_basis () const
Convenience interface to Receiver::get_basis .
void dedisperse ()
Rotate the Profiles to remove dispersion delays b/w chans.
void defaraday ()
Correct the Faraday rotation of Q into U.
void transform (const Jones < float > &)
Perform the transformation on each polarimetric profile.
void transform (const std::vector< Jones < float > > &)
Perform frequency response on each polarimetric profile.
void transform (const std::vector< std::vector< Jones < float > > > &)
Perform the time and frequency response on each polarimetric profile.
void invint ()
Transform Stokes I,Q,U,V into the polarimetric invariant interval.
PhaseWeight * baseline () const
Return a new PhaseWeight instance with the baseline phase bins masked.
void remove_baseline ()
Remove the baseline from all profiles.
void uniform_weight (float new_weight=1.0)
Set the weight of each profile to the given number.
bool standard_match (const Archive *arch, std::string &reason) const
Test if arch matches (enough for a pulsar - standard match)
bool calibrator_match (const Archive *arch, std::string &reason) const
Test if arch matches (enough for a pulsar - calibrator match)
bool processing_match (const Archive *arch, std::string &reason) const
Test if arch matches (enough for a pulsar - pulsar match)
bool mixable (const Archive *arch, std::string &reason) const
Test if arch is mixable (enough for append)
double weighted_frequency (unsigned ichan, unsigned start, unsigned end) const
Computes the weighted channel frequency over an Integration interval.
void bscrunch_to_nbin (unsigned new_nbin)
Call bscrunch with the appropriate value.
void fscrunch_to_nchan (unsigned new_nchan)
Call fscrunch with the appropriate value.
void tscrunch_to_nsub (unsigned new_nsub)
Call tscrunch with the appropriate value.
MJD start_time () const
Return the MJD at the start of the first sub-integration.
MJD end_time () const
Return the MJD at the end of the last sub-integration.
double integration_length () const
Returns the total time integrated into all Integrations (in seconds)
bool type_is_cal () const
Return true if the observation is a calibrator.
void find_transitions (int &hi2lo, int &lo2hi, int &buffer) const
Find the transitions between high and low states in total intensity.
void find_peak_edges (int &rise, int &fall) const
Find the bins in which the total intensity exceeds a threshold.
float find_max_phase () const
Returns the centre phase of the region with maximum total intensity.
float find_min_phase (float dc=0.15) const
Returns the centre phase of the region with minimum total intensity.
float rms_baseline (float dc=0.4)
Returns geometric mean of baseline RMS for each Integration .
virtual Interface * get_interface ()
Return a text interface that can be used to access this instance.
virtual unsigned get_nextension () const
Return the number of extensions available.
virtual const Extension * get_extension (unsigned iextension) const
Return a pointer to the specified extension.
virtual Extension * get_extension (unsigned iextension)
Return a pointer to the specified extension.
template<class ExtensionType>
bool has () const
Template method searches for an Extension of the specified type.
template<class ExtensionType>
const ExtensionType * get () const
Template method searches for an Extension of the specified type.
template<class ExtensionType>
ExtensionType * get ()
Template method searches for an Extension of the specified type.
template<class ExtensionType>
ExtensionType * getadd ()
Template method returns an Extension of the specified type.
virtual void add_extension (Extension *extension)
Add an Extension to the Archive instance.
Expert * expert ()
Provide access to the expert interface.
const Expert * expert () const
Provide access to the expert interface.
const Match * get_standard_match () const
Policy determines if a standard/template matches an observation.
void set_standard_match (Match *)
The default baseline removal strategy.
const Match * get_calibrator_match () const
Policy determines if a calibrator matches an observation.
void set_calibrator_match (Match *)
The default baseline removal strategy.
const Match * get_processing_match () const
Policy determines if data were processed identically.
void set_processing_match (Match *)
The default baseline removal strategy.
const Match * get_mixable () const
Policy determines if data can be combined/integrated.
void set_mixable (Match *)
The default baseline removal strategy.
StrategySet * get_strategy () const
Returns the strategy manager.
void unload (const char *filename=0) const
Write the archive to filename.
void unload (const std::string &filename) const
Convenience interface to Archive::unload (const char*)
std::string get_filename () const
Get the name of the file to which the archive will be unloaded.
void set_filename (const std::string &filename)
Set the filename of the Archive .
void update ()
Update the current archive, saving current Integration data.
void refresh ()
Completely reload the archive, deleting all data.
virtual void resize (unsigned nsubint, unsigned npol=0, unsigned nchan=0, unsigned nbin=0)
Resize the Integration vector with new_Integration instances.
virtual void erase (unsigned isubint)
Remove the specified sub-integration.
void reverse_chan ()
Reverse the order of frequency channels.
IntegrationManager ()
null constructor
IntegrationManager (const IntegrationManager &archive)
copy constructor
IntegrationManager & operator= (const IntegrationManager &archive)
operator =
virtual ~IntegrationManager ()
destructor
Integration * get_Integration (unsigned subint)
Return pointer to the specified Integration .
Integration * get_last_Integration ()
Return a pointer to the last Integration .
Integration * get_first_Integration ()
Return a pointer to the first Integration .
const Integration * get_Integration (unsigned subint) const
Return const pointer to the specified Integration .
const Integration * get_last_Integration () const
Return a const pointer to the last Integration .
const Integration * get_first_Integration () const
Return a const pointer to the first Integration .
template<class StrictWeakOrdering>
void sort (StrictWeakOrdering comp=temporal_order)
Sort the Integrations according to the specified order.
void shuffle ()
Randomly rearrange the sub-integrations.
Expert * expert ()
Provide access to the expert interface.
Able (const Able &)
Able & operator= (const Able &)
unsigned get_reference_count () const
HeapTracked (const HeapTracked &)
HeapTracked & operator= (const HeapTracked &)
bool __is_on_heap () const
virtual void load_header (const char *filename)
Load the header information from filename.
virtual Integration * load_Integration (const char *filename, unsigned subint)
Load the specified Integration from filename, returning new instance.
bool can_unload () const
The unload_file method is implemented.
virtual void unload_file (const char *filename) const
Unload the Archive (header and Integration data) to filename.
virtual void set_nbin (unsigned numbins)
Set the number of pulsar phase bins.
virtual void set_nchan (unsigned numchan)
Set the number of frequency channels.
virtual void set_npol (unsigned numpol)
Set the number of polarization measurements.
virtual void set_nsubint (unsigned nsubint)
Set the number of sub-integrations.
virtual Integration * new_Integration (const Integration *copy_this=0)
The subints vector will point to TimerIntegrations.
void set_corrected (int code, bool done)
set code bit in hdr.corrected
void set_calibrated (int code, bool done)
set code bit in hdr.calibrated
void load (FILE *fptr)
load the archive from an open file
void unload (FILE *fptr) const
unload the archive to an open file
void hdr_load (FILE *fptr)
load the timer header from an open file
virtual void backend_load (FILE *fptr)
load the backend-specific information from an open file
void psr_load (FILE *fptr)
load the polyco and ephemeris from an open file
void subint_load (FILE *fptr)
load the sub-integrations from an open file
void hdr_unload (FILE *fptr) const
unload the timer header to an open file
virtual void set_be_data_size ()
set the backend data size
virtual void backend_unload (FILE *fptr) const
unload the backend-specific information to an open file
void psr_unload (FILE *fptr) const
unload the polyco and ephemeris from an open file
void subint_unload (FILE *fptr) const
unload the sub-integrations to an open file
void correct_Integrations ()
Set the state of various redundant parameters in the mini headers.
void unpack_extensions ()
Unpack the Receiver and Telescope Extension classes (after loading)
void pack_extensions ()
Pack the Receiver and Telescope Extension classes (before unloading)
void unpack (Receiver *receiver)
Unpack the Receiver extension.
void pack (const Receiver *receiver)
Pack the Receiver extension.
void unpack (TapeInfo *tape)
Unpack the TapeInfo extension.
void pack (const TapeInfo *tape)
Pack the TapeInfo extension.
void unpack (CalInfoExtension *cal)
Unpack the CalInfoExtension .
void set_predictor (Predictor *model)
Set the phase predictor attribute without any computation.
Integration * use_Integration (Integration *)
Return the given Integration ready for use.
void init_Integration (Integration *subint, bool check_phase=false)
Initialize an Integration to reflect Archive attributes.
void resize_Integration (Integration *integration)
Provide Integration::resize access to Archive-derived classes.
void apply_model (Integration *subint, const Predictor *old=0)
Apply the current model to the Integration .
void update_model (unsigned old_nsubint, bool clear_model=false)
Update the predictor model and correct the Integration set.
void update_model (const MJD &time, bool clear_model=false)
Update the predictor to include the specifed MJD .
void create_updated_model (bool clear_model)
Creates polynomials to span the Integration set.
bool good_model (const Predictor *test_model) const
Returns true if the given model spans the Integration set.
bool zero_phase_aligned () const
Return true if all Integration::zero_phase_aligned flags are set.
virtual void _resize (unsigned nsubint, bool instances=true)
Resize the Integration vector.
void append (const IntegrationManager *more_subints)
Append new_Integration copies of Integration objects to self.
void manage (IntegrationManager *more_subints)
Append use_Integration modifications of Integration objects to self.
void manage (Integration *integration)
Directly append the Integration instance (no copy)
void insert (unsigned isubint, Integration *integration)
Insert the Integration instance into the specified location.
void unmanage (const Integration *)
Remove the Integration instance.
void unmanage (unsigned isubint)
Remove the Integration at the specified index.
void load_all ()
Load all sub-integrations.
Handle * __reference (bool active) const
void __dereference (bool auto_delete=true) const