Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/imval.py: 56%
27 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-31 17:39 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-10-31 17:39 +0000
1##################### generated by xml-casa (v2) from imval.xml #####################
2##################### 1d88123b4a2ed930af9fa51382cba5b9 ##############################
3from __future__ import absolute_import
4import numpy
5from casatools.typecheck import CasaValidator as _val_ctor
6_pc = _val_ctor( )
7from casatools.coercetype import coerce as _coerce
8from casatools.errors import create_error_string
9from .private.task_imval import imval as _imval_t
10from casatasks.private.task_logging import start_log as _start_log
11from casatasks.private.task_logging import end_log as _end_log
12from casatasks.private.task_logging import except_log as _except_log
14class _imval:
15 """
16 imval ---- Get the data value(s) and/or mask value in an image.
18 --------- parameter descriptions ---------------------------------------------
20 imagename Name of the input image
21 region Region selection. Empty string (default) means use rules for box/chans/stokes specification.
22 box Rectangular region(s) to select in direction plane. Empty string (default) means use the reference pixel.
23 chans Channels to use. Default is to use all channels.
24 stokes Stokes planes to use. Planes specified must be contiguous. Default is to use all Stokes planes.
25 [1;42mRETURNS[1;m void
27 --------- examples -----------------------------------------------------------
30 The data point(s) to be retrieved are those found in the specified
31 region, which may be:
32 1. A region file or text string, with the following caveat:
33 * If the specified region is complex (eg, a union or intersection of multiple regions,
34 only the first simple region in this set is used.
35 * If the region is not rectangular, then the rectangular region that circumscribes the
36 specified region (ie the bounding box) is used to retrieve values, since the returned
37 arrays must be rectangular. The resulting mask values in this case are the result of
38 anding the image mask values with the specified region mask values, eg
39 if a pixel falls outside the specified region but within the bounding box, its returned
40 mask value will be false even if its image mask value is true.
41 2. A region specified by a set of rectangular
42 pixel coordinates, the channel ranges and/or the Stokes.
44 For directed output, run as
45 myoutput = imval()
48 Keyword arguments:
49 imagename -- Name of input image
50 Default: none; Example: imagename='ngc5921_task.im'
51 region -- Region selection. Empty string (default) means use rules for box/chans/stokes specification.
52 Example: region='myimage.im.rgn'
53 region='region1'
54 box -- Rectangular region to select in direction plane. Empty string (default) means use the reference pixel.
55 Default: '' (referencepixel values for the Directional coord);
56 Example: box='10,10,50,50'
57 box = '10,10,30,30,35,35,50,50' (two boxes)
58 chans -- Channels to use. Default is to use all channels.
59 stokes -- Stokes planes to use. Planes specified must be contiguous. Default is to use all Stokes planes.
60 Example: stokes='IQUV';
61 stokes='I,Q'
63 General procedure:
65 1. Specify inputs, then
67 2. myoutput = imval()
68 or specify inputs directly in calling sequence to task
69 myoutput = imsval(imagename='image.im', etc)
71 3. myoutput['KEYS'] will contain the result associated with any
72 of the keys given below
74 KEYS CURRENTLY AVAILABLE
75 blc - absolute PIXEL coordinate of the bottom left corner of
76 the bounding box surrounding the selected region
77 trc - the absolute PIXEL coordinate of the top right corner
78 of the bounding box surrOunding the selected region
79 axes - List the data stored in each axis of the data block.
80 unit - unit of the returned data values.
81 data - data value(s) found in the given region
82 mask - mask value(s) found in the given region. See important
83 note above regarding returned mask values for
84 non-rectangular regions.
86 NOTE: The data returned is in the same order as it is internally
87 stored, typically RA, DEC, spectral, stokes. Also both the data
88 and mask values are returned as Python Numpy arrays, for more
89 information on how to manipulate them see
90 http://numpy.scipy.org/#array_interface
93 Additional Examples
94 # The value and mask value at a single point (5,17,2,Q)
95 imval( 'myImage', box='5,5,17,17', chans=2, stokes='Q' )
97 # Select and report on two box regions
98 # box 1, bottom-left coord is 2,3 and top-right coord is 14,15
99 # box 2, bottom-left coord is 30,31 and top-right coord is 42,43
100 # Note that only the boxes for the
101 imval( 'myImage', box='2,3,14,15;30,31,42,43' )
103 # Select the same two box regions but only channels 4 and 5
104 imval( 'myImage', box='2,3,14,15;30,31,42,43', chan='4~5' )
106 # Select all channels greater the 20 as well as channel 0.
107 # Then the mean and standard deviation are printed
108 # Note that the data returned is a Python numpy array which
109 # has built in operations such as min, max, and means as
110 # demonstrated here.
111 results = imval( 'myImage', chans='>20;0' )
112 imval_data=results['data']
113 mask=results['mask']
114 # holds the absolute coordinates of the associated pixels in imval_data
115 coords = results['coords']
116 print "Data max: ", imval_data.max(), " mean is ", imval_data.mean()
117 swapped_data=imval_data.swapaxes(0,2)
118 swapped_mask=mask.swapaxes(0,2)
119 print "Data values for 21st channel: n", swapped_data[0]
120 print "Mask values for 21st channel: n", swapped_mask[0]
123 """
125 _info_group_ = """analysis, information"""
126 _info_desc_ = """Get the data value(s) and/or mask value in an image."""
128 def __call__( self, imagename='', region='', box='', chans='', stokes='' ):
129 schema = {'imagename': {'type': 'cReqPath', 'coerce': _coerce.expand_path}, 'region': {'type': 'cVariant', 'coerce': [_coerce.to_variant]}, 'box': {'type': 'cStr', 'coerce': _coerce.to_str}, 'chans': {'type': 'cStr', 'coerce': _coerce.to_str}, 'stokes': {'type': 'cStr', 'coerce': _coerce.to_str}}
130 doc = {'imagename': imagename, 'region': region, 'box': box, 'chans': chans, 'stokes': stokes}
131 assert _pc.validate(doc,schema), create_error_string(_pc.errors)
132 _logging_state_ = _start_log( 'imval', [ 'imagename=' + repr(_pc.document['imagename']), 'region=' + repr(_pc.document['region']), 'box=' + repr(_pc.document['box']), 'chans=' + repr(_pc.document['chans']), 'stokes=' + repr(_pc.document['stokes']) ] )
133 task_result = None
134 try:
135 task_result = _imval_t( _pc.document['imagename'], _pc.document['region'], _pc.document['box'], _pc.document['chans'], _pc.document['stokes'] )
136 except Exception as exc:
137 _except_log('imval', exc)
138 raise
139 finally:
140 task_result = _end_log( _logging_state_, 'imval', task_result )
141 return task_result
143imval = _imval( )