PURIFY
Next-generation radio interferometric imaging
Functions
gridding.cc File Reference
#include "purify/config.h"
#include "purify/types.h"
#include "purify/logging.h"
#include "purify/operators.h"
#include "purify/utilities.h"
#include <sopt/power_method.h>
+ Include dependency graph for gridding.cc:

Go to the source code of this file.

Functions

int main (int nargs, char const **args)
 

Function Documentation

◆ main()

int main ( int  nargs,
char const **  args 
)

Definition at line 10 of file gridding.cc.

10  {
12  // Gridding example
13  auto const oversample_ratio = 2;
14  auto const power_iters = 0;
15  auto const power_tol = 1e-4;
16  auto const Ju = 4;
17  auto const Jv = 4;
18  auto const imsizex = 256;
19  auto const imsizey = 256;
20 
21  auto const kernel = "kb";
22 
23  t_uint const number_of_pixels = imsizex * imsizey;
24  t_uint const number_of_vis = 4e6; // std::floor(number_of_pixels * 2);
25  // Generating random uv(w) coverage
26  t_real const sigma_m = constant::pi / 3;
27  auto uv_vis = utilities::random_sample_density(number_of_vis, 0, sigma_m);
28  uv_vis.units = utilities::vis_units::radians;
29  const Vector<t_complex> image = Vector<t_complex>::Random(number_of_pixels);
30  const auto measure_op = std::get<2>(sopt::algorithm::normalise_operator<Vector<t_complex>>(
32  uv_vis.u, uv_vis.v, uv_vis.w, uv_vis.weights, imsizey, imsizex, oversample_ratio,
34  power_iters, power_tol, Vector<t_complex>::Random(imsizex * imsizey)));
35  for (t_uint i = 0; i < 100; i++) {
36  PURIFY_LOW_LOG("Iteration: {}", i);
37  Vector<t_complex> const measurements = *measure_op * image;
38  }
39 }
#define PURIFY_LOW_LOG(...)
Low priority message.
Definition: logging.h:207
const t_real pi
mathematical constant
Definition: types.h:70
const std::map< std::string, kernel > kernel_from_string
Definition: kernels.h:16
void set_level(const std::string &level)
Method to set the logging level of the default Log object.
Definition: logging.h:137
std::shared_ptr< sopt::LinearTransform< T > > init_degrid_operator_2d(const Vector< t_real > &u, const Vector< t_real > &v, const Vector< t_real > &w, const Vector< t_complex > &weights, const t_uint &imsizey, const t_uint &imsizex, const t_real &oversample_ratio=2, const kernels::kernel kernel=kernels::kernel::kb, const t_uint Ju=4, const t_uint Jv=4, const bool w_stacking=false, const t_real &cellx=1, const t_real &celly=1)
Returns linear transform that is the standard degridding operator.
Definition: operators.h:608
utilities::vis_params random_sample_density(const t_int vis_num, const t_real mean, const t_real standard_deviation, const t_real rms_w)
Generates a random visibility coverage.

References purify::measurementoperator::init_degrid_operator_2d(), purify::kernels::kernel_from_string, purify::constant::pi, PURIFY_LOW_LOG, purify::utilities::radians, purify::utilities::random_sample_density(), and purify::logging::set_level().