Welcome to iraf.net Thursday, May 02 2024 @ 04:39 AM GMT


 Forum Index > Help Desk > Applications New Topic Post Reply
 strange segmentation faults with task transform
   
ncaon
 08/06/2007 05:05PM (Read 3765 times)  
++---
Junior

Status: offline


Registered: 10/30/2005
Posts: 29
Hi,
I'm experiencing strange problems with the task transform. It aborts with a segmentation fault with certain values of the y1 parameter (dispersion is along the Y axis). The error seems to depend exclusively on setting ylog=yes, and is triggered by even tiny changes in y1, for instance:
ecl> transform blue690188_corr output blue690189_ov ylog=yes y1=3505.25 flux=noNOAO/IRAF V2.12.2a-EXPORT ncaon@cherne Mon 17:37:55 06-Aug-2007
Transform blue690188_corr to output.
User coordinate transformations:
blue690189_ov
Interpolation is poly5.
Using edge extension for out of bounds pixel values.
Output coordinate parameters are:
x1 = 1., x2 = 1200., dx = 1., nx = 1200, xlog = no
y1 = 3505., y2 = 7128., dy = 7.527E-5, ny = 4096, ylog = yes
ERROR: segmentation violationecl> transform blue690188_corr output blue690189_ov ylog=yes y1=3505.24 flux=noNOAO/IRAF V2.12.2a-EXPORT ncaon@cherne Mon 17:45:54 06-Aug-2007
Transform blue690188_corr to output.
User coordinate transformations:
blue690189_ov
Interpolation is poly5.
Using edge extension for out of bounds pixel values.
Output coordinate parameters are:
x1 = 1., x2 = 1200., dx = 1., nx = 1200, xlog = no
y1 = 3505., y2 = 7128., dy = 7.527E-5, ny = 4096, ylog = yes
(task succeeds)
I've done a few tests.transform blue690188_corr output blue690189_ov ylog=yes y1=3505.0 # FAILS
transform blue690188_corr output blue690189_ov ylog=yes y1=3505.1 # FAILS
transform blue690188_corr output blue690189_ov ylog=yes y1=3505.2 # OK
transform blue690188_corr output blue690189_ov ylog=yes y1=3505.3 # FAILS
transform blue690188_corr output blue690189_ov ylog=yes y1=3505.4 # OK
transform blue690188_corr output blue690189_ov ylog=yes y1=3505.5 # OK
#
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.4 # OK
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.5 # OK
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.6 # FAILS
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.7 # OK
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.8 # FAILS
transform blue690188_corr output blue690189_ov ylog=yes y1=3500.9 # FAILSIt fails consistently for y1 between 3501 and 3505. My intention was to set y1=3503 for consistency with other spectra already reduced on a Sun Solaris 9, where, using exactly the same parameters, transform worked just fine.The problem does not appear if I set ylog=no, and it does not depend, as far as I can see, on whether flux is yes or no, or on the interpolant choice, nor on the input data (I multiplied the input spectrum by 0, outcome does not change).Currently I'm running Iraf 2.12.2a in a Red Hat Enterprise Linux 4 desktop. Any clues on what's going on, or some possible workaround? I might put the data in some ftp area if this helps.Thanks a lot
Nicola Caon

 
Profile Email
 Quote
valdes
 08/06/2007 05:05PM  
+++++
Active Member

Status: offline


Registered: 11/11/2005
Posts: 728
Hi,Please post a header listing blue690188_corr and I check it out.Yours,
Frank Valdes

 
Profile Email
 Quote
ncaon
 08/06/2007 05:05PM  
++---
Junior

Status: offline


Registered: 10/30/2005
Posts: 29
Here it is:
[code:1:32ab2cc872]
blue690188_corr[1200,4100][real]: IIIzw102B1800
No bad pixels, min=0., max=0. (old)
Line storage mode, physdim [1200,4100], length of user area 7047 s.u.
Created Tue 10:38:38 10-Apr-2007, Last modified Wed 15:06:51 31-Jan-2007
Pixel file "blue690188_corr.fits" [ok]
EXTEND = F / File may contain extensions
ORIGIN = 'NOAO-IRAF FITS Image Kernel July 2003' / FITS file originator
DATE = '2007-01-31T15:06:56' / Date FITS file was generated
IRAF-TLM= '15:06:51 (31/01/2007)' / Time of last modification
OBJECT = 'IIIzw102B1800' / Name of the object observed
RUN = 690188 / Run number
RUNSET = '1:1:690188 ' / i:n:r => Run i of n runs starting at #r
SYSVER = 'S12-54 ' / Version of observing system
OBSERVAT= 'LAPALMA ' / Name of observatory (IRAF style)
OBSERVER= 'Cairos ' / Name of principal investigator
PROPOSAL= 'C33 ' / Code for grant of observing time
OBSTYPE = 'TARGET ' / Type of observation, e.g. TARGET
IMAGETYP= 'object ' / Type of observation, e.g. object
CAGAFILT= 'Clear ' / Cass. A&G box autoguider filter
CAGAFOCU= 2797 / Cass. autoguider focus (microns)
CAGARADI= 38982 / Cass. autoguider radial pos. (microns)
CAGATHET= 118000 / Cass. autoguider theta pos. (mdeg)
CAGAXFLT= 'V ' / Cass A&G box auxiliary filter
CAGCFILC= 'Clear ' / Cass. A&G box comparison colour filter
CAGCFILN= 'Clear ' / Cass. A&G box comparison ND filter
CAGLAMPS= 'Off ' / Cass. A&G box comparison lamps
CAGMFILC= 'OUT ' / Cass. A&G box main colour filter
CAGMFILN= 'OUT ' / Cass. A&G box main ND filter
CAGMIRRO= 'SLITVIEW ' / Cass. A&G box mirror configuration
CAGTVFIL= 'CLEAR ' / Cass. A&G box TV filter
CAGTVFOC= 12490 / Cass. A&G box TV focus (microns)
CAGTVSCA= '4.5 ' / Cass. A&G box TV scale
ISIGDOOR= 'LOCKED ' / Status of grating door
ISILID = 'OPEN ' / Status of ISIS lid
ISITIGHT= 'LIGHT_TIGHT ' / Light tight?
PAOFFSET= -92.1 / Slit p.a. - telescope p.a. (degrees)
ISIBFOLD= 'MIRROR ' / Position of blue fold
ISIDEKKE= 'CLEAR7 ' / Position of dekker
ISIDOOR = 'LOCKED ' / Status of slit door
ISIFCP = 'CLEAR ' / Field lens, calcite, polaroid or clear
ISIHWANG= 0.000000 / Angle of half-wave polarizer (degrees)
ISIHWAVE= 'OUT ' / Position of half-wave polarizer
ISIHWMNT= 'BOTTOM ' / Polarization mount holding half-wave plate.
ISIHWROT= 0.000000 / Rotation rate of half-wave polarizer (Hz)
ISIQWANG= 0.000000 / Angle of half-wave polarizer (degrees)
ISIQWAVE= 'OUT ' / Position of quarter-wave polarizer
ISIQWMNT= 'TOP ' / Polarization mount holding quarter-wave plate.
ISIQWROT= 0.000000 / Rotation rate of half-wave polarizer (Hz)
ISIRFOLD= 'MIRROR ' / Position of red fold
ISISLITU= 'LONG_SLIT ' / Slit unit (LONG, MULTI or FIBRE)
ISISLITW= 1.024831 / Slit width (arcsec)
INSTRUME= 'ISIS blue arm ' / Name of instrument configuration
ISIARM = 'Blue arm ' / Data from red arm, blue arm or FOS?
CENWAVE = 5250 / Approx. central wavelength (Angstroms)
DISPERSI= 64 / Nomimal dispersion (Angstroms/mm)
ISICELL = ' ' / State of grating-cell clamps
ISICOLL = 4096 / Position of collimator (microns)
ISIFILTA= 'OUT ' / Name of filter A in ISIS arm
ISIFILTB= 'OUT ' / Name of filter B in ISIS arm
ISIGRAT = 'R300B ' / Name of grating
ISIHART = 'OUT ' / State of Hartmann shutters
ISITHETA= 58313 / Angle of grating (millidegrees)
ISIXDISP= 'OUT ' / Position of cross disperser
LINESMM = 300 / No. of grating rulings per mm
AMEND = 1.020498 / Airmass at approx. end of exposure
DAZEND = 181.154037 / Dome azimuth at end of exposure (deg)
MNTPAEND= 124.516563 / Mount p.a. at end of exposure (deg)
ZDEND = 11.514801 / Zenith distance at end of exposure (degs)
HEIGHT = 2332.0 / [m] Height above sea level.
LATITUDE= '28:45:38.3 ' / Telescope latitude (degrees), +28:45:43.2
LONGITUD= '-17:52:53.9 ' / Telescope longitude (degrees), -17:52:39.5
SLATEL = 'LPO4.2 ' / Telescope name known to SLALIB
TELESCOP= 'WHT ' / 4.2 Metre William Herschel telescope
AIRMASS = 1.027127 / Airmass at approx. start of exposure
AMSTART = 1.027127 / Airmass at approx. start of exposure
AUTOMODE= 'AGLK ' / Mode of autoguiding.
AUTOX = 84.330971 / Guiding position on autoguider, x
AUTOY = 97.631859 / Guiding position on autoguider, y
AZIMUTH = 149.051483 / Azimuth at start of exposure (degs)
CAT-DEC = ' 17:13:32.0 ' / Catalogue dec. of object
CAT-EPOC= '2000.00 ' / Epoch of catalogue coordinates
CAT-EQUI= 'J2000.00 ' / Equinox of catalogue coordinate system
CAT-NAME= '3ZW102 ' / Name of object
CAT-RA = ' 23:20:30.10 ' / Catalogue r.a. of object
DAZSTART= 148.107285 / Dome azimuth at start of exposure (deg)
DEC = ' 17:13:34.6 ' / Dec. of telescope (epoch of date)
DECTRACK= 0.000000 / Differential tracking rate in dec. (arcsec/s)
EPOCH = 2004.000000 / Epoch of observation
EQUINOX = 'J2000.00 ' / Equinox of telescope coordinates
MNTPASTA= 154.666779 / Mount p.a. at start of exposure (deg)
PARALLAX= 0.000000 / Parallax of object (arcsec)
PARANGLE= 332.088043 / Parallactic angle at start of exposure (degs)
PMDEC = 0.000000 / Proper motion of object in dec. (arcsec/yr)
PMRA = 0.000000 / Proper motion of object in r.a. (s/yr)
RA = ' 23:20:29.86 ' / R.a. of telescope (epoch of date)
RADVEL = 0.000000 / Radial velocity of object (km/s)
RATRACK = 0.000000 / Differential tracking rate in r.a. (arcsec/s)
ROTSKYPA= 35.000000 / Sky p.a. of rotator (degs)
ROTTRACK= 'FOLLOWING ' / Rotator tracking on?
ST = ' 22:52:28.05 ' / LST at approx. start of exposure
STSTART = ' 22:52:28.05 ' / LST at approx. start of exposure
TELFOCUS= 97.899605 / Telescope focus (mm)
UTOBS = ' 23:59:13.95 ' / Universal time
VIGNETTE= F / Beam vignetted by dome/shutter/mirror cover?
XAPOFF = 0.000000 / Aperture offset in X (arcsec)
YAPOFF = -0.40000 / Aperture offset in Y (arcsec)
ZDSTART = 13.210815 / Zenith distance at start of exposure (degs)
DETECTOR= 'EEV12 ' / Formal name of camera
CCDSPEED= 'SLOW ' / Readout speed
CCDXBIN = 1 / Binning factor in x axis
CCDYBIN = 1 / Binning factor in y axis
CCDSUM = '1 1 ' / Binning factors (IRAF style)
CCDTEMP = 162.96700000 / [K] Cryostat temperature
CCDTEMP1= 0.00000000 / [K] Monitor pt 1 temperature
CCDTEMP2= 0.00000000 / [K] Monitor pt 2 temperature
NWINDOWS= 1 / Number of readout windows
WINSEC1 = '[500:1700,1:4200], enabled ' / Readout window 1 (d-space)
WINSEC2 = '[0:0,0:0], disabled ' / Readout window 2 (d-space)
WINSEC3 = '[0:0,0:0], disabled ' / Readout window 3 (d-space)
WINSEC4 = '[0:0,0:0], disabled ' / Readout window 4 (d-space)
READMODE= 'simple ' / Readout mode
STORMODE= 'normal ' / Store mode
NUMREADS= 1 / Number of reads
COAVERAG= 1 / Number of cycles coaveraged
REQTIME = 1800.00000000 / [s] Requested length of observation
DISPAXIS= 2 / Dispersion_axis
IMAGEID = 1 / Image identification
DASCHAN = 1 / Number of readout channel
WINNO = 1 / Number of readout window
CHIPNAME= 'EEV12 ' / Name of detector chip.
CCDNAME = 'EEV12 ' / Name of detector chip.
CCDCHIP = 'EEV12 ' / Name of detector chip.
CCDTYPE = 'EEV4280 ' / Type of detector chip.
CCDXPIXE= 0.00001350 / [m] Size of pixels in x.
CCDYPIXE= 0.00001350 / [m] Size of pixels in y.
AMPNAME = 'RH ' / Name of output amplifier.
GAIN = 1.16000000 / Nominal Photo-electrons per ADU.
READNOIS= 5.00000000 / Nominal Readout noise in electrons.
SATURATE= 65535.00000000 / Highest value that is unsaturated
MAXBIAS = 65535.00000000 / Maximum expected bias level
BIASSEC = '[281:1201,4105:4190] ' / Bias pixels.
TRIMSEC = '[1:1201,1:4099] ' / Illuminated pixels.
RTDATSEC= '[500:1700,1:4200] ' / Location in d-space for RTD.
DATE-OBS= '2004-09-21 ' / Date at start of integration
UTSTART = '23:59:14.879 ' / UT at start of integration
EXPOSED = 1800.01000000 / [s] Exposure time
EXPTIME = 1800.01000000 / [s] Exposure time
ELAPSED = 1800.09211415 / [s] Integration time
DARKTIME= 1800.09211415 / [s] Integration time
CRVAL1 = 500.00000000 / Reference value on 1st axis in primary WCS
CRVAL2 = 1.00000000 / Reference value on 2nd axis in primary WCS
CRPIX2 = 1.00000000 / Reference pixel on 2nd axis in primary WCS
CUNIT1 = 'pixel ' / Units of 1st axis in primary WCS
CUNIT2 = 'pixel ' / Units of 2nd axis in primary WCS
CD1_1 = 1.00000000 / Transformation matrix for primary WCS
CD2_2 = 1.00000000 / Transformation matrix for primary WCS
PROJP1 = 1.00000000 / Projection coefficient for primary WCS
PROJP3 = 0.00000000 / Projection coefficient for primary WCS
PV1_1 = 1.00000000 / Projection coefficient for primary WCS
PV1_2 = 0.00000000 / Projection coefficient for primary WCS
PV2_1 = 1.00000000 / Projection coefficient for primary WCS
PV2_2 = 1.00000000 / Projection coefficient for primary WCS
WCSDIM = 2
CTYPE1 = 'LINEAR '
CTYPE2 = 'LINEAR '
CDELT1 = 1.
CDELT2 = 1.
LTV1 = -1.
LTM1_1 = 1.
LTM2_2 = 1.
WAT0_001= 'system=image'
[/code:1:32ab2cc872]
I've also included blue690188_corr.fits and database/fcblue690189_ov in a tar file available at: ftp://ftp.iac.es/out/ncaon/transform.tar.gzThanks again
Nicola

 
Profile Email
 Quote
valdes
 08/06/2007 05:05PM  
+++++
Active Member

Status: offline


Registered: 11/11/2005
Posts: 728
Hi Nicola,Thank you for the data. I was able to reproduce the problem easily and then debug the code. The underlying problem was a step where the log of y1 is taken and then the anti-log. Because of precision it was possible that10**(log10(3505.25)) = 3505.249When this value is then used in the interpolator routines (which themselves
should do range checking but don't) it triggered an error. I'm not sure what the work around should be and you may have to do some fudging to get the result you want.The bug log is below. The problem has been fixed in the code for a future version.Yours,
Frank
NUMBER: 559
MODULE: longslit.transform
SYSTEM: -V2.12.3
DATE: Tue Aug 7 10:39:13 MST 2007
FROM: valdesBUG: When using log resampling (xlog=yes or ylog=yes) it is possible to
get a segmentation error. This is caused by taking the log and
anti-log of coordinates and not getting back exactly the same value
due to real precision problems. This process caused an attempt to
go outside the valid range of the interpolator. This may be a
rare problem but if it does happen one may be able to use the
x1, x2, y1, y2 values to work around the problem. The workaround
for a future release is to use double precision and to impose
range limits on data passed to the interpolator.STATUS: Fixed for the next release.

 
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