Skip to content
Snippets Groups Projects
Commit cb4268be authored by André Offringa's avatar André Offringa
Browse files

Fix shifted source lists

parent fcd985df
No related branches found
No related tags found
1 merge request!81Fix shifted source lists
Pipeline #34044 failed
This commit is part of merge request !81. Comments created here will be created in the context of that merge request.
......@@ -12,22 +12,22 @@
using aocommon::ImageCoordinates;
namespace radler {
void ComponentList::WriteSources(const Radler& radler,
const std::string& filename,
long double pixel_scale_x,
long double pixel_scale_y,
long double phase_centre_ra,
long double phase_centre_dec) const {
void ComponentList::WriteSources(
const Radler& radler, const std::string& filename,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra, long double phase_centre_dec,
long double shift_l, long double shift_m) const {
const algorithms::DeconvolutionAlgorithm& deconvolution_algorithm =
radler.MaxScaleCountAlgorithm();
if (const auto* multiscale_algorithm =
dynamic_cast<const algorithms::MultiScaleAlgorithm*>(
&deconvolution_algorithm)) {
Write(filename, *multiscale_algorithm, pixel_scale_x, pixel_scale_y,
phase_centre_ra, phase_centre_dec);
phase_centre_ra, phase_centre_dec, shift_l, shift_m);
} else {
WriteSingleScale(filename, deconvolution_algorithm, pixel_scale_x,
pixel_scale_y, phase_centre_ra, phase_centre_dec);
pixel_scale_y, phase_centre_ra, phase_centre_dec, shift_l,
shift_m);
}
}
......@@ -35,23 +35,25 @@ void ComponentList::Write(const std::string& filename,
const algorithms::MultiScaleAlgorithm& multiscale,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra,
long double phase_centre_dec) const {
long double phase_centre_dec, long double shift_l,
long double shift_m) const {
aocommon::UVector<double> scale_sizes(NScales());
for (size_t scale_index = 0; scale_index != NScales(); ++scale_index) {
scale_sizes[scale_index] = multiscale.ScaleSize(scale_index);
}
Write(filename, multiscale.Fitter(), scale_sizes, pixel_scale_x,
pixel_scale_y, phase_centre_ra, phase_centre_dec);
pixel_scale_y, phase_centre_ra, phase_centre_dec, shift_l, shift_m);
}
void ComponentList::WriteSingleScale(
const std::string& filename,
const algorithms::DeconvolutionAlgorithm& algorithm,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra, long double phase_centre_dec) const {
long double phase_centre_ra, long double phase_centre_dec,
long double shift_l, long double shift_m) const {
aocommon::UVector<double> scale_sizes(1, 0);
Write(filename, algorithm.Fitter(), scale_sizes, pixel_scale_x, pixel_scale_y,
phase_centre_ra, phase_centre_dec);
phase_centre_ra, phase_centre_dec, shift_l, shift_m);
}
void ComponentList::Write(const std::string& filename,
......@@ -59,7 +61,8 @@ void ComponentList::Write(const std::string& filename,
const aocommon::UVector<double>& scale_sizes,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra,
long double phase_centre_dec) const {
long double phase_centre_dec, long double shift_l,
long double shift_m) const {
if (components_added_since_last_merge_ != 0) {
throw std::runtime_error(
"ComponentList::Write called while there are yet unmerged components. "
......@@ -115,6 +118,8 @@ void ComponentList::Write(const std::string& filename,
long double l, m;
ImageCoordinates::XYToLM<long double>(x, y, pixel_scale_x, pixel_scale_y,
width_, height_, l, m);
l += shift_l;
m += shift_m;
long double ra, dec;
ImageCoordinates::LMToRaDec(l, m, phase_centre_ra, phase_centre_dec, ra,
dec);
......
......@@ -89,8 +89,8 @@ class ComponentList {
void WriteSources(const Radler& radler, const std::string& filename,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra,
long double phase_centre_dec) const;
long double phase_centre_ra, long double phase_centre_dec,
long double shift_l, long double shift_m) const;
/**
* @brief Write component lists over all scales, typically
......@@ -99,13 +99,15 @@ class ComponentList {
void Write(const std::string& filename,
const algorithms::MultiScaleAlgorithm& multiscale,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra, long double phase_centre_dec) const;
long double phase_centre_ra, long double phase_centre_dec,
long double shift_l, long double shift_m) const;
void WriteSingleScale(const std::string& filename,
const algorithms::DeconvolutionAlgorithm& algorithm,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra,
long double phase_centre_dec) const;
long double phase_centre_dec, long double shift_l,
long double shift_m) const;
void MergeDuplicates() {
if (components_added_since_last_merge_ != 0) {
......@@ -185,7 +187,8 @@ class ComponentList {
const schaapcommon::fitters::SpectralFitter& fitter,
const aocommon::UVector<double>& scale_sizes,
long double pixel_scale_x, long double pixel_scale_y,
long double phase_centre_ra, long double phase_centre_dec) const;
long double phase_centre_ra, long double phase_centre_dec,
long double shift_l, long double shift_m) const;
void LoadFromImageSet(ImageSet& image_set, size_t scale_index);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment