Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/private/task_imcollapse.py: 88%
26 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
2##########################################################################
3# task_imcollapse.py
4#
5# Copyright (C) 2008, 2009, 2010
6# Associated Universities, Inc. Washington DC, USA.
7#
8# This script is free software; you can redistribute it and/or modify it
9# under the terms of the GNU Library General Public License as published by
10# the Free Software Foundation; either version 2 of the License, or (at your
11# option) any later version.
12#
13# This library is distributed in the hope that it will be useful, but WITHOUT
14# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
16# License for more details.
17#
18# You should have received a copy of the GNU Library General Public License
19# along with this library; if not, write to the Free Software Foundation,
20# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
21#
22# Correspondence concerning AIPS++ should be adressed as follows:
23# Internet email: casa-feedback@nrao.edu.
24# Postal address: AIPS++ Project Office
25# National Radio Astronomy Observatory
26# 520 Edgemont Road
27# Charlottesville, VA 22903-2475 USA
28#
29# <author>
30# Dave Mehringer
31# </author>
32#
33# <summary>
34# Task to collapse an image along a specified axis,
35# computing a specified aggregate function of pixels along that axis
36# </summary>
37#
38# <reviewed reviwer="" date="" tests="" demos="">
39# </reviewed>
40#
41# <prerequisite>
42# <ul>
43#
44# </ul>
45# </prerequisite>
46#
47# <etymology>
48# imtrans => im(age) collapse
49# </etymology>
50#
51# <synopsis>
52# imtrans collapses an image along a specified axis. It is built on top of ia.collapse()
53# </synopsis>
54#
55# <example>
56# collapsed_image_tool = imcollapse(imagename="myim.im", outfile="collapsed.im", axis=2, function="variance", wantreturn=true)
57#
58# </example>
59#
60# <motivation>
61# To make users happy (https://bugs.aoc.nrao.edu/browse/CAS-1222)
62# and associated casacore class is prereq for specfit work
63# </motivation>
64#
66###########################################################################
68import sys
70from casatools import image
71from casatasks import casalog
72from .ialib import write_image_history
74def imcollapse(
75 imagename=None, function=None, axes=None, outfile=None, box=None,
76 region=None, chans=None, stokes=None, mask=None,
77 overwrite=None, stretch=None
78):
79 casalog.origin('imcollapse')
80 myia = image()
81 outia = None
82 try:
83 if len(outfile) == 0:
84 raise RuntimeError("outfile must be specified")
85 myia.dohistory(False)
86 if (not myia.open(imagename)):
87 raise RuntimeError("Cannot create image analysis tool using " + imagename)
88 outia = myia.collapse(
89 function, axes, outfile, region, box, chans,
90 stokes, mask, overwrite, stretch
91 )
92 try:
93 vars = locals()
94 param_names = imcollapse.__code__.co_varnames[:imcollapse.__code__.co_argcount]
95 param_vals = [vars[p] for p in param_names]
96 write_image_history(
97 outia, sys._getframe().f_code.co_name,
98 param_names, param_vals, casalog
99 )
100 except Exception as instance:
101 casalog.post("*** Error \'%s\' updating HISTORY" % (instance), 'WARN')
102 # returns None as per requirement
103 finally:
104 if myia:
105 myia.done()
106 if outia:
107 outia.done()