iraf-community / iraf Goto Github PK
View Code? Open in Web Editor NEWIRAF - Image Reduction and Analysis Facility
Home Page: https://iraf-community.github.io
License: Other
IRAF - Image Reduction and Analysis Facility
Home Page: https://iraf-community.github.io
License: Other
Hi,
I read that IRAF was now part of the Ubuntu 18 distribution. Certainly, the command:
% apt install iraf iraf-dev iraf-noao iraf-noao-dev iraf-wcstools iraf-rvsao
seems to complete and things appear to be installed in /usr/bin/iraf
. An icon is created but right-clicking on that and selecting "Show details" returns "No Application Found". The install in /usr/lib/iraf
also looks minimal and I cannot find mkiraf
to continue. It does seem to install a version of pyraf that appears to work. So, I'm curious as to how to proceed. I'd like the command line version (via 'cl') to work too but can't seem to get there. (I did find a mkiraf.sh
deeply buried in /usr/lib/iraf
but it doesn't run as it has some hard-coded paths
in there that do not exist eg iraf='/build/iraf-wlsLkZ/iraf-2.16.1+2018.03.10'
).
Also, apt install iraf-fitsutil iraf-mscred iraf-sptable
returns E: unable to locate package
so something is not quite right there.
I can test out any fixes/suggestions you have. I'd like to get this to work as it's a lot simpler than a manual IRAF install.
Thanks for all you hard work.
When I go to do the make on my Macbook Air (running Mojave and Xcode 10.2.1 with the command tools installed) I have the following issue:
bash-3.2$ make sysgen 2>&1 | tee build.log
Building the IRAF v2.16 software tree
Wed Apr 24 16:31:08 MST 2019
(util/mksysgen)
Clean 'macintel' host directories ....
Clean src directories ....
Clean 'macintel' bin directories ....
Cleaning spool files ....
Hello
I installed iraf in my macOs 10.15.5, the process went well with no errors, but when I try to configure, the output is: "-bash: syntax error near unexpected token `newline'", this is what I'm typing:
===================================================================
==================== Installation Completed With No Errors ==================
=====================================================================
$ export PATH=/path/to/iraf/bin/:$PATH
$make <x86_64> %the operating system is 64 bits
-bash: syntax error near unexpected token `newline'
What could be wrong?
Any suggestion?
Thanks
This was observed in the merge-all branch with the SHA of 48fb222
When using version 7.6 b5 of DS9 the images are displayed and iraf isn't crashing.
Even if the IRAF s/w won't play nicely with the older DS9, having the program crash isn't acceptable and should be considered a bug.
So, after starting the 7.3.2 version of DS9 and then running IRAF:
ecl> display dev$pix
frame to be written into (1:4) (1): 1
ERROR: Cannot open device (node!imtool,,512,512)
ecl>
Not really an issue - I got these to work.
Note I used the Macports build of X11 so I needed:
export C_INCLUDE_PATH=/opt/local/include/
export LIBRARY_PATH=/opt/local/lib
before running make.
There were a few errors at the end of the build:
...
cd clients && mkpkg || true
Warning, hlib$mkpkg.inc line 5: macro `IRAFARCH' not found
warning: library `libpkg.a' not found
xc -c -w idxstr.x ism.x wcsgfterm.x
idxstr.c:13:10: fatal error: f2c.h: No such file or directory
13 | #include "f2c.h"
| ^~~~~~~
compilation terminated.
ar r /Users/karl/GIT/x11iraf/ximtool/clients/libpkg.a idxstr.o ism.o wcsgfterm.o
ar: creating archive /Users/karl/GIT/x11iraf/ximtool/clients/libpkg.a
ar: idxstr.o: No such file or directory
ar: ism.o: No such file or directory
ar: wcsgfterm.o: No such file or directory
xc -c -w t_wcspix.x wcimage.x wcmef.x wcmspec.x wcunknown.x
t_wcspix.c:13:10: fatal error: f2c.h: No such file or directory
13 | #include "f2c.h"
| ^~~~~~~
compilation terminated.
ar r /Users/karl/GIT/x11iraf/ximtool/clients/libpkg.a t_wcspix.o wcimage.o wcmef.o wcmspec.o wcunknown.o
ar: t_wcspix.o: No such file or directory
ar: wcimage.o: No such file or directory
ar: wcmef.o: No such file or directory
ar: wcmspec.o: No such file or directory
ar: wcunknown.o: No such file or directory
ranlib libpkg.a
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: empty library: libpkg.a (no table of contents added)
Updated 8 files in libpkg.a
xc -c -w x_ism.x
x_ism.c:13:10: fatal error: f2c.h: No such file or directory
13 | #include "f2c.h"
| ^~~~~~~
compilation terminated.
xc -Nz -z x_ism.o libpkg.a -o ism_wcspix.e -lds -lxtools -liminterp -lslalib
Warning: file `x_ism.o' not found
ld: file too small (length=8) file 'libpkg.a' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Warning, mkpkg line 3: module `relink' not found or returned error
though the xgterm and xterm binaries built find and functioned fine.
I am not sure what f2c is needed for here and I don't have f2c.
This is taken from iraf.net#1467524 from 2012-13-09 by Jason Quinn:
When I use imcopy on a
.imh
image such asdev$pix
, it reports an error if I try to copy a section that exceeds the boundary of the image:vocl> imhead dev$pix dev$pix[512,512][short]: m51 B 600s vocl> vocl> imcopy dev$pix[*,1:512] test1.fits dev$pix[*,1:512] -> test1.fits vocl> vocl> imcopy dev$pix[*,1:513] test2.fits dev$pix[*,1:513] -> test2.fits ERROR: Pixel storage file is truncated (dev$pix[*,1:513])
If however I use a FITS image, I do not get a warning for several pixels past the boundary of the image.
vocl> imcopy dev$pix jjj.fits dev$pix -> jjj.fits vocl> vocl> imhead jjj.fits jjj.fits[512,512][short]: m51 B 600s vocl> vocl> imcopy jjj.fits[*,1:512] test3.fits jjj.fits[*,1:512] -> test3.fits vocl> vocl> imcopy jjj.fits[*,1:513] test4.fits jjj.fits[*,1:513] -> test4.fits vocl> vocl> imcopy jjj.fits[*,1:514] test5.fits jjj.fits[*,1:514] -> test5.fits vocl> vocl> imcopy jjj.fits[*,1:515] test6.fits jjj.fits[*,1:515] -> test6.fits ERROR: Pixel storage file is truncated (jjj.fits[*,1:515])
Are the
[*,1:513]
and[*,1:514]
commands exposing some sort of error checking bug? The file is only 512x512.If I run fitsverify on the test image,test2.fits
andtest6.fits
give fatal errors whiletest3.fits
andtest4.fits
are valid FITS files but they have been extended by 1 and 2 pixels, respectively, in the y-direction.Also, when I try an imhead on the files I also get two different results depending on whether I use*.fits
vstest*.fits
as the argument to imhead. This seems to violate the principle of least surprise.vocl> imhead *.fits jjj.fits[512,512][short]: m51 B 600s test1.fits[512,512][short]: m51 B 600s test2.fits: FXF: EOF encountered while reading FITS file (test2.fits) test3.fits[512,512][short]: m51 B 600s test4.fits[512,513][short]: m51 B 600s test5.fits[512,514][short]: m51 B 600s test6.fits: FXF: EOF encountered while reading FITS file (test6.fits) vocl> imhead test*.fits test1.fits[512,512][short]: m51 B 600s ERROR: Seek error on file (skyfire!/home/jquinn/projects/test2.fits)
Cheers,
Jason
@iraf answered:
Hi Jason,Just wanted to acknowledge that I can reproduce the problem but haven't had time to look at it in detail yet. It'll be fixed for the next update, thanks for the report.-Mike
However, in 2.16.1 (released 2013), the problem still remains.
When trying to reproduce iraf.net#1469909:
The following command leads to a segmentation fault:
ecl> imstat http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits[24][520:990,2420:2782]
# IMAGE NPIX MEAN STDDEV MIN MAX
ERROR: URL Bad Request (http:////www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits%%\[24]\[520:990,2420:2782]%)
ecl> imstat http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits
# IMAGE NPIX MEAN STDDEV MIN MAX
ERROR: segmentation violation
The segmentation fault appears in in x_image.e
:
(gdb) r
Starting program: /usr/lib/iraf/bin/x_images.e
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits[24][520:990,2420:2782]" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
# IMAGE NPIX MEAN STDDEV MIN MAX
ERROR (597, "URL Bad Request (http:////www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits%%\[24]\[520:990,2420:2782]%)")
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits[24]" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
# IMAGE NPIX MEAN STDDEV MIN MAX
ERROR (597, "URL Bad Request (http:////www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits%%\[24]%)")
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
# IMAGE NPIX MEAN STDDEV MIN MAX
Program received signal SIGSEGV, Segmentation fault.
gstrct_ (str=0x55555599659e, str@entry=0x5555559965a0 <hd>, outstr=0xc655b75670c3b0, maxch=maxch@entry=0x5555559011d8 <c__511>) at gstrcat.x:14
14 if (outstr[op+1] == EOS)
(gdb)
(gdb) bt
#0 gstrct_ (str=0x55555599659e, str@entry=0x5555559965a0 <hd>, outstr=0xc655b75670c3b0, maxch=maxch@entry=0x5555559011d8 <c__511>) at gstrcat.x:14
#1 0x0000555555804feb in xstrct_ (str=0x55555599659e, str@entry=0x5555559965a0 <hd>, outstr=<optimized out>, maxch=maxch@entry=0x5555559011d8 <c__511>) at strcat.x:11
#2 0x00005555558135cb in urlacs_ (host=0x55555599fe3e, host@entry=0x55555599fe40 <host>, port=port@entry=0x55555599fe28 <port>, path=0x55555599be1e <emsg+1022>,
path@entry=0x55555599be20 <path>, fname=0x55555599b61e, fname@entry=0x55555599b620 <outnae>, reply=reply@entry=0x55555599b608 <buf>) at urlget.x:259
#3 0x00005555558139a3 in urlget_ (url=0x55555595347e, url@entry=0x555555953480 <url>, fname=0x555555980b1e, fname@entry=0x555555980b20 <fname>,
reply=reply@entry=0x555555988d60 <c__0>) at urlget.x:78
#4 0x00005555557dcea0 in fcadd_ (cache=0x5555558f11d6 <st0005+22>, cache@entry=0x5555558f11d8 <st0003>, inname__=0x55555595347e, inname__@entry=0x555555953480 <url>,
extn=0x55555595345e <cfname+1022>, extn@entry=0x555555953460 <st0004>, cname=0x55555595305e, cname@entry=0x555555953060 <cfname>,
maxch=maxch@entry=0x5555558f1258 <c__511>) at fcache.x:415
#5 0x0000555555745fd6 in imtmae_ (fnt=0x555555b6cece, outstr=0x555555b6ca7e, outstr@entry=0x555555b6ca80, maxch=maxch@entry=0x5555558c9be8 <c__511>) at imt.x:302
#6 0x0000555555746291 in imtgem_ (imt=imt@entry=0x555555926ef0 <list>, outstr=0x555555b6ca7e, maxch=maxch@entry=0x5555558c9be8 <c__511>) at imt.x:208
#7 0x00005555555bb851 in timsts_ () at t_imstat.x:63
#8 0x000055555555b1f2 in sysruk_ (task=0x55555598de5e <arglit+6>, cmd=0x55555598dede, rukarf=0x55555598de58 <arglit>, rukint=0x55555598fee0 <intere>) at x_images.x:434
#9 0x000055555580e7fe in irafmn_ (acmd=<optimized out>, ainchn=0x7fffffffe060, aoutcn=<optimized out>, aerrcn=0x7fffffffe070, adrivr=0x7fffffffe078,
adevte=<optimized out>, prtype=0x555555951380 <prtype>, bkgfie=0x55555595139e <ipc_in+6>, jobcoe=0x7fffffffe088, sysruk=0x55555555a2b0 <sysruk_>,
onenty=0x55555580f0d0 <onenty_>) at main.x:394
#10 0x000055555555a018 in main (argc=1, argv=0x7fffffffe2b8) at zmain.c:196
On 2.16.1, one gets a
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits[24][520:990,2420:2782]" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
ERROR (401, "401 http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits")
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits[24]" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
ERROR (401, "401 http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits")
> imstatistics images="http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits" fields="image,npix,mean,stddev,min,max" lower=INDEF upper=INDEF nclip=0 lsigma=3. usigma=3. binwidth=0.1 format=yes cache=no mode="ql" $nargs=1
ERROR (401, "401 http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/1722795p.fits")
(401 is "unauthorized")
So, while this seems to be buggy on 2.16.1 as well, the new code has some additional problems:
That happens here (line 259):
Lines 253 to 264 in 6fc2904
It seems that the value rep
that is returned by calloc()
was not correctly allocated; at least one cannot access memc[rep]
.
when I run the command $mkiraf in my /iraf/iraf folder, I meet the error "Error: current directory is not an iraf user login directory". How to fix the error?
Hi all,
I am trying to copy a certain portion of a fits image into a new output image. I am using:
imcopy input.fits[1:1024, 1:1024] output.fits
to copy only the specified section of the input image. But it is showing me an error: ERROR: FXF: number is not a decimal
Any help is highly appreciated.
Hi,
while rebasing my packaging from the latest snapshot with backported patches for architecture support to the current master, I ran into test failures due do additional messages in output like this one:
vmclient (x_nttools.e): access ttranspose.in -> 1
I get the same result with both Fedora 28 and Debian Stable, in attachment you'll find the build log (make linux64, make sysgen and output of run_tests script). Currently I'm investigating where the failures start, for sure the snapshot 2.16.1+2018.03.10 works fine.
Greetings,
Christian
Build log with commit hash (the commit from 9 May) iraf-debian-stable-c2acbbb1b2b58bad645bf01aa256cd3dd3832964.log
For people are trying to compile iraf with gcc10 (default compiler for Arch):
Have to modify the "Makefile" adding fcommon flag to the CFLAGS
That will look like:
export CFLAGS = -g -Wall -O2 $(CARCH) -fcommon
Then the compilation can be executed correctly
The reason for that is because GCC 10 defaults to -fno-common, you can see that:
https://gcc.gnu.org/gcc-10/porting_to.html
Das klappt nicht
bla.txt
Fresh install on Centos7 from branch master:
Editing an image header with iraf command hedit sets file creation date to a date 10 years ahead (in my case to Feb 2031). Same with the keywords DATE and IRAF-TLM (set to 2031-02-27T13:22:05).
timedatectl on system-level and IRAF commands date and time show correct values.
Reverting to iraf-2.16.1-2018.11.01 there is no such (mis)behavior and the dates are set to correct values.
Any idea how to fix this?
Frank
Got this working on an M1 Mac using community iraf. The python was from anaconda and was intel! (Even though the iraf was a native build)
I found for PyRAF to work after build/install I had to do
export iraf=/Users/karl/GIT/iraf
export IRAFARCH=macos64
However this prevents 'ecl' from working! Not sure what the answer is here. ecl gives the error:
/Users/karl/GIT/irafbin.macos64/ecl.e not found
/Users/karl/.iraf/bin/ecl: line 156: /Users/karl/GIT/irafbin.macos64/ecl.e: No such file or directory
/Users/karl/.iraf/bin/ecl: line 156: exec: /Users/karl/GIT/irafbin.macos64/ecl.e: cannot execute: No such file or directory
I also note it gave a warning about aqutil not being available.
I downloaded the source code and tried to installed it on my Fedora 30 (beta) system. I ran the installation script as root:
$ sudo ./install
The errors are as follows:
Checking for existing commands directory... [ OK ]
Editing Paths
-------------
[ OK ]
Editing iraf/imdir/cache paths into system files ... [ FAIL ]
*** File mkiraf.sh not found.
*** File cl.sh not found.
*** File ecl.sh not found.
*** File setup.sh not found.
*** File setup.csh not found.
Setting mode for $imdir to 0777 [ OK ]
Checking cache permissions ... [ OK ]
Creating File Links
-------------------
Checking for /iraf symlink ... ln: failed to create symbolic link '/iraf' -> '': No such file or directory
[ FAIL ]
Checking /usr/include directory ... [ OK ]
Creating <iraf.h> symlink ... [ FAIL ]
Creating iraf command links in local bin dir ... [ OK ]
Marking system update time hlib$utime ... touch: cannot touch '/usr/local/iraf/unix/hlib/utime': No such file or directory
[ OK ]
Creating Graphics Device Files
------------------------------
Checking /usr/local/lib directory ... [ OK ]
Creating /usr/local/lib/imtoolrc link ... [ FAIL ]
Creating X11IRAF links ... [ OK ]
What's the problem?
The install
scripts says that it has ended with no errors but the login files initialization has failed. There is no ~/.login file. Also, either the instructions are wrong or something else is.
I was wondering why would you compile after the installation? Did I missed something?
./install
====================================
IRAF v2.16 Installation
====================================
Welcome to the IRAF installation script. This script will first
prompt you for several needed path names. Once the installation is
complete, you will be allowed to do some minimal system configuration.
For each prompt: hit <CR> to accept the default value, 'q' to quit,
or 'help' or '?' to print an explanation of the prompt.
========================================================================
===================== Query for System Settings ======================
========================================================================
New iraf root directory (/home/observer/.iraf):
Default root image storage directory (/home/observer/.iraf/imdir):
Default root cache directory (/home/observer/.iraf/cache):
Local unix commands directory (/home/observer/.iraf/bin/):
Terminal types: xgterm, xtermjh, xterm, etc.
Enter default terminal type (xgterm):
========================================================================
===================== Verifying System Settings ======================
========================================================================
Hostname = soaric8 OS version = Linux 3.10.0-693.el7.x86_64
Architecture = linux64 HSI arch = linux64
Old iraf root = /home/observer/.iraf New iraf root = /home/observer/.iraf
Old imdir = /home/observer/.iraf/imdir New imdir = /home/observer/.iraf/imdir
Old cache = /home/observer/.iraf/cache New cache = /home/observer/.iraf/cache
Local bin dir = /home/observer/.iraf/bin/
Proceed with installation? (yes):
========================================================================
========================= Begin Installation =========================
========================================================================
Checking for existing commands directory... [ OK ]
Editing Paths
-------------
Editing the user login/rc files ... [ OK ]
Editing iraf/imdir/cache paths into system files ... [ OK ]
Checking imdir permissions ... [ OK ]
Checking cache permissions ... [ OK ]
Creating File Links
-------------------
Creating <iraf.h> symlink ... [ OK ]
Marking system architecture ... [ OK ]
Creating iraf command links in local bin dir ... [ OK ]
Marking system update time hlib$utime ... [ OK ]
Creating Graphics Device Files
------------------------------
Creating $HOME/.imtoolrc link ... [ OK ]
Creating X11IRAF links ... [ OK ]
Initializing Login Files
------------------------
Creating global login.cl and uparm directory .... [ FAIL ]
========================================================================
Congratulations! IRAF has been successfully installed on this system.
========================================================================
To begin using IRAF you can simply type
% source ~/.login
% cl
From any directory to use the global login files created in the
/home/observer/.iraf directory. If you wish to have a login.cl/uparm that
is specific to a particular directory, you will need to type
% mkiraf # create a login.cl file (needed once)
% cl # start IRAF
Additional user information can be found at the iraf community web site:
https://iraf-community.github.io
Please create an issue on https://github.com/iraf-community/iraf/issues
in case of problems.
========================================================================
================ Installation Completed With No Errors ===============
========================================================================
Good evening Ole and collaborators,
I was reading the tutorials to understand how could I use IRAF in a Windows system and I found these forum: http://www.iac.es/sieinvens/siepedia/pmwiki.php?n=HOWTOs.IrafCygwin
I followed all the instructions and I'm proud of myself, because all the steps went sucessfully. But I don't know what to do next. I currently have installed IRAF, but how can I use Cygwin to actually runs it?
The command "mkiraf" or "cl" doesn't actually run IRAF.
I was reading also other foruns here, like this:
04/17/2015 10:18PM (Read 4409 times) |
Hi all,I'm installing IRAF under Cygwin using the following guide http://www.iac.es/sieinvens/siepedia/pmwiki.php?n=HOWTOs.IrafCygwin After getting stuck on 'mkiraf' for a while I finally got it to work.
I would like to know how he did to actually run IRAF. I'm a total newbie in informatics and also in IRAF.
Is it possible to convert the wavelength scale to velocity scale for a MEF fits cube with dimensions [x,y,lambda] ?
When running disptrans,
disptrans diff_spec.fits test.fits angs
I get the error
Warning: Image header parameter not found (EXTVER)
I tried
hedit diff_spec.fits EXTVER 3 add+
But got the same error when running disptrans again.
Good day,
I faced some problems building latest IRAF release from the source on Kubuntu 20.04. I made all the steps according to the installation instruction, everything seems to work fine until I run $ make sysgen 2>&1 | tee build.log and get multiple errors like this:
In file included from irafpath.c:11:
/usr/local/iraf/include/iraf.h:1:1: error: expected identifier or ‘(’ before ‘.’ token
1 | ../unix/hlib/libc/iraf.h
| ^
In file included from prwait.c:11:
/usr/local/iraf/include/iraf.h:1:1: error: expected identifier or ‘(’ before ‘.’ token
1 | ../unix/hlib/libc/iraf.h
| ^
prwait.c:31:11: error: ‘MAXPROCS’ undeclared here (not in a function)
31 | } prtable[MAXPROCS];
Complete build.log is attached.
build.log
I believe these errors probably occur due to wrong gcc definitions but need some help to solve them. Thanks!
When compiling the following code on an x86_64 Linux platform (f.e. Debian Squeeze) from the original binary distribution:
File: fpe.x
task fpe = t_fpe
procedure t_fpe()
real x, y, z
begin
call eprintf ("Begin FPE Test ...\n")
x = 1.0
y = 0.0
z = x / y
call eprintf ("End FPE Test ...\n")
end
Instead of a floating point exception, one sees (even without optimization)
cl> xc -/O0 fpe.x
cl> task $fpe = fpe.e
cl> fpe
Begin FPE Test ...
End FPE Test ...
This shows, that in 2.16.1, the FPE handling is incorrect. No idea whether this shoud be fixed, however.
Ref: This is taken from the IRAF V2.14 announcement:
3.1.1 OPTIMIZATION CHANGES FOR MAC OS X
At some point in the OS X 10.4 upgrade cycle, the original changes made in the V2.13 release to the floating-point exception handling (which used to work) were being silently disabled. This was traced to a GCC compiler optimizer bug of some kind, meaning that IRAF code compiled with ANY level of optization would fail to trap any divide-by-zero, overflow, etc exceptions in the system. After a lengthy and detailed search, the exact file triggering this error has not been located.
As a result, the initial V2.14 release for Mac OSX systems (Intel and PPC) were compiled WITHOUT OPTIMIZATION. Benchmarks indicate this penalizes the performance of code by only about 6% in overall usage, less depending on the specific task.
It was felt that the ability to properly trap errors and produce correct results was more important than saving typically a second or two during normal processing. The default compiler flags for this platform have been set so that outside developers or users compiling locally will likewise produce the correct error-trapping code.
An example program one can use to see whether FPE handling is working properly would be something like:task fpe = t_fpe procedure t_fpe() real x, y, z begin call eprintf ("Begin FPE Test ...\n") x = 1.0 y = 0.0 z = x / y call eprintf ("End FPE Test ...\n") end
This can be compiled as
% xc fpe.x # no optimization (default) % xc -/O3 fpe.x # compiled w/ optimization
Note however that the second example will execute to completion rather than stop with the expected "floating point divide by zero" message. The value of the 'z' variable is undefined, and the task may appear "hang" in some instances. Users are STRONGLY DISCOURAGED from changing
the optimization level on their own until this problem is better understood.
Taken from iraf.net#1468030:
When 32 and 64 bit executables are mixed, WCS coordinate conversion in interactive grapics is wrong.
@iraf writes there:
A graphics WCS structure was changed in the 64-bit port and this is (...) due to an incompatibility between the 32-bit IGI and the 64-bit CL binary which does the graphics.
The problem is that the bit width of the task executable has to match the bit width of the CL executable.
For example, STSDAS is only available for 32 bit, so stsdas.graphics.stplot.igi
needs a 32 bit CL interpreter. With a 32 bit CL interpreter, the 64 bit tasks (f.e. images.imcoords.ccmap
) however will then have the same problem.
I've tried to compile IRAF package from github and I've got multiple definition error.
/usr/bin/ld: xppcode.o:/home/nastya/iraf/unix/boot/spp/xpp/xppcode.c:109: multiple definition of `errflag'; xppmain.o:/home/nastya/iraf/unix/boot/spp/xpp/xppmain.c:21: first defined here collect2: error: ld returned 1 exit status make: *** [Makefile:19: sysgen] Error 1
My operating system is Manjaro Linux. I use gcc (GCC) 10.1.0.
I've also tried to compile this package on other LINUX distros (on Ubuntu, Debian) and everything was fine.
The problem appears only on Arch. I also tried to use different versions of GCC (5.5 and 7.5.0) and it doesn't solve the problem.
I also attach my build.log file.
I appreciate any help and advice.
build.log
I am accessing my university's server to use IRAF. I have some .fits images uploaded to the server and I am trying to open them but it always says ERROR: Cannot open image. I think I created a new login file, which created the issues. How can I fix this?
Hello,
I am attempting to install IRAF on my Mac with little experience with a computer thus far. Following the instructions on the installation page, I executed make sysgen 2>&1 | tee build.log, but now I am hit with an error that says:
file too small (length=8) file '/Users/Ulrich/iraf-2.16.1-2018.11.01/lib/libsys.a' for architecture x86_64
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
Does anyone know what this means/could help with figuring this out? Anything would be appreicated.
Best,
Raphael
IRAF bug report: Very easy two character fix
anaconda3/envs/iraf27/iraf/noao/obsutil/src/findgain.cl
Line 36: (was) file flatdiff, zerodiff, statsfile
Line 36: (to) file flatdif, zerodif, statsfile
Lets this function work again.
Cause: The variables are declared with one spelling, the code
attempts to work with a slightly different spelling. This
is one fix: may choose to alter the few more lines to use
the original spelling.
test:
findgain flat1.fits flat2.fits zero1.fits zero2.fits section="[650:750,650:750]"
where the fits files are zeros/flats at least this big.
Before fix:
blows up.
After fix:
returns good results.
The exact error is:
Checking for /iraf symlink ...
ln: failed to create symbolic link '/iraf' -> '': No such file or directory
I think because of this error, the next step in the installation is not possible:
export PATH=/path/to/iraf/bin/:$PATH
Inside the local folder, there is no folder called bin. Any idea how to fix this error?
I'm using Peppermint OS which is a Ubuntu derivative.
In iraf.net#1469887, @fakahle writes:
I need to to recompile vocl to enlarge the dictionary but recompiling fails on linux64 with many linker errors referring to (
../unix/bin.linux64/libos.a relocation R_X86_64_32 against '.rodata' can not be used ... recompile with -fPIC
).Which files have to be changed to make it compile and link again?
By the way: compiling IRAF for linux64 from source fails when touching readline ... so that wasn't an option.
Frank
Hi Frank (hopefully I found the correct github user account): The error you observe appears since the NOAO 2.16.1 binary distribution for Linux is compiled without -fpie
, but newer Linux distributions default to use PIE for the executables. Therefore, the old object files cannot be used anymore and need to be recompiled. This was also reported as iraf/iraf-v216#85.
This repository contains a version of IRAF that compiles without problems, so you could give it a try. A binary version is contained in the latest Ubuntu distribution (18.04), and in the current Debian "testing" (upcoming Buster). You may also try out the prerelease in this repository which contains a binary release.
Note that vocl
has been removed from the distribution; use ecl
instead. In case of questions, feel free to open an issue here.
Best regards
Ole
Hi
I am trying to install IRAF on fedora29, but after installation by the help of this link (https://www.astr.tohoku.ac.jp/~akhlaghi/irafinstall.html), when I enter cl in the terminal, I get this error:
/iraf/iraf/bin.linux64/vocl.e: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
I have tried different things without any answer. I would be very grateful for any help.
Thanks
Azim
This is copied from iraf.net#1469856 by JCP:
Dear IRAF gurus,
I have a script which repeatedly calls
pvector
and is supposed to put severalpvector
plots in one output FITS file. It works fine on one of my computers (a laptop), but fails on several other computers. Each computer is running Linux Mint 18.0 (or 18.3) and each has IRAF version 2.16.1.I want my students to be able to use the script without me so it's been driving me nuts.
Here are the first 3 lines of the script (only two lines are needed to reproduce failure):
pvector N7727Rbsr.fits xc=1090.91 yc=1067.62 width=1 theta=235 length=140 vec_out=RbsrPVs2 out_typ=image pvector N7727Rbsr.fits xc=1088.91 yc=1067.62 width=1 theta=235 length=140 vec_out=RbsrPVs2 out_typ=image pvector N7727Rbsr.fits xc=1089.91 yc=1067.62 width=1 theta=235 length=140 vec_out=RbsrPVs2 out_typ=image
Here is the behavior when it fails:
ecl> cl < pveesimgR.cl ERROR: Error opening output image. called as: `cl ()'
It does create a FITS file, but it only contains one, 1-D image instead of multiple FITS extensions.
And when it succeeds (on the laptop), it has no error message and produces exactly the kind of multi-extension FITS file I'm expecting. I have tried the script with
append=yes
on each line and it doesn't help. I also useepar
to setappend=yes
in thepvector
pars.I suspect the issue lies with cfitsio or some other libraries but I don't know. Any ideas?
thanks for any help,
Jason
Hi,
I have IRAF installed on my machine (version 2.16) and I am at the moment trying to set up my IRAF environment (with mkiraf, xgterm..the usual) but I am getting a "if: Expression syntax" error as I type cl into the xgterm window. Anyone encountered this error before?
Thanks,
Rach
Not so much an 'issue' - as it worked - but you kindly sent me the trick on twitter to build your branch on my M1 Mac and so I thought I would report back.
Commands
git clone https://github.com/olebole/iraf.git
cd iraf
git checkout macarm64
PATH=${HOME}/.iraf/bin:$PATH
./install
make macos64
make sysgen
It built and worked - quite impressive! I noticed a few warnings along the lines of
ld: warning: could not create compact unwind for _wfqsct_: registers 74 and 75 not saved contiguously in frame
In one of my other projects I found the solution to this was to use the -Wl,-no_compact_unwind
flag - not that I know what it does!
Does IRAF work on the new Apple M1 machines? I'm having problems getting the cl to start up with an "iraf27" environment created in astroconda on an M1 based MacBook Pro.
The automatic deployment in #49 does not deploy Linux binaries. The cause is that the binaries produced by Ubuntu are not flawlessly running on Fedora and Redhat systems:
./bin/ecl.e: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./bin/ecl.e)
./bin/ecl.e: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by ./bin/ecl.e)
cl> imstat dev$pix
./bin.linux64/x_images.e: /lib64/libcurl.so.4: no version information available (required by bin/iraf/bin.linux64/x_images.e)
# IMAGE NPIX MEAN STDDEV MIN MAX
dev$pix 262144 108.3 131.3 -1. 19936.
Therefore, we need to build them on an old Fedora-like system. One way would be (64 bit only):
schroot into a Scientific Linux 6
chroot
as root:
# yum install sl-release-scl
# yum install devtoolset-7 git tar perl gzip flex libcurl-devel expat-devel compat-readline5-devel
see also http://linux.web.cern.ch/linux/scientific6/docs/softwarecollections.shtml
as user
$ source /opt/rh/devtoolset-7/enable # or scl enable devtoolset-7 bash
$ export CARCH="-fpie"
$ export IRAFARCH=linux64
$ export XC_LFLAGS=-L/usr/lib64/readline5
$ build_tmp=$(mktemp -d -t irafbuild.XXXXXXXXX)
$ mkdir -p ${build_tmp}/bin
$ PATH=${build_tmp}/bin:$PATH
$ ./install --term xterm --bindir $build_tmp/bin --cache $build_tmp/cache --imdir $build_tmp/imdir --root $(pwd) < /dev/null
$ make ${IRAFARCH}
$ make sysgen
Testing
$ ./test/run_tests
Create tarball
$ TARFILE=iraf.${IRAFARCH}.tar.gz
$ git checkout unix/hlib/
$ tar --exclude ${TARFILE} -czf ${TARFILE} *
and then upload the created tarball.
With docker, use the following docker file:
FROM cern/slc6-base
RUN yum -y install sl-release-scl
RUN yum -y install devtoolset-7 perl flex libcurl-devel expat-devel compat-readline5-devel
With this dockerfile, one can create the image and run the build:
$ docker build -it slc6-iraf-build .
$ docker run \
--mount type=bind,source=`pwd`,target=/build/iraf \
slc-iraf-build \
sh -c 'cd /build/iraf && \
export TERM=xterm; \
export IRAFARCH=linux64; \
export CARCH=-fpie; \
export XC_LFLAGS=-L/usr/lib64/readline5; \
./install < /dev/null; \
make linux64 && \
source /opt/rh/devtoolset-7/enable && \
make sysgen'
I need, however, help here to run this automatically on a cloud service (like cirrus CI) and upload the tarball when a new git tag is created.
Hi,
Does this version of IRAF support tab auto-completion and up-arrow history search? It does not work on my Fedora 29 environment. I am very new to this software and I don't know if it simply does not support those or I need to install some more packages to achieve those features.
Any ideas on that?
Thanks,
Jiaqing
Hi guys.
Thank you for keeping IRAF alive!!!!
I'm trying to install IRAF on my fresh MacBook (High Sierra 10.13.6). I followed the instructions provided by you, and everything went smoothly. Unfortunately, when I tried to call IRAF by typing iraf I got an error saying that I don't have xgterm, while calling it by cl works fine.
Could you please help me with this issue?
Thanks in advance.
I am attempting to install IRAF on an RPi running Ubuntu Mate 16.04.3 with an ARMv7 processor. I guess the first question is will this build of IRAF run on an ARM architecture?
I have attempted to install following the README.install build from source directions:
% tar zxf /<path>/iraf-src.tar.gz # unpack tar file
% cd iraf.v2161 # go to the IRAF directory
% ./install # execute the install script
% make <arch> # where <arch> is 'linux', 'macintel', etc
% make sysgen
./install initially completes with errors
Editing Paths
-------------
[ OK ]
Editing iraf/imdir/cache paths into system files ... [ FAIL ]
*** File setup.csh not found.
Checking File Permissions
-------------------------
Checking iraf file permissions ... [ FAIL ]
*** File generic.e not found.
*** File mkpkg.e not found.
*** File rmbin.e not found.
*** File rmfiles.e not found.
*** File rpp.e not found.
*** File rtar.e not found.
*** File wtar.e not found.
*** File xc.e not found.
*** File xpp.e not found.
*** File xyacc.e not found.
*** File sgidispatch.e not found.
*** File /home/fhire/Downloads/iraf-master/unix/bin.linux/sgi2*.e not found.
Checking imdir permissions ... [ OK ]
Checking cache permissions ... [ OK ]
But the .e files are created after building in step 3. Trying ./install again only returns one error
Editing Paths
-------------
[ OK ]
Editing iraf/imdir/cache paths into system files ... [ FAIL ]
*** File setup.csh not found.
To see what would happen I still tried making an IRAF directory and running mkiraf. After creating the LOGIN.CL file cl returns
ERROR: No /iraf/iraf.v2161/iraf-master//bin.linux/vocl.e binary found.
Please advise on any steps I may be missing. Thank you!
I want to stack multiple images of a particular galaxy using IRAF but the central coordinates of the images are different. How can I stack them properly so that they have the same WCS coordinates and same central coordinates? Any help is appreciated.
Hi all,
I'm trying to install the latest release version on a new laptop (running a fresh install of opensuse leap 15.1), following closely the instructions from the INSTALL.md.
After running for a while, this is what it ends up with:
...
----------------------- XYACC --------------------------
miipa2_': /opt/iraf/sys/osb/miipak32.c:93: undefined reference to
achtxl_'achtdl_' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /opt/iraf/sys/osb/miipak32.c:87: undefined reference to
achtrl_'achtll_' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /opt/iraf/sys/osb/miipak32.c:81: undefined reference to
achtil_'achtsl_' /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /opt/iraf/sys/osb/miipak32.c:75: undefined reference to
achtcl_'(full build.log attached).
I've tried both the release version (as tar.gz and zip file) and the latest master branch, all with the same outcome.
Up until then, this is what I ran (all as root):
cd /opt
wget ...zip
unzip v2.16.1+2018.11.01.zip
mv iraf-2.16.1-2018.11.01 iraf
cd iraf
./install
make linux64
export PATH=/opt/iraf/bin/:$PATH
make sysgen 2>&1 | tee build2.log
Any suggestions on what might have gone wrong? Weird enough, running
nm /opt/iraf/lib/libvops.a | grep achtxl
finds a reference to the problematic function just fine...
Thanks
Hello - I am running the command zerocombine Bias* in the directory which contains the Bias images, but I receive the error:
Warning: Cannot open file (/home/mydirectory/flarecam/flarecam.dat)
ERROR: No images to combine
"pclip=pclip, grow=0)"
line 47: ccdred$zerocombine.cl
called as: `zerocombine (input=Bias*)'
However, /home/mydirectory/flarecam/flarecam.dat does not exist. My flarecam.dat file is in /data/mydirectory/flarecam/flarecam.dat.
Also, the paths in ccdsetint.par and imdccdred.par are /data/jefi4084/flarecam/flarecam.dat , not /home/mydirectory/flarecam/flarecam.dat. So I'm not sure why Iraf is trying to go to this path.
I've been trying to install IRAF 2.16.1+2018.11.01 using this documentation here.
I'm using Manjaro KDE Plasma (64 bit architecture). I have the following dependencies installed.
flex 2.6.4-3 core
A tool for generating text-scanning programs
python-pycurl 7.43.0.6-1 extra
A Python 3.x interface to libcurl
lib32-curl 7.73.0-1 multilib
An URL retrieval utility and library (32-bit)
curl 7.75.0-1 core
An URL retrieval utility and library
lib32-expat 2.2.10-1 multilib
An XML Parser library
expat 2.2.10-2 core
An XML parser library
lib32-readline 8.0.0-1 multilib
GNU readline library (32-bit)
readline 8.1.0-2 core
GNU readline library
apart from the gcc
, perl
, and make
packages.
Please let me know if I'm missing something -- package names in Arch are different from those for Ubuntu I feel. I'm attaching my build.log.
The bottom of the file reads
197 | }
| ^
getproc.c: In function ‘uid_executing’:
getproc.c:24:29: warning: ‘%s’ directive writing up to 255 bytes into a region of size 250 [-Wformat-overflow=]
24 | sprintf (fname, "/proc/%s", direntp->d_name);
| ^~
getproc.c:24:6: note: ‘sprintf’ output between 7 and 262 bytes into a destination of size 256
24 | sprintf (fname, "/proc/%s", direntp->d_name);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:19: sysgen] Error 1
And of course, this means that when I run the tests, I get
IRAF shell ecl.e not found
stat: cannot statx '/home/aayush/Documents/iraf-2.16.1-2018.11.01/bin.linux64/ecl.e': No such file or directory
Fresh install of IRAF and external package CTIO.
Main IRAF make sysgen and CTIO mkpkg on ubuntu 16.04 (AMD 64).
MACH and IRAFARCH = linux64
fft1d enters an endless cpu busy state.
Here is the first level of results from the ./run_tests function. I'm doing this on a linux64 version. I can post more information if this is a real problem and not something silly I'm doing wrong.
In the installation description there is an instruction to call ./install (with options...) in the local directory after untarring the iraf.tar.gz. However, there are no commands ECHO, BOLD, PROMPT etc used but not defined in that bin/sh, and just a ton of error messages on that fact is issued. There are some lower-case equivalent standard shell command in Linuxes, but not those misspelled once. I propose to define ECHO, BOLD and so on within the install shell script so the installation can proceed.
I'm using WSL to install IRAF. I'm following these instructions. I have no difficulty with downloading and unpacking the package. The package is located
/home/young_kindaichi
Next I have taken the following code:
cd /home/young_kindaichi//iraf-2.16.1-2018.11.01
./install
Which now shows the following window
====================================
IRAF v2.16 Installation
====================================
Welcome to the IRAF installation script. This script will first
prompt you for several needed path names. Once the installation is
complete, you will be allowed to do some minimal system configuration.
For each prompt: hit to accept the default value, 'q' to quit,
or 'help' or '?' to print an explanation of the prompt.
As given in the manual that is "The script will prompt you for the path to the default image directory, the cache directory, and the binary files directory. Usually, you can everywhere use the default settings when asked from the install script".
I used the following code:
New iraf root directory (/home/young_kindaichi/iraf-2.16.1-2018.11.01):
Default root image storage directory (/home/young_kindaichi/.iraf/imdir):
*** The definition of imdir cannot be the same as the iraf
*** root, please choose a different directory. Ideally this
*** should be some large data area on your system or a user
*** data area such as /home, /users, /u1, etc.
Default root image storage directory (/home/young_kindaichi/.iraf/imdir):
What do I do now? Please consider that I'm a beginner to Linux and know nothing about it. I can follow what you will say. Please help me
Hi everyone.
I am not able to install iraf on my Catalina.
I followed this guide: https://yucelkilic.com/irafv2_16_1_snapshot_installation_on_macos_mojave_10_14_6/?fbclid=IwAR1WNNm2GTTD29ik0TbemKgUU3FOVJejU3Qz3cacZ_aNoj2PN7TQSiDVRoM , but it doesn't work at all. For instance, I am not able to use mkiraf. When I try to do >which mkiraf it returns me 'mkiraf is not found', I don't understand why.
Any solution?
I have installed Iraf using this guide : https://iraf-community.github.io/install.html
I need to install an external package (sptable) but when I go the "extern" directory and try the command: "$ make self_update" or "$ make sptable" I get this message error:
"make: *** No rule to make target 'sptable (or self_update)'. Stop"
How can I do?
Thanks in advance
Dear All,
I have installed IRAF on Fedora (https://iraf-community.github.io/install). But there is not stsdas and table package in it. How can I install stsdas and table packages ?
Thanks in advance
Best Regards
Azim
I am trying to apply my flat images to my science images with ccdproc *.fits, but when I run this command, I receive this error. The error does not specify what subset is wrong. I would appreciate your help.
This is a copy if iraf/iraf-v216#131 (since it was set to read-only by @iraf):
On many systems, background jobs don't work well:
cl> bases 233 &
[1]
cl> BKG ERROR: new CL installed; logout and try again
This is independent of the used shell (cl.e
/ecl.e
/vocl.e
).
The reason is that in pkg/[ve]cl/bg.c
, the pointer of the dictionary in the new executable is directly compared with that pointer in the parent (transferred via the background status file).
There is however no guarantee that the pointer to statically allocated memory is the same in two subsequent calls of a program! Specifically with PIE enabled systems (Debian Stretch, newer Ubuntu versions) this is not the case anymore. And a discussion on iraf.net suggests that this is also not the case for newer MacOS versions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.