debian/0000755000000000000000000000000011773315372007177 5ustar debian/rules0000755000000000000000000000011411773312430010243 0ustar #!/usr/bin/make -f override_dh_auto_install: dh_installyorick %: dh $@ debian/changelog0000644000000000000000000000274411773314676011066 0ustar yorick-mira (0.9.10+dfsg-1) unstable; urgency=low * remove the non-dfsg data/ directory -- Thibaut Paumard Fri, 29 Jun 2012 14:04:14 +0200 yorick-mira (0.9.10-4) unstable; urgency=low * Amend debian/control to abide by Debian Science Policy * Updated copyright -- Thibaut Paumard Wed, 27 Jun 2012 12:58:04 +0200 yorick-mira (0.9.10-3) unstable; urgency=low * Bug fix: "Typo in package description: "intreferometry"", thanks to Bernhard Kuemel (Closes: #655307). -- Thibaut Paumard Sun, 01 Apr 2012 19:51:18 +0200 yorick-mira (0.9.10-2) unstable; urgency=low * Bump version in mira.info -- Thibaut Paumard Tue, 10 May 2011 11:43:42 +0200 yorick-mira (0.9.10-1) unstable; urgency=low * New upstream release * Bug fix: "yorick-yeti 6.3.1 breaks yorick-mira", (Closes: #625619). * Check against policy 3.9.1. -- Thibaut Paumard Mon, 09 May 2011 18:43:35 +0200 yorick-mira (0.9.9+dfsg1-2) unstable; urgency=low * Set DMUA field * remove extraneous file /usr/share/doc/yorick-mira/examples/mira-auto.i * move to section "science" -- Thibaut Paumard Wed, 07 Apr 2010 18:06:28 +0200 yorick-mira (0.9.9+dfsg1-1) unstable; urgency=low * Initial release (Closes: #561490) -- Thibaut Paumard Mon, 22 Mar 2010 11:52:34 +0100 debian/mira.info0000644000000000000000000000335511773312430011002 0ustar Package: mira Kind: package Version: 0.9.10 Description: optical intreferometry image reconstruction License: GPL Author: Eric Thiebault Maintainer: Thibaut Paumard OS: /usr/share/yorick/packages/installed/yutils.info Depends: yorick(>=2.1),yeti(>=6.2.0),yeti-fftw(>=6.2.0),yutils,optimpack(>=1.2) Homepage: http://www-obs.univ-lyon1.fr/labo/perso/eric.thiebaut/mira.html DescDetail: << DESCRIPTION ----------- MiRA is an algorithm for image reconstruction from data provided by optical interferometers. It is written in the Yorick language and operated through the Yorick interpreter. . MiRA won the 2008' Interferometric Imaging Beauty Contest organized by International Astronomical Union (IAU) to compare the image synthesis algorithms designed for optical interferometry. In a nutshell, MiRA proceeds by direct minimization of a penalized likelihood. This penalty is the sum of two terms: a likelihood term (typically a χ2) which enforces agreement of the model with the data, plus a regularization term to account for priors. The priors are required to lever the many degeneracies due to the sparseness of the spatial frequency sampling. MiRA implements many different regularizations (quadratic or edge-preserving smoothness, total variation, maximum entropy, etc.) and let the user defines his own priors. The likelihood penalty is modular and designed to account for available data of any kind (complex visibilities, powerspectra and/or closure phase). One of the strength of MiRA is that it is purely based on an inverse problem approach and can therefore cope with incomplete data set; for instance, MiRA can build an image without any Fourier phase information. Input data must be in OI-FITS format. << debian/watch0000644000000000000000000000021211773312430010213 0ustar version=3 opts=dversionmangle=s/\+dfsg\d$// \ http://www-obs.univ-lyon1.fr/labo/perso/eric.thiebaut/mira.html \ files/mira-(.*).tar.bz2 debian/README.source0000644000000000000000000000063311773314771011362 0ustar Upgrading checklist: - update Version field in debian/mira.info for each new upstream release. - sync .i files present both in mira and yutils. Common files should be updated and distributed in the yorick-yutils package. - remove the data/ directory from the orig tarball, files in there don't have a clear license. -- Thibaut Paumard , Fri, 29 Jun 2012 14:05:13 +0200 debian/docs0000644000000000000000000000001411773312430010035 0ustar NEWS README debian/control0000644000000000000000000000412311773312430010572 0ustar Source: yorick-mira Section: science Priority: extra Maintainer: Debian Science Maintainers Uploaders: Thibaut Paumard Build-Depends: debhelper (>= 7.0.50~), yorick-dev (>= 2.1.05+dfsg-2~bpo40+1) Standards-Version: 3.9.3 DM-Upload-Allowed: yes Vcs-Git: git://git.debian.org/git/debian-science/packages/yorick-mira.git Vcs-Browser: http://git.debian.org/?p=debian-science/packages/yorick-mira.git Homepage: http://www-obs.univ-lyon1.fr/labo/perso/eric.thiebaut/mira.html Package: yorick-mira Architecture: all Depends: ${misc:Depends}, yorick-yeti (>= 6.3.1) , yorick-yeti-fftw (>=6.3.1), yorick-yutils, yorick-optimpack (>= 1.3), yorick (>= 2.1.05) Description: optical interferometry image reconstruction within Yorick MiRA is an algorithm for image reconstruction from data provided by optical interferometers. It is written in the Yorick language and operated through the Yorick interpreter. . MiRA won the 2008' Interferometric Imaging Beauty Contest organized by International Astronomical Union (IAU) to compare the image synthesis algorithms designed for optical interferometry. In a nutshell, MiRA proceeds by direct minimization of a penalized likelihood. This penalty is the sum of two terms: a likelihood term (typically a χ2) which enforces agreement of the model with the data, plus a regularization term to account for priors. The priors are required to lever the many degeneracies due to the sparseness of the spatial frequency sampling. MiRA implements many different regularizations (quadratic or edge-preserving smoothness, total variation, maximum entropy, etc.) and let the user defines his own priors. The likelihood penalty is modular and designed to account for available data of any kind (complex visibilities, powerspectra and/or closure phase). One of the strength of MiRA is that it is purely based on an inverse problem approach and can therefore cope with incomplete data set; for instance, MiRA can build an image without any Fourier phase information. Input data must be in OI-FITS format. debian/yorick-mira.packinfo0000644000000000000000000000055411773312430013135 0ustar :newsubsection MiRA: Multiple-aperture Image Reconstruction Algorithm :mira image reconstruction from optical interferometry data :oifits OI-FITS file format for optical interferometry data :fmin minimization of an univariate function :linop general linear operator class for Yeti :rgl regularization operators for iterative optimization and inverse problems debian/compat0000644000000000000000000000000211773312430010365 0ustar 7 debian/copyright0000644000000000000000000000162411773312430011125 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: MiRA — a Multi-aperture Image Reconstruction Algorithm Upstream-Contact: Éric Thiébaut Source: http://www-obs.univ-lyon1.fr/labo/perso/eric.thiebaut/files/mira-0.9.10.tar.bz2 Files: * Copyright: 1995-2009 Éric Thiébaut 2009-2012 Thibaut Paumard License: GPL-2+ MIRA is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. . MIRA is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian systems, the complete text of the GPL, version 2 can be found at /usr/share/common-licenses/GPL-2 debian/README.Debian0000644000000000000000000000113011773312427011231 0ustar Yorick MIRA for Debian ====================== To run the example scripts, first unpack them: cp -a /usr/share/doc/yorick-mira/examples ./ cd examples gunzip *.gz Download the two following data files and put them in the same directory: http://olbin.jpl.nasa.gov/iau/2004/data1.oifits http://olbin.jpl.nasa.gov/iau/2004/data2.oifits Finally, launch the scripts like this and follow the on-screen instructions: yorick -i mira-demo.i (Type "quit" to exit) yorick -i mira-test1.i yorick -i mira-test2.i -- Thibaut Paumard , Thu, 18 Mar 2010 18:59:17 +0100 debian/source/0000755000000000000000000000000011773312430010467 5ustar debian/source/format0000644000000000000000000000001411773312430011675 0ustar 3.0 (quilt) debian/patches/0000755000000000000000000000000011773312430010616 5ustar debian/patches/mira_home0000644000000000000000000000172211773312430012503 0ustar Description: remove use of setup_package() MiRA originally designed to work from a directory within the user's home directory, not installed in Y_SITE. Instead of adapting the path, MiRA uses setup_package() from yeti. This patch was meant to disable this mechanism. This patch is currently not used, it is not clear whether it brings anything good (or bad). Author: Thibaut Paumard Last-Update: 2010-01-30 Forwarded: no --- a/mira.i +++ b/mira.i @@ -155,7 +155,7 @@ * * SEE ALSO: setup_package. */ -MIRA_HOME = setup_package(); +MIRA_HOME = Y_SITE; func mira_include(sym, src) /* DOCUMENT mira_include, sym, src; --- a/mira-demo.i +++ b/mira-demo.i @@ -1,7 +1,7 @@ -#! /usr/local/bin/yorick -i +#! /usr/bin/yorick -i include, "yeti_fftw.i"; -include, "./mira.i"; +include, "mira.i"; /* Load OI-FITS data file ('mh1' will be our MIRA instance for this data file; if there are several spectral channels in the data file, debian/patches/eval_is_a_func0000644000000000000000000000654411773312430013507 0ustar Description: resolve a name clash on word "eval". The yorick-yutils package contains an eval() function. MiRA uses the same word as a local variable in several functions, which works erratically when yutils is installed. This patch changes all occurences of "eval" in MiRA to something else. Author: Thibaut Paumard Forwarded: yes Last-Update: 2010-01-30 --- a/mira.i +++ b/mira.i @@ -1,3 +1,7 @@ +/////////////////////////////////////////////////////////////////////////// +// This file has been modified for better integration on Debian systems. // +// All bugs must be directed first to the Debian bug tracking system. // +/////////////////////////////////////////////////////////////////////////// /* * mira.i - * @@ -2313,15 +2317,15 @@ return x; } -func _mira_solve_printer(output, iter, eval, cpu, fx, gnorm, steplen, x, extra) +func _mira_solve_printer(output, iter, evaln, cpu, fx, gnorm, steplen, x, extra) { - if (eval == 1) { + if (evaln == 1) { write, output, format="# %s\n# %s\n", "ITER EVAL CPU (ms) FUNC FPRIOR GNORM STEPLEN", "-----------------------------------------------------------------------------------"; } write, output, format=" %5d %5d %10.3f %+-24.15e%-9.1e%-9.1e%-11.3e%-9.1e\n", - iter, eval, cpu, fx, extra.data_err/extra.master.ndata, + iter, evaln, cpu, fx, extra.data_err/extra.master.ndata, extra.regul_err, gnorm, step; } @@ -2547,7 +2551,7 @@ } step = 0.0; task = 1; - eval = iter = 0; + evaln = iter = 0; stop = 0n; if (verb) { elapsed = array(double, 3); @@ -2567,7 +2571,7 @@ } } fx = (use_extra ? f(x, gx, extra) : f(x, gx)); - ++eval; + ++evaln; if (bounds) { /* Figure out the set of free parameters: * ACTIVE(i) = 0 if X(i) has a lower bound XMIN(i) @@ -2587,7 +2591,7 @@ } /* Check for convergence. */ - if (task != 1 || eval == 1) { + if (task != 1 || evaln == 1) { gnorm = mira_projected_gradient_norm(x, gx, xmin=xmin, xmax=xmax); if (task > 2) { stop = 1n; @@ -2598,13 +2602,13 @@ } else if (check_iter && iter > maxiter) { stop = 1n; msg = swrite(format="warning: too many iterations (%d)\n", iter); - } else if (check_eval && eval > maxeval) { + } else if (check_eval && evaln > maxeval) { stop = 1n; msg = swrite(format="warning: too many function evaluations (%d)\n", - eval); + evaln); } if (verb) { - if (eval == 1 && ! use_printer) { + if (evaln == 1 && ! use_printer) { write, output, format="# Method %d (MEM=%d): %s\n#\n", method, mem, method_name; write, output, format="# %s\n# %s\n", @@ -2616,10 +2620,10 @@ cpu = 1e3*(elapsed(1) - cpu_start); // FIXME: this is a hack... if (use_printer) { - printer, output, iter, eval, cpu, fx, gnorm, steplen, x, extra; + printer, output, iter, evaln, cpu, fx, gnorm, steplen, x, extra; } else { write, output, format=" %5d %5d %10.3f %+-24.15e%-9.1e%-9.1e\n", - iter, eval, cpu, fx, gnorm, step; + iter, evaln, cpu, fx, gnorm, step; } if (use_viewer) { viewer, x, extra; debian/patches/rgl_needs_yeti0000644000000000000000000000052311773312430013535 0ustar Description: add "require, "yeti.i"" to rgl.i Author: Thibaut Paumard Forwarded: yes Last-Update: 2010-03-21 --- a/rgl.i +++ b/rgl.i @@ -57,6 +57,8 @@ * First release. */ +require, "yeti.i"; + /*---------------------------------------------------------------------------*/ /* PUBLIC INTERFACE */ debian/patches/mira-demo0000644000000000000000000000377611773312430012430 0ustar Description: Run test/example suite on end-user machine. The source package contains test scripts and data which are supposed to be run from the source directory. This patch modifies these scripts so that the end-user can run them from his home directory using an installed instance of MiRA. See README.Debian, which is there to document these examples. Author: Thibaut Paumard Forwarded: No Last-Update: 2010-01-30 --- a/mira-demo.i +++ b/mira-demo.i @@ -1,13 +1,13 @@ -#! /usr/local/bin/yorick -i +#! /usr/bin/yorick -i include, "yeti_fftw.i"; -include, "./mira.i"; +include, "mira.i"; /* Load OI-FITS data file ('mh1' will be our MIRA instance for this data file; if there are several spectral channels in the data file, you must choose one with keyword EFF_WAVE or choose a spectral range with keywords EFF_WAVE and EFF_BAND): */ -mh1 = mira_new(MIRA_HOME+"data/data1.oifits"); +mh1 = mira_new("data1.oifits"); /* Configure data instance for image reconstruction parameters (DIM is the number of pixels along the width and height of the restored --- a/mira-test1.i +++ b/mira-test1.i @@ -22,7 +22,7 @@ data file; if there are several spectral channels in the data file, you must choose one with keyword EFF_WAVE or choose a spectral range with keywords EFF_WAVE and EFF_BAND): */ -mh1 = mira_new(MIRA_HOME+"data/data1.oifits"); +mh1 = mira_new("data1.oifits"); /* Configure data instance for image reconstruction parameters (DIM is the number of pixels along the width and height of the restored --- a/mira-test2.i +++ b/mira-test2.i @@ -22,7 +22,7 @@ file; if there are several spectral channels in the data file, you must choose one with keyword EFF_WAVE or choose a spectral range with keywords EFF_WAVE and EFF_BAND): */ -db2 = mira_new(MIRA_HOME+"data/data2.oifits"); +db2 = mira_new("data2.oifits"); /* Configure data instance for image reconstruction parameters (DIM is the number of pixels along the width and height of the restored debian/patches/series0000644000000000000000000000006211773312430012031 0ustar mira-demo eval_is_a_func autoloads rgl_needs_yeti debian/patches/autoloads0000644000000000000000000000516011773312430012536 0ustar Description: add autoloads for .i files See "help, autoload" in Yorick. mira_include() doesn't play well with autoloads, fixed. Author: Thibaut Paumard Forwarded: yes Last-Update: 2010-03-21 --- /dev/null +++ b/fmin-auto.i @@ -0,0 +1,2 @@ +autoload, "fmin.i"; +autoload, "fmin.i", fmin; --- /dev/null +++ b/linop-auto.i @@ -0,0 +1,5 @@ +autoload, "linop.i"; +autoload, "linop.i", linop_new, linop_apply, is_linop, linop_new_fftw; +autoload, "linop.i", linop_new_fft, linop_make_matrix, linop_reshape; +autoload, "linop.i", linop_cast_real_as_complex +autoload, "linop.i", linop_cast_complex_as_real; --- /dev/null +++ b/mira-auto.i @@ -0,0 +1,15 @@ +autoload, "mira.i"; +autoload, "mira.i", mira_include, mira_new, mira_add_oidata, mira_config; +autoload, "mira.i", mira_update, mira_new_exact_xform, mira_new_fft_xform; +autoload, "mira.i", mira_plot, mira_data_penalty, mira_select, mira_solve; +autoload, "mira.i", mira_mnb, mira_projected_gradient_norm, mira_get_w; +autoload, "mira.i", mira_get_x, mira_get_y, mira_get_ndata, mira_get_dim; +autoload, "mira.i", mira_get_fov, mira_get_pixelsize, mira_plot_image; +autoload, "mira.i", mira_fix_image_axis, mira_color_bar, mira_dirty_beam; +autoload, "mira.i", mira_plot_frequencies, mira_plot_baselines; +autoload, "mira.i", mira_polar_to_cartesian, mira_stdev_to_weight; +autoload, "mira.i", mira_weight_to_stdev, mira_relative_absolute_difference; +autoload, "mira.i", mira_rescale, mira_recenter, mira_azimuthal_average; +autoload, "mira.i", mira_dirac, mira_cast_real_as_complex; +autoload, "mira.i", mira_cast_complex_as_real, mira_glob, mira_get_one_real; +autoload, "mira.i", mira_get_one_integer, mira_digitize, mira_classify; --- /dev/null +++ b/rgl-auto.i @@ -0,0 +1,5 @@ +autoload, "rgl.i"; +autoload, "rgl.i", rgl_info, rgl_new, rgl_make_2d_finite_difference_matrix; +autoload, "rgl.i", rgl_new_quadratic_1, rgl_squared_distance; +autoload, "rgl.i", rgl_integer_scalar, rgl_real_scalar, rgl_boolean; +autoload, "rgl.i", rgl_string_scalar, rgl_check_dimlist, rgl_identity; --- /dev/null +++ b/oifits-auto.i @@ -0,0 +1,3 @@ +autoload, "oifits.i"; +autoload, "oifits.i", oifits_new, oifits_load, oifits_random_normal; +autoload, "oifits.i", oifits_fix_name, oifits_clone; --- a/mira.i +++ b/mira.i @@ -170,7 +170,7 @@ * SEE ALSO: include, is_func, require. */ { - if (! is_func(sym)) { + if (! is_func(sym) || is_func(sym) == 3) { include, src, 1; } } @@ -184,7 +184,7 @@ /* MIRA requires regularization operators: */ mira_include, rgl_new, MIRA_HOME + "rgl.i"; - +q /* MIRA requires FFT_UTILS: */ mira_include, fft_indgen, MIRA_HOME + "fft_utils.i"; debian/examples0000644000000000000000000000003111773312430010722 0ustar mira-test?.i mira-demo.i debian/ynstall0000644000000000000000000000037611773312430010606 0ustar #data/* Y_SITE/data/ fmin.i linop.i #mira-demo.i mira.i #mira-test1.i #mira-test2.i oifits.i rgl.i debian/mira.info debian/yorick-mira.packinfo fmin-auto.i i-start linop-auto.i i-start mira-auto.i i-start oifits-auto.i i-start rgl-auto.i i-start