forked from tTh/FloatImg
add a crude FITS exporter
This commit is contained in:
@@ -9,7 +9,7 @@ DEPS = ../floatimg.h ../libfloatimg.a Makefile
|
||||
# ----------
|
||||
|
||||
all: fimg2pnm mkfimg png2fimg fimgstats fimg2png \
|
||||
fimg2tiff fimg2text \
|
||||
fimg2tiff fimg2text fimg2fits \
|
||||
addpnm2fimg cumulfimgs fimgops fimgfx
|
||||
|
||||
fimgstats: fimgstats.c $(DEPS)
|
||||
@@ -30,6 +30,9 @@ fimgfx: fimgfx.c $(DEPS)
|
||||
fimg2pnm: fimg2pnm.c $(DEPS)
|
||||
gcc $(COPT) $< ../libfloatimg.a -o $@
|
||||
|
||||
fimg2fits: fimg2fits.c $(DEPS)
|
||||
gcc $(COPT) $< ../libfloatimg.a -lcfitsio -o $@
|
||||
|
||||
fimg2png: fimg2png.c $(DEPS)
|
||||
gcc $(COPT) $< ../libfloatimg.a -lpnglite -lz -o $@
|
||||
|
||||
|
||||
66
tools/fimg2fits.c
Normal file
66
tools/fimg2fits.c
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* exporting a floatimg to a FITS file
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "../floatimg.h"
|
||||
|
||||
int verbosity;
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
int export_fimg_plane_as_fits(char *infile, char *outfile, char plane)
|
||||
{
|
||||
FloatImg fimg;
|
||||
int foo;
|
||||
|
||||
foo = fimg_create_from_dump(infile, &fimg);
|
||||
if (foo) {
|
||||
fprintf(stderr, "%s: create fimg from '%s' -> %d\n", __func__,
|
||||
infile, foo);
|
||||
return -1;
|
||||
}
|
||||
|
||||
foo = fimg_save_plane_as_fits(&fimg, outfile, plane, 0);
|
||||
if (foo) {
|
||||
fprintf(stderr, "%s: err %d on fits export\n", __func__, foo);
|
||||
return foo;
|
||||
}
|
||||
|
||||
fimg_destroy(&fimg);
|
||||
|
||||
return -1;
|
||||
}
|
||||
/* ----------------------------------------------------------------- */
|
||||
static void help(int k)
|
||||
{
|
||||
puts("export to FITS format");
|
||||
puts("\t-p select colorplane : R, G, B");
|
||||
}
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int foo, opt;
|
||||
int plane = '?';
|
||||
|
||||
while ((opt = getopt(argc, argv, "p:hv")) != -1) {
|
||||
switch(opt) {
|
||||
case 'p': plane = optarg[0]; break;
|
||||
case 'v': verbosity++; break;
|
||||
case 'h': help(1); exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (2 != argc-optind) {
|
||||
fprintf(stderr, "error: %s need two filenames\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
export_fimg_plane_as_fits(argv[optind], argv[optind+1], plane);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/* ----------------------------------------------------------------- */
|
||||
Reference in New Issue
Block a user