001    /*
002     * @(#)SaveFits.java   $Revision: 1.1 $ $Date: 2002/05/03 11:52:24 $
003     *
004     * Copyright (C) 2000 European Southern Observatory 
005     * License:  GNU General Public License version 2 or later
006     */
007    package org.eso.fits;
008    
009    import java.lang.*;
010    import java.util.*;
011    import java.io.*;
012    import java.text.*;
013    
014    /** SaveFits class provides a static main method fto test writing
015     *  of FITS cfiles.
016     *  @version $Revision: 1.1 $ $Date: 2002/05/03 11:52:24 $
017     *  @author  P.Grosbol, DMD/ESO, <pgrosbol@eso.org>
018     */
019    public class SaveFits{
020        /** Static method for testing the FITS class library.
021         *
022         *  @param argv   array of arguments i.e. options of FITS files
023         */
024        public static void main(String[] argv) {
025            System.out.println("Start SaveFits");
026            if (argv.length != 1) {
027                System.out.println("Error: must have one argument, input file");
028                System.exit(1);
029            }
030    
031            FitsFile file = null;
032            try {
033                file = new FitsFile(argv[0]);
034            } catch (FitsException e) {
035                System.out.println("Error: is not a FITS file >" + argv[0] + "<");
036                System.exit(-1);
037            } catch (IOException e) {
038                System.out.println("Error: cannot open file >" + argv[0] + "<");
039                System.exit(-1);
040            }
041    
042            int noHDU = file.getNoHDUnits();
043            System.out.println("FITS file has " + noHDU + " HDUnits");
044    
045            FitsHDUnit hdu = file.getHDUnit(0);
046            FitsHeader hdr = hdu.getHeader();
047            FitsKeyword kw = hdr.getKeyword("DATE");
048            kw.setValue(new Date());
049            kw.setComment("Date of writting YYYY-MM-DD");
050            kw = new FitsKeyword("ANY", 124870921578.123,"Just a number");
051            hdr.addKeyword(kw);
052            kw = new FitsKeyword("ESO.DET.ID", "ID#123443" ,"The Detector ID");
053            hdr.addKeyword(kw);
054            kw = new FitsKeyword("ATOOLONGKW", 122445,"And an interger");
055            hdr.addKeyword(kw);
056            kw = new FitsKeyword("ISITTRUE", false,"let's try a boolesn");
057            hdr.addKeyword(kw);
058            kw = new FitsKeyword(" ","");
059            hdr.addKeyword(kw);
060            kw = new FitsKeyword("NewDate", new Date(), "Try a Date");
061            hdr.addKeyword(kw);
062            kw = new FitsKeyword("COMMENT","a small real");
063            hdr.addKeyword(kw);
064            kw = new FitsKeyword("AN-amall", 0.000000000000012234,"a small real");
065            hdr.addKeyword(kw);
066            kw = new FitsKeyword(" ","");
067            hdr.addKeyword(kw);
068    
069            try {
070                file.saveFile();
071            } catch (FitsException e) {
072                System.out.println("Error: FITS problem in writing >"
073                                   + argv[0] + "<");
074                System.exit(-1);
075            } catch (IOException e) {
076                System.out.println("Error: cannot write file >" + argv[0] + "<");
077                System.exit(-1);
078            }
079    
080            System.exit(0);
081        }
082    }