Skip to content
Snippets Groups Projects
Select Git revision
  • 6e39c8dd30f1940e4a677fdeb9abb4d162ab8c61
  • main default protected
  • pixel-fitter
  • remove-pybind11
  • multiscale_cuda
  • profiling
  • wavelet-deconvolution
  • ast-1102-nanobind
  • temp-fix-for-local-rms-multiscale-crash
  • ast-943-use-central-frequency-only
  • add-sphinx
  • test-radler-as-static
12 results

deconvolution_table_entry.h

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    deconvolution_table_entry.h 1.97 KiB
    // Copyright (C) 2022 ASTRON (Netherlands Institute for Radio Astronomy)
    // SPDX-License-Identifier: GPL-3.0-or-later
    
    #ifndef RADLER_DECONVOLUTION_TABLE_ENTRY_H_
    #define RADLER_DECONVOLUTION_TABLE_ENTRY_H_
    
    #include <memory>
    #include <vector>
    
    #include <aocommon/imageaccessor.h>
    #include <aocommon/polarization.h>
    
    namespace radler {
    struct DeconvolutionTableEntry {
      double CentralFrequency() const {
        return 0.5 * (band_start_frequency + band_end_frequency);
      }
    
      /**
       * Index of the entry in its DeconvolutionTable.
       */
      size_t index = 0;
    
      /**
       * Note that mses might have overlapping frequencies.
       */
      double band_start_frequency = 0.0;
      double band_end_frequency = 0.0;
    
      aocommon::PolarizationEnum polarization = aocommon::PolarizationEnum::StokesI;
    
      /**
       * Entries with equal original channel indices are 'joinedly' deconvolved by
       * adding their squared flux density values together. Normally, all the
       * polarizations from a single channel / timestep form such a group.
       *
       * When the number of deconvolution channels is less than the number of
       * original channels, entries in multiple groups are 'joinedly' deconvolved.
       */
      size_t original_channel_index = 0;
      size_t original_interval_index = 0;
    
      /**
       * A number that scales with the estimated inverse-variance of the image. It
       * can be used when averaging images or fitting functions through the images
       * to get the optimal sensitivity. It is set after the first inversion.
       */
      double image_weight = 0.0;
    
      /**
       * Image accessor for the PSF image for this entry. This accessor is only used
       * for the first entry of each channel group.
       */
      std::unique_ptr<aocommon::ImageAccessor> psf_accessor;
    
      /**
       * Image accessor for the model image for this entry.
       */
      std::unique_ptr<aocommon::ImageAccessor> model_accessor;
    
      /**
       * Image accessor for the residual image for this entry.
       */
      std::unique_ptr<aocommon::ImageAccessor> residual_accessor;
    };
    }  // namespace radler
    #endif