Welcome to iraf.net Friday, May 17 2024 @ 06:16 PM GMT


 Forum Index > Help Desk > General IRAF New Topic Post Reply
 Segmentation violation when imcombine'ing > 50 images
   
iaa
 01/29/2014 11:24AM (Read 2198 times)  
+----
Newbie

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?


 
Profile Email
 Quote
fitz
 01/29/2014 03:26PM  
AAAAA
Admin

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.

 
Profile Email
 Quote
iaa
 01/30/2014 05:10PM  
+----
Newbie

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.

 
Profile Email
 Quote
   
Content generated in: 0.10 seconds
New Topic Post Reply

Normal Topic Normal Topic
Sticky Topic Sticky Topic
Locked Topic Locked Topic
New Post New Post
Sticky Topic W/ New Post Sticky Topic W/ New Post
Locked Topic W/ New Post Locked Topic W/ New Post
View Anonymous Posts 
Anonymous users can post 
Filtered HTML Allowed 
Censored Content 
dog allergies remedies cialis 20 mg chilblain remedies


Privacy Policy
Terms of Use

User Functions

Login