This HTML automatically generated with rman for NEMO
Table of Contents


ccdfits - convert an image to a fits file


ccdfits in=image out=fits [parameter=value]


ccdfits writes a fits file to disk. The input must be in image(5NEMO) format, the output will be in standard fits(5NEMO) format on disk.

An experimental version of this program that uses the standard cfitsio(3) library is known as ccdfitsio(1NEMO) .

A peculiar option is the use of the fitshead= keyword. In this mode the header of the output fits file will be replaced with that of the filename in the fitshead= keyword. This is dangerous, it is the responsility of the user to ensure the dimensions (NAXIS,1,2,3) and BITPIX of the two are the same, or else an illegal FITS file will be created. The program scanfits(1NEMO) is used behind the scenes to achieve this feat.


The following parameters are recognized in order; they may be given in any order if the keyword is also given. Use --help to confirm this man page is up to date.
input file, in image(5NEMO) format [no default].
output file, will be in fits(5NEMO) format [no default].
Bitpix applied for scaling. Options are 16, 32 or -32. [default: -32].
Scaling factors for CDELT keyword. If the second or third number is omitted, it is repeated from the previous number. [default: 1,1,1].
Scaling factors for intensity (should only be used for BITPIX > 0) [default: 1,0].
Name of your object/image. By default, the Object name inherited from the original. [default: none].
Comment using the COMMENT keyword. [default: none]
Use CD matrix instead of CDELT? [t/f]. Default: f.
Blocking factor (multiplicity of blocksize in terms of 2880 bytes) used when writing the fits file. [default: 1].
Reference map or cube (a fits file) from which the WCS is inherited. It has to match the output cube which is created. Deprecated. By default none is used.
Use these pixels (2 or 3 need to be given, depending if a map or cube is output) as reference pixel, instead of the one defined in the reference map. By default not used.
Use these values (2 or 3 need to be given, depending if a map or cube is output) as value at the reference pixel, instead of the one defined in the reference map or defined by the input. By default not used.
Use these values (2 or 3 need to be given, depending if a map or cube is output) as pixel increments, instead of the one defined in the reference map or defined by the input. By default not used.
If no reference map used, this keyword can be used to enforce a more reasonable axis descriptor (RA/DEC/VEL) for astronomical data packages which cannot handle theory data too well (e.g. miriad, karma etc.). We also add CUNITn and BUNIT (albeit in JY/PIXEL). See also ccdsky(1NEMO) for a smart scaling placing the object at a computed distance. [Default: f].
Write dummy (NAXISn=1) axes too? If not, axes with length 1 are written last. Default: t
Number of dummy comment lines to add to a fits header to test I/O routines. Default: 0
This is a hack. If used, this will be the value of NAXIS written to the FITS file. Only useful of dummy=f and your FITS reader still cannot handle dummy trailing axes. For ndim=4 the axis will be labeled as STOKES, which is useful for packages such as CASA. Default: not used.
If supplied, this will override the BUNIT in the fits header. Common values are JY/BEAM (if a beam is present), JY/PIXEL, or K.
Select this image (1 being the first) to grab in an file with multiple Image’s. [Default: 1]
If used, the header of this fitsfile will be used instead of the one from the converted input image. Default; not used.


Common popular rest frequencies in astronomy are:
       1.420405751786  GHz      HI
     115.271204        GHz      CO(1-0)
     230.538           GHz      CO(2-1)
    1900.5369          GHz      [CII] 2P3/2-2P1/2
     656.4614          nm       H-alpha


To convert an image to unsigned 16 bit integers use the following math:
        a = "(a < 0 ? a+65536 : a)" 
or using ccdmath:
        ccdmath in=map1 out=map2 fie="iflt(%1,0,%1+65536,%1)"

A reference map (refmap=) does not have to be a full FITS cube. If the NEMO fitsio(3NEMO) routines are used, the header will suffice, since the data is never needed. You can see scanfits(1NEMO) for this:

    scanfits in=cube.fits out=cube.fitshdr select=header
    ccdfits ... refmap=cube.fitshdr ...

Fits Tapes

For historic amusement, but completely irrelevant for the 21st Century:

In the old days (somewhere before the 90s) there were actually software systems that could only directly read FITS files from tape, not from disk. The disk-fits file must be written to tape in ’raw’ format with a block length of 2880 bytes, which can be done with dd(1) :

    % dd if=fits.dat of=/dev/rmt0 obs=2880

Under VMS the tape has to be mounted with the blocksize:


and the file on disk must be recorded to have a 2880 blocksize:


In case FTP is used to transfer files, remember that FTP cannot handle files with this format (some FTP’s at least). So it’s best to have them in regular 512 byte blocks before moving, and at 2880 blocksize when using programs such as DISKFITS in the VMS version of GIPSY.

You could also try the following command procedure on VMS (Bob Hanisch, ST ScI):

 $!   FIXFITS filename
 $!   FIXFITS CONVERTs a file to the desired AIPSFITS disk format
 $ create/fdl=sys$input: temp.dat
       SIZE                    2880
       FORMAT                  FIXED
 $!                                      now convert - old fails some
 $! convert/append ’P1’ TEMP.DAT
 $!                                      now convert - new method
 $ copy ’P1’ TEMP.DAT/overlay
 $ rename temp.dat ’P1’
 $!                                      clean up
 $ purge ’P1’

See Also

ccdsky(1NEMO) , ccdfitsio(1NEMO) , scanfits(1NEMO) , snapccd(1NEMO) , ccdmath(1NEMO) , iofits(1NEMO) , image(5NEMO) , fits(5NEMO) , dd(1)





~/src/pjt/image      ccdfits.c ccdfits.1

Update History

29-apr-88    V1.0: created, calling WERONG fortran subroutines    PJT
2-jun-88    V1.1: new filestruct, renamed wfits to ccdfits       PJT
1-oct-90    V2.1: new fitsio and keyword comment=, scale now 1    PJT
11-oct-90    V2.2: added blocking= factor                         PJT
nov-92         documented the FITFITS VMS procedure                PJT
dec-99         some more documentation                 PJT
apr-01        V3.0 reference map/pixel to inherit a WCS from      PJT
6-may-02    V4.0b properly implemented dummy=     PJT
4-jan-04    V5.2 docomented the recent changes to crval/cdelt/crpix=    PJT
20-jun-09    V5.4 added select= to grab not the first image      PJT
26-may-2016     V5.8 added CUNITn and BUNIT and better parameters for radecvel=true    PJT
27-dec-2020    V6.3 added fitshead=    PJT
22-may-2021    V6.3d:  object inherited from Image    PJT
31-dec-2022    V6.6: add bunit=    PJT

Table of Contents