FITSArchive ()
Default constructor.
FITSArchive (const FITSArchive &archive)
Copy constructor.
FITSArchive (const Archive &archive)
Base copy constructor.
~FITSArchive ()
Destructor.
const FITSArchive & operator= (const FITSArchive &archive)
Assignment operator.
void copy (const Archive &archive)
Copy all of the class attributes and the selected Integration data.
FITSArchive * clone () const
Return a pointer to a new copy constructed instance equal to this.
void update_history ()
Add a new row to the history, reflecting the current state.
void unload (fitsfile *, const DigitiserStatistics *) const
Unload DigitiserStatistics to the DIG_STAT HDU.
void unload (fitsfile *, const DigitiserCounts *) const
Unload DigitiserCounts to DIG_CNTS HDU.
void unload (fitsfile *, const Pointing *, int row) const
Unload Pointing to the specified row of the subint table.
double get_offs_sub (unsigned int isub) const
Get the offs_sub value (only present in fits files)
void refmjd_rounding_correction ()
void set_search_mode ()
Indicate the FITSArchive contains search mode data.
BasicArchive ()
null constructor
BasicArchive (const BasicArchive &archive)
copy constructor
const BasicArchive & operator= (const BasicArchive &archive)
assignment operator
~BasicArchive ()
destructor
virtual std::string get_telescope () const
Get the name of the telescope
virtual void set_telescope (const std::string &)
Set the name of the telescope
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 in which flux density is measured.
virtual void set_scale (Signal::Scale scale )
Set the scale in which flux density is measured.
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 bool get_dedispersed () const
Inter-channel dispersion delay has been removed.
virtual void set_dedispersed (bool done=true)
Set the status of the dispersion delay flag.
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_faraday_corrected () const
data have 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.
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
static std::string get_template_name ()
Return the name of the PSRFITS definition template file.
static void unload (fitsfile *, const FITSHdrExtension *)
Unload FITSHdrExtension to the current HDU of the specified FITS file.
static void unload (fitsfile *, const ObsExtension *)
Unload ObsExtension to the current HDU of the specified FITS file.
static void unload (fitsfile *, const Receiver *)
Unload Receiver to the current HDU of the specified FITS file.
static void unload (fitsfile *, const WidebandCorrelator *)
Unload WidebandCorrelator to the current HDU of the specified FITS file.
static void unload (fitsfile *, const ITRFExtension *)
Unload ITRFExtension to the current HDU of the specified FITS file.
static void unload (fitsfile *, const CalInfoExtension *)
Unload CalInfoExtension to the current HDU of the specified FITS file.
static void unload (fitsfile *, const ProcHistory *)
Unload ProcHistory to the HISTORY HDU.
static void unload (fitsfile *, const Passband *)
Unload Passband to the BANDPASS HDU.
static void unload (fitsfile *, const PolnCalibratorExtension *)
Unload PolnCalibratorExtension to the FEEDPAR HDU.
static void unload (fitsfile *, const FluxCalibratorExtension *)
Unload FluxCalibratorExtension to the FLUX_CAL HDU.
static void unload (fitsfile *, const CalibratorStokes *)
Unload CalibratorStokes to the CAL_POLN HDU.
static void unload (fitsfile *, const CalibrationInterpolatorExtension *)
Unload CalibrationInterpolatorExtension to the PCMINTER HDU.
static void unload (fitsfile *, const ConfigurableProjectionExtension *)
Unload ConfigurableProjectionExtension to the CFGPROJ HDU.
static void unload (fitsfile *, const FITSSUBHdrExtension *)
Unload FITSSUBHdrExtension .
static void unload (fitsfile *, const CoherentDedispersion *)
Unload CoherentDedispersion .
static void unload (fitsfile *, const AuxColdPlasmaMeasures *, int row)
Unload AuxColdPlasmaMeausres to the specified row of the subint table.
static void unload (fitsfile *, const ObsDescription *)
Unload the observation description.
static void unload (fitsfile *, const CrossCovarianceMatrix *)
Unload the Cross-Covariance Matrix Data.
static void unload (fitsfile *, const DynamicResponse *)
Unload the Dynamic Response Data.
static void ensure_linkage ()
Ensure that BasicArchive code is linked.
static Archive * new_Archive (const std::string &class_name)
Factory returns a null-constructed instance of the named class.
static Archive * load (const std::string &name)
Factory returns a new instance loaded from filename.
static unsigned get_instance_count ()
Returns the number of Archive instances currently in existence.
static void agent_report ()
Report on the status of the plugins.
static void agent_list ()
List the successfully loaded plugins.
static void set_verbosity (unsigned level)
Set the verbosity level (0 to 3)
static size_t get_instance_count ()
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 ()
template<class Ext>
void unload (fitsfile *, const char *hdu_name) const
virtual void load_header (const char *filename)
Load the FITS 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 FITSArchive (header and Integration data) to filename.
template<typename T>
void load_amps (fitsfile *, Integration *, unsigned isubint, int colnum)
Load data of any type.
void load_Parameters (fitsfile *)
void unload_Parameters (fitsfile *) const
void load_Predictor (fitsfile *)
void unload_Predictor (fitsfile *) const
void load_ProcHistory (fitsfile *)
void no_ProcHistory (fitsfile *)
void load_DigitiserStatistics (fitsfile *)
void load_DigitiserCounts (fitsfile *)
FITSArchive::load_DigitiserCounts Creates a DigitiserCounts extension and loads it from the fits file given.
void load_Passband (fitsfile *)
void load_PolnCalibratorExtension (fitsfile *)
void load_FluxCalibratorExtension (fitsfile *)
void load_CalibratorStokes (fitsfile *)
void load_CalibrationInterpolatorExtension (fitsfile *)
void load_ConfigurableProjectionExtension (fitsfile *)
void load_Receiver (fitsfile *)
void load_ITRFExtension (fitsfile *)
void load_CalInfoExtension (fitsfile *)
void load_WidebandCorrelator (fitsfile *)
void load_FITSSUBHdrExtension (fitsfile *)
void load_CoherentDedispersion (fitsfile *)
void load_ObsDescription (fitsfile *)
void load_CrossCovarianceMatrix (fitsfile *)
void load_DynamicResponse (fitsfile *)
void load_integration_state (fitsfile *)
void load_state (fitsfile *)
void load_Pointing (fitsfile *, int row, Integration *)
void load_Plasma (fitsfile *, int row, Integration *)
void load_SpectralKurtosis (fitsfile *, int row, Integration *)
void interpret_scale ()
void interpret_pol_type ()
void unload_Integration (fitsfile *, int row, const Integration *) const
A function to write an integration to a row in a FITS file on disk.
void unload_integrations (fitsfile *) const
Unload Integration data to the SUBINT HDU of the specified FITS file.
void clean_Pointing_columns (fitsfile *) const
Delete Pointing-related columns, if not needed.
void add_Pointing_columns (fitsfile *) const
Add additional Pointing::Info columns, if needed.
void load_Pointing_columns (fitsfile *fptr)
Load additional Pointing::Info column information, if any.
int get_last_pointing_column (fitsfile *fptr) const
Get the column past which to write/read additional Pointing::Info .
void unload_sk_integrations (fitsfile *) const
Unload Spectral Kurtosis Integration data to the SPECKURT HDU.
virtual void set_nbin (unsigned nbin )
Set the number of pulsar phase bins used.
virtual void set_nchan (unsigned nchan )
Set the number of frequency channels used.
virtual void set_npol (unsigned npol )
Set the number of frequency channels used.
virtual void set_nsubint (unsigned nsubint )
Set the number of sub-integrations stored in the file.
Integration * new_Integration (const Integration *copy_this=0)
Return a pointer to a new BasicIntegration .
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