pub struct CalibrationSolutions {Show 22 fields
pub di_jones: Array3<Jones<f64>>,
pub flagged_tiles: Vec<usize>,
pub flagged_chanblocks: Vec<u16>,
pub chanblock_freqs: Option<Vec1<f64>>,
pub obsid: Option<u32>,
pub start_timestamps: Option<Vec1<Epoch>>,
pub end_timestamps: Option<Vec1<Epoch>>,
pub average_timestamps: Option<Vec1<Epoch>>,
pub max_iterations: Option<u32>,
pub stop_threshold: Option<f64>,
pub min_threshold: Option<f64>,
pub raw_data_corrections: Option<RawDataCorrections>,
pub tile_names: Option<Vec1<String>>,
pub dipole_gains: Option<ArcArray<f64, Dim<[usize; 2]>>>,
pub dipole_delays: Option<ArcArray<u32, Dim<[usize; 2]>>>,
pub beam_file: Option<PathBuf>,
pub calibration_results: Option<Array2<f64>>,
pub baseline_weights: Option<Vec1<f64>>,
pub uvw_min: Option<f64>,
pub uvw_max: Option<f64>,
pub freq_centroid: Option<f64>,
pub modeller: Option<String>,
}Fields§
§di_jones: Array3<Jones<f64>>The direction-independent calibration solutions. This has dimensions of (num_timeblocks, total_num_tiles, total_num_chanblocks). Note that this potentially includes flagged data; other struct members help to determine what is flagged. These Jones matrices, when applied to data Jones matrices, should approximate the model Jones matrices used in calibration.
flagged_tiles: Vec<usize>The indices of flagged tiles before calibration. Note that there may appear to be more flagged tiles in the solutions; this might happen if an unflagged has no power. The indices are zero indexed.
flagged_chanblocks: Vec<u16>Which chanblocks are flagged? Zero indexed.
chanblock_freqs: Option<Vec1<f64>>All chanblock frequencies (i.e. flagged and unflagged).
obsid: Option<u32>The MWA observation ID. Allowed to be optional as not all formats provide it.
start_timestamps: Option<Vec1<Epoch>>The start timestamps (centroids) of each timeblock used to produce these
calibration solutions. It may have a different length to the first
dimension of di_jones due to inadequate information.
end_timestamps: Option<Vec1<Epoch>>The end timestamps (centroids) of each timeblock used to produce these
calibration solutions. It may have a different length to the first
dimension of di_jones due to inadequate information.
average_timestamps: Option<Vec1<Epoch>>The average timestamps of each timeblock used to produce these
calibration solutions. It may have a different length to the first
dimension of di_jones due to inadequate information.
max_iterations: Option<u32>The maximum allowed number of iterations during calibration.
stop_threshold: Option<f64>The stop threshold used during calibration.
min_threshold: Option<f64>The minimum threshold used during calibration.
raw_data_corrections: Option<RawDataCorrections>The raw data corrections applied to the visibilities before calibration.
tile_names: Option<Vec1<String>>The names of all of the tiles in the observation, in the order that they’re presented.
dipole_gains: Option<ArcArray<f64, Dim<[usize; 2]>>>Gains of each of the MWA dipoles used in calibration. The rows are tiles and there are 32 columns (one per dipole; the first 16 are X dipoles and second 16 are Y dipoles).
dipole_delays: Option<ArcArray<u32, Dim<[usize; 2]>>>Delays of each of the MWA dipoles used in calibration. The rows are tiles and there are 16 columns (one per bowtie).
beam_file: Option<PathBuf>The beam file used for beam calculations.
calibration_results: Option<Array2<f64>>The precision of the calibration for these results. The first dimension is timeblock, the second is chanblock.
baseline_weights: Option<Vec1<f64>>The baseline weights for all baselines (even flagged ones, which have NaN values).
uvw_min: Option<f64>The minimum UVW cutoff used in calibration [metres].
uvw_max: Option<f64>The maximum UVW cutoff used in calibration [metres].
freq_centroid: Option<f64>The centroid frequency of the observation used to convert UVW cutoffs specified in lambdas to metres [Hz].
modeller: Option<String>What was used to model the visibilities?
Implementations§
Source§impl CalibrationSolutions
impl CalibrationSolutions
Sourcepub fn read_solutions_from_ext<P: AsRef<Path>, P2: AsRef<Path>>(
file: P,
metafits: Option<P2>,
) -> Result<CalibrationSolutions, HyperdriveError>
pub fn read_solutions_from_ext<P: AsRef<Path>, P2: AsRef<Path>>( file: P, metafits: Option<P2>, ) -> Result<CalibrationSolutions, HyperdriveError>
Read in calibration solutions from a file. The format of the file is determined by the file’s extension (e.g. “.fits”). If the file is actually a directory, we attempt to read RTS DI calibration solution files from the directory.
Sourcepub fn write_solutions_from_ext<P: AsRef<Path>>(
&self,
file: P,
) -> Result<(), HyperdriveError>
pub fn write_solutions_from_ext<P: AsRef<Path>>( &self, file: P, ) -> Result<(), HyperdriveError>
From the target file extension, write out the appropriately-formatted solutions.
It is generally preferable to use [hyperdrive::write] for hyperdrive-style files, because that allows more metadata to be written.
Trait Implementations§
Source§impl Default for CalibrationSolutions
impl Default for CalibrationSolutions
Source§fn default() -> CalibrationSolutions
fn default() -> CalibrationSolutions
Auto Trait Implementations§
impl Freeze for CalibrationSolutions
impl RefUnwindSafe for CalibrationSolutions
impl Send for CalibrationSolutions
impl Sync for CalibrationSolutions
impl Unpin for CalibrationSolutions
impl UnwindSafe for CalibrationSolutions
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more