iaa |
01/29/2014 11:24AM (Read 2198 times)
|
|
|
Status: offline
Registered: 02/14/2011
Posts: 11
|
The imcombine task exits with "ERROR: segmentation violation" when the input list has more than fifty images.
The script:
#! /iraf/iraf/bin.linux64/ecl.e -f
# Packages
images
immatch
imcombine ("bias_00.fits, \
bias_01.fits, \
bias_02.fits, \
bias_03.fits, \
bias_04.fits, \
bias_05.fits, \
bias_06.fits, \
bias_07.fits, \
bias_08.fits, \
bias_09.fits, \
bias_10.fits, \
bias_11.fits, \
bias_12.fits, \
bias_13.fits, \
bias_14.fits, \
bias_15.fits, \
bias_16.fits, \
bias_17.fits, \
bias_18.fits, \
bias_19.fits, \
bias_20.fits, \
bias_21.fits, \
bias_22.fits, \
bias_23.fits, \
bias_24.fits, \
bias_25.fits, \
bias_26.fits, \
bias_27.fits, \
bias_28.fits, \
bias_29.fits, \
bias_30.fits, \
bias_31.fits, \
bias_32.fits, \
bias_33.fits, \
bias_34.fits, \
bias_35.fits, \
bias_36.fits, \
bias_37.fits, \
bias_38.fits, \
bias_39.fits, \
bias_40.fits, \
bias_41.fits, \
bias_42.fits, \
bias_43.fits, \
bias_44.fits, \
bias_45.fits, \
bias_46.fits, \
bias_47.fits, \
bias_48.fits, \
bias_49.fits, \
bias_50.fits, \
bias_51.fits, \
bias_52.fits, \
bias_53.fits, \
bias_54.fits, \
bias_55.fits, \
bias_56.fits, \
bias_57.fits, \
bias_58.fits, \
bias_59.fits, \
bias_60.fits",
output="master_bias.fits",
combine="average",
reject="minmax",
nlow=20,
nhigh=20)
logout
Outputs:
iaa@csic:~/data\$this->_split2($m[0]) ./combine.cl
ERROR: segmentation violation
called as: `imcombine (input=bias_00.fits, bias_01.fits, bias_02.fits, bias_03.fits, bias_04.fits, bias_05.fits, bias_06.fits, bias_07.fits, bias_08.fits, bias_09.fits, bias_10.fits, bias_11.fits, bias_12.fits, bias_13.fits, bias_14.fits, bias_15.fits, bias_16.fits, bias_17.fits, bias_18.fits, bias_19.fits, bias_20.fits, bias_21.fits, bias_22.fits, bias_23.fits, bias_24.fits, bias_25.fits, bias_26.fits, bias_27.fits, bias_28.fits, bias_29.fits, bias_30.fits, bias_31.fits, bias_32.fits, bias_33.fits, bias_34.fits, bias_35.fits, bias_36.fits, bias_37.fits, bias_38.fits, bias_39.fits, bias_40.fits, bias_41.fits, bias_42.fits, bias_43.fits, bias_44.fits, bias_45.fits, bias_46.fits, bias_47.fits, bias_48.fits, bias_49.fits, bias_50.fits, 11, output=master_bias.fits, combine=average, reject=minmax, nlow=20, nhigh=20)'
Warning: Cannot open image (11)
Warning: Can't make temporary stack images
called as: `cl ()'
called as: `cl ()'
called as: `cl ()'
Error while reading login.cl file - may need to rebuild with mkiraf
Fatal startup error. CL dies.
Everything works as expected, however, if the standard @file syntax is used, listing the images in a text file, one per line. Is this a known limitation of IRAF? If there is no way to avoid it we will have to specify the input images in a separate file, but we would rather list them in the host CL script itself so that we have a stand-alone executable. Is there any workaround for this?
|
|
|
|
fitz |
01/29/2014 03:26PM
|
|
|
Status: offline
Registered: 09/30/2005
Posts: 4040
|
My first guess is that this is likely an old bug in the new image template code introduced in v2.15 that should be fixed in more recent versions. To workaround it you can do
cl\$this->_split2($m[0]) reset use_new_imt = no
to revert back to the old code. You can reset this value permanently in the system hlib$zzsetenv.def file or your login.cl.
Note however there are limits to the length of parameter strings as well and for very long lists you are better off using an @-file or a pattern such as "bias*.fits" that will be expanded automatically.
|
|
|
|
iaa |
01/30/2014 05:10PM
|
|
|
Status: offline
Registered: 02/14/2011
Posts: 11
|
Thanks, fitz. I have opted for using a temporary @-file, created from the CL script itself and removed once it is no longer necessary. A pattern such as "bias*.fits" is not an option in our case because we need to determine at runtime which biases are going to be imcombined.
#! /iraf/iraf/bin.linux64/ecl.e -f
# Packages
images
immatch
string bias_list
bias_list = mktemp("/tmp/bias_")
print ("bias_00.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_01.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_02.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_03.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_04.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_05.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_06.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_07.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_08.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_09.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_10.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_11.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_12.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_13.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_14.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_15.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_16.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_17.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_18.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_19.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_20.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_21.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_22.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_23.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_24.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_25.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_26.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_27.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_28.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_29.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_30.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_31.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_32.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_33.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_34.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_35.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_36.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_37.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_38.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_39.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_40.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_41.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_42.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_43.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_44.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_45.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_46.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_47.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_48.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_49.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_50.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_51.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_52.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_53.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_54.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_55.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_56.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_57.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_58.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_59.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
print ("bias_60.fits" , \$this->_split2($m[0])\$this->_split2($m[0]) bias_list)
imcombine(input="@" // bias_list,
output="master_bias.fits",
combine='average',
reject='minmax',
nlow=20,
nhigh=20)
imdel (bias_list)
logout
Hope this is of help to somebody.
|
|
|
|
| |
|