Skip to content
Snippets Groups Projects

Mosaicing

Closed Philipp Arras requested to merge parras/resolve:mosaicing into master
Compare and
6 files
+ 166
6
Compare changes
  • Side-by-side
  • Inline
Files
6
demo/mosaicing.py 0 → 100644
+ 50
0
 
# SPDX-License-Identifier: GPL-3.0-or-later
 
# Copyright(C) 2019-2020 Max-Planck-Society
 
# Author: Philipp Arras
 
 
import argparse
 
 
import numpy as np
 
 
import nifty7 as ift
 
import resolve as rve
 
from os.path import isfile, splitext
 
 
 
def main():
 
rve.set_nthreads(1)
 
rve.set_wgridding(False)
 
fov = np.array([rve.str2rad(args.xfov), rve.str2rad(args.yfov)])
 
npix = np.array([args.xpix, args.ypix])
 
diffusefluxlevel = 10
 
 
obs = rve.Observation.load(fname)
 
interobs = dict()
 
rve.set_epsilon(1 / 10 / max(o.max_snr() for o in interobs.values()))
 
 
dom = ift.RGSpace(npix, fov / npix)
 
logsky = ift.SimpleCorrelatedField(
 
dom, diffusefluxlevel, (1, 0.1), (5, 1), (1.2, 0.4), (0.2, 0.2), (-2, 0.5)
 
)
 
sky = logsky.exp()
 
rve.SkySlicer(sky, beam_directions)
 
lh = rve.ImagingLikelihood(interobs, sky)
 
 
plotter = rve.Plotter("png", "plots")
 
plotter.add("logsky", logsky)
 
plotter.add("power spectrum logsky", logsky.power_spectrum)
 
plotter.add_histogram(
 
"normalized residuals (original weights)", lh.normalized_residual
 
)
 
ham = ift.StandardHamiltonian(lh)
 
fld = 0.1 * ift.from_random(sky.domain)
 
state = rve.MinimizationState(fld, [])
 
mini = ift.NewtonCG(ift.GradientNormController(name="newton", iteration_limit=20))
 
state = rve.simple_minimize(ham, state.mean, 0, mini)
 
plotter.plot("stage1", state)
 
state.save("stage1")
 
# state = rve.MinimizationState.load("stage1")
 
 
 
if __name__ == "__main__":
 
main()
Loading