pamtofits - convert a Netpbm image into FITS format
pamtofits [-max f] [-min f] [pamfile]
This program is part of Netpbm(1).
pamtofits reads a PNM or PAM image as input and produces a FITS (Flexible Image Transport System) file as output. The resolution of the output file is either 8 bits/pixel, or 16 bits/pixel, depending on the value of maxval in the input file. If the input file is a PBM or PGM image, the output file consists of a single plane image (NAXIS = 2). If instead the input file is a PPM image, the output file will consist of a three-plane image (NAXIS = 3, NAXIS3 = 3).
-min and -max tell pamtofits what "physical values" zero and maxval sample values, respectively, in the input image represent. Physical values are a FITS concept. pamtofits sets up the BSCALE and BZERO FITS header cards to indicate this information.
The default for -min is 0 and for -max is the maxval, which means if you don't specify these options, the FITS physical values are in fact the original Netpbm sample values.
pamtofits always sets up the FITS header DATAMIN and DATAMAX cards to indicate that the highest physical value in the image is the one corresponding to the Netpbm maxval and the lowest is that corresponding to Netpbm zero. This isn't really how those cards are supposed to be used, since the input image doesn't necessarily contain the full possible range of sample values. It is a conservative approximation.
The FITS specification does not specify which data in the file corresponds to which pixel in the image (i.e. which bytes are the top left pixel, etc.). Netpbm uses the common sense, most popular arrangement: row major, top to bottom, left to right. That means in a 10 wide by 20 high image, the first 10 pixels in the file are the top row and the last 10 are the bottom row. Within each row, the first pixel is the leftmost one and the last pixel is the rightmost one.
Netpbm has always done that, since it first understood the FITS format in 1989, so it is something of a de facto standard. Nobody reported trouble with that until 2008.
However, at least some versions of ImageMagick and Gimp (as seen in 2008) use bottom to top order, so if you use on of these to display a FITS image generated by pamtofits, it will appear upside down. To fix that, use pamflip -topbottom on the image before feeding it to pamtofits.
Since 2008, people have noted that NASA distributes FITS files with bottom to top order.
pamtofits was originally pnmtofits and did not handle PAM input. It was extended and renamed in Netpbm 10.30 (October 2005).
pnmtofits was itself an extension of pgmtofits, which was added to Pbmplus in 1989.