Changeset 5014
- Timestamp:
- Sep 12, 2005, 3:04:48 PM (21 years ago)
- Location:
- trunk/Ohana/src
- Files:
-
- 6 added
- 74 edited
-
addstar/include/addstar.h (modified) (1 diff)
-
addstar/src/airmass.c (modified) (2 diffs)
-
addstar/src/calibrate.c (modified) (3 diffs)
-
addstar/src/find_matches.c (modified) (5 diffs)
-
addstar/src/gcatalog.c (modified) (1 diff)
-
addstar/src/gstars.c (modified) (6 diffs)
-
addstar/src/image-db.c (modified) (3 diffs)
-
addstar/src/mkcatalog.c (modified) (2 diffs)
-
addstar/src/wcatalog.c (modified) (1 diff)
-
delstar/src/gcatalog.c (modified) (1 diff)
-
delstar/src/gimages.c (modified) (1 diff)
-
delstar/src/wcatalog.c (modified) (1 diff)
-
gastro/src/gptolemy.c (modified) (2 diffs)
-
gastro2/src/gptolemy2.c (modified) (2 diffs)
-
imregister/imphot/dumpfits.c (modified) (1 diff)
-
imregister/imphot/output.c (modified) (1 diff)
-
libautocode/Makefile (modified) (4 diffs)
-
libautocode/def/average-panstarrs.d (modified) (2 diffs)
-
libautocode/def/image-ascii.d (added)
-
libautocode/def/image-elixir.d (added)
-
libautocode/def/image-loneos.d (added)
-
libautocode/def/image-panstarrs.d (added)
-
libautocode/def/image.d (modified) (4 diffs)
-
libautocode/def/measure-panstarrs.d (modified) (2 diffs)
-
libautocode/def/secfilt-loneos.d (added)
-
libautocode/def/secfilt-panstarrs.d (modified) (1 diff)
-
libautocode/def/secfilt.d (modified) (2 diffs)
-
libautocode/generate (modified) (2 diffs)
-
libfits/include/fits.h (modified) (1 diff)
-
libohana/Makefile (modified) (3 diffs)
-
libohana/include/dvo.h (modified) (4 diffs)
-
libohana/src/dvo_convert.c (modified) (6 diffs)
-
libohana/src/dvo_convert_elixir.c (modified) (5 diffs)
-
libohana/src/dvo_convert_loneos.c (modified) (6 diffs)
-
libohana/src/dvo_convert_panstarrs.c (modified) (5 diffs)
-
libohana/src/dvo_image.c (modified) (5 diffs)
-
libohana/src/dvo_image_raw.c (added)
-
libohana/src/fits_db.c (modified) (1 diff)
-
libohana/src/phot_catalog.c (modified) (1 diff)
-
libohana/src/phot_catalog_mef.c (modified) (10 diffs)
-
libohana/src/phot_catalog_raw.c (modified) (9 diffs)
-
libohana/src/photfits.c (modified) (8 diffs)
-
mosastro/src/gptolemy.c (modified) (2 diffs)
-
opihi/dvo/avextract.c (modified) (1 diff)
-
opihi/dvo/calextract.c (modified) (1 diff)
-
opihi/dvo/calmextract.c (modified) (1 diff)
-
opihi/dvo/catalog.c (modified) (1 diff)
-
opihi/dvo/ccd.c (modified) (1 diff)
-
opihi/dvo/cmatch.c (modified) (1 diff)
-
opihi/dvo/cmd.c (modified) (1 diff)
-
opihi/dvo/ddmags.c (modified) (1 diff)
-
opihi/dvo/dmagaves.c (modified) (1 diff)
-
opihi/dvo/dmagmeas.c (modified) (1 diff)
-
opihi/dvo/dmags.c (modified) (1 diff)
-
opihi/dvo/dmt.c (modified) (1 diff)
-
opihi/dvo/extract.c (modified) (1 diff)
-
opihi/dvo/fitcolors.c (modified) (3 diffs)
-
opihi/dvo/gimages.c (modified) (2 diffs)
-
opihi/dvo/gstar.c (modified) (1 diff)
-
opihi/dvo/imdata.c (modified) (1 diff)
-
opihi/dvo/imextract.c (modified) (1 diff)
-
opihi/dvo/imlist.c (modified) (1 diff)
-
opihi/dvo/imphot.c (modified) (1 diff)
-
opihi/dvo/imstats.c (modified) (1 diff)
-
opihi/dvo/lcurve.c (modified) (1 diff)
-
opihi/dvo/lightcurve.c (modified) (1 diff)
-
opihi/dvo/mextract.c (modified) (1 diff)
-
opihi/dvo/pmeasure.c (modified) (1 diff)
-
opihi/dvo/subpix.c (modified) (2 diffs)
-
relphot/src/ConfigInit.c (modified) (1 diff)
-
relphot/src/ImageOps.c (modified) (9 diffs)
-
relphot/src/MosaicOps.c (modified) (8 diffs)
-
relphot/src/find_images.c (modified) (1 diff)
-
relphot/src/gcatalog.c (modified) (2 diffs)
-
relphot/src/wcatalog.c (modified) (1 diff)
-
uniphot/include/uniphot.h (modified) (1 diff)
-
uniphot/src/fit_groups.c (modified) (4 diffs)
-
uniphot/src/gcatalog.c (modified) (1 diff)
-
uniphot/src/update.c (modified) (1 diff)
-
uniphot/src/wcatalog.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/include/addstar.h
r4864 r5014 124 124 int Shutdown PROTO((char *message, ...); ) 125 125 void TrapSignal PROTO((int sig)); 126 short airmass PROTO((short secz_image, double ra, double dec, double st, double latitude));126 float airmass PROTO((float secz_image, double ra, double dec, double st, double latitude)); 127 127 void aregion PROTO((GSCRegion *region, FILE *f, double ra, double dec)); 128 128 int args PROTO((int argc, char **argv)); -
trunk/Ohana/src/addstar/src/airmass.c
r3361 r5014 1 1 # include "addstar.h" 2 2 3 short airmass (short secz_image, double ra, double dec, double st, double latitude) {3 float airmass (float secz_image, double ra, double dec, double st, double latitude) { 4 4 5 5 double hour, cosz, secz; … … 13 13 hour = 15.0*st - ra; 14 14 cosz = sin (RAD_DEG*dec) * sin (RAD_DEG*latitude) + cos (RAD_DEG*dec) * cos (RAD_DEG*hour) * cos (RAD_DEG*latitude); 15 16 /* modify to match storage units (millimags) */ 17 secz = 1000.0 / cosz; 15 secz = 1.000 / cosz; 18 16 return (secz); 19 17 } -
trunk/Ohana/src/addstar/src/calibrate.c
r4865 r5014 95 95 if (MaxN == -1) { 96 96 fprintf (stderr, "no clean stars\n"); 97 image[0].Mcal = 10000;98 image[0].dMcal = 10000;97 image[0].Mcal_PS = 10.000; 98 image[0].dMcal_PS = 10.000; 99 99 return; 100 100 } … … 137 137 if (Nkeep < 5) { 138 138 fprintf (stderr, "too few stars\n"); 139 image[0].Mcal = 10000;140 image[0].dMcal = 10000;139 image[0].Mcal_PS = 10.000; 140 image[0].dMcal_PS = 10.000; 141 141 return; 142 142 } … … 169 169 Mw = W1 / W2; 170 170 fprintf (stderr, "N: %.0f, mean: %f, wt mean: %f, stdev: %f, precision: %f\n", N, M1, Mw, M2, M2 / sqrt (N)); 171 image[0].Mcal = 1000 *M1;172 image[0].dMcal = 1000 *M2 / sqrt (N);171 image[0].Mcal_PS = M1; 172 image[0].dMcal_PS = M2 / sqrt (N); 173 173 image[0].Mxxxx = N; 174 174 } else { 175 175 fprintf (stderr, "too few stars\n"); 176 image[0].Mcal = 10000;177 image[0].dMcal = 10000;176 image[0].Mcal_PS = 10.000; 177 image[0].dMcal_PS = 10.000; 178 178 image[0].Mxxxx = 0; 179 179 } 180 180 } 181 182 /*** image.Mcal is still in millimags ***/ -
trunk/Ohana/src/addstar/src/find_matches.c
r4865 r5014 12 12 Missing *tmpmissing; 13 13 Coords tcoords; 14 int Nsecfilt, Nsec , MTIME;15 float Mcat, *Mval ;14 int Nsecfilt, Nsec; 15 float Mcat, *Mval, MTIME; 16 16 17 17 /* photcode data - must by of type DEP, (PRI, SEC) - probably should restrict to DEP */ … … 143 143 144 144 /* calculate accurate per-star airmass */ 145 secz = airmass (image[0].secz , stars[N].R, stars[N].D, SiderealTime, Latitude);145 secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, SiderealTime, Latitude); 146 146 147 147 /** add measurements for this star **/ … … 151 151 catalog[0].measure[Nmeas].M_PS = MIN (stars[N].M + MTIME, NO_MAG); 152 152 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N].dM, NO_ERR); /* error in input files stored in thousandths of mag */ 153 catalog[0].measure[Nmeas].Mcal_PS = 0.001*image[0].Mcal; /* XXX image.Mcal still millimags */153 catalog[0].measure[Nmeas].Mcal_PS = image[0].Mcal_PS; 154 154 catalog[0].measure[Nmeas].t = image[0].tzero + 1e-4*stars[N].Y*image[0].trate; /* trate is in 0.1 msec / row */ 155 155 catalog[0].measure[Nmeas].averef = n; … … 252 252 if (!IN_CATALOG (stars[N].R, stars[N].D)) continue; 253 253 254 secz = airmass (image[0].secz , stars[N].R, stars[N].D, SiderealTime, Latitude);254 secz = airmass (image[0].secz_PS, stars[N].R, stars[N].D, SiderealTime, Latitude); 255 255 256 256 catalog[0].average[Nave].R_PS = stars[N].R; … … 277 277 catalog[0].measure[Nmeas].M_PS = MIN (stars[N].M + MTIME, NO_MAG); 278 278 catalog[0].measure[Nmeas].dM_PS = MIN (stars[N].dM, NO_ERR); 279 catalog[0].measure[Nmeas].Mcal_PS = 0.001*image[0].Mcal;279 catalog[0].measure[Nmeas].Mcal_PS = image[0].Mcal_PS; 280 280 catalog[0].measure[Nmeas].t = image[0].tzero + 1e-4*stars[N].Y*image[0].trate; /* trate is in 0.1 msec / row */ 281 281 catalog[0].measure[Nmeas].averef = Nave; -
trunk/Ohana/src/addstar/src/gcatalog.c
r4865 r5014 6 6 char mode; 7 7 8 /* no autodetect for CATMODE yet */ 9 strcpy (catalog[0].catmode, CATMODE); 8 /* CATMODE and CATFORMAT determined from catalog */ 10 9 11 10 /* read catalog header */ -
trunk/Ohana/src/addstar/src/gstars.c
r4988 r5014 4 4 5 5 FILE *f; 6 int j, N, Nbytes ;6 int j, N, Nbytes, extend; 7 7 int itmp, hour, min; 8 8 char *c, photcode[64], line[80]; … … 76 76 image[0].exptime = tmp; 77 77 78 /*** why are we no longer using APMIFIT?? ***/ 78 79 tmp = 0; 79 80 /* fits_scan (&header, "APMIFIT", "%lf", 1, &tmp); */ 80 image[0].apmifit = tmp * 1000.0;81 image[0].apmifit_PS = tmp; 81 82 82 83 tmp = 0; 83 84 /* fits_scan (&header, "dAPMIFIT", "%lf", 1, &tmp); */ 84 image[0].dapmifit = tmp * 1000.0;85 image[0].dapmifit_PS = tmp; 85 86 86 87 tmp = 0; … … 110 111 tmp = 0; 111 112 fits_scan (&header, AirmassKeyword, "%lf", 1, &tmp); 112 image[0].secz = MIN (NO_MAG, 1000*tmp);113 image[0].secz_PS = MIN (NO_MAG, tmp); 113 114 114 115 if (!fits_scan (&header, CCDNumKeyword, "%d", 1, &itmp)) { … … 122 123 123 124 /* secz is in units milli-airmass */ 124 image[0].Mcal = 0.0;125 image[0].Mcal_PS = 0.0; 125 126 image[0].Xm = NO_MAG; 126 127 image[0].code = 0; … … 162 163 fseek (f, header.size, SEEK_SET); 163 164 165 /* read from FITS table or from text table */ 166 extend = FALSE; 167 fits_scan (&header, "EXTEND", "%t", 1, &extend); 168 if (extend) { 169 Nbytes = fits_matrix_size (&header); 170 fseek (f, Nbytes, SEEK_CUR); 171 rdstars = rfits (f, &image[0].nstar); 172 } else { 173 /* allocate space for stars */ 174 if (!fits_scan (&header, "NSTARS", "%d", 1, &image[0].nstar)) { 175 fprintf (stderr, "ERROR: failed to find NSTARS\n"); 176 exit (1); 177 } 178 rdstars = rtext (f, &image[0].nstar); 179 } 180 fclose (f); 181 182 /* 164 183 if (FITS_INPUT) { 165 184 Nbytes = fits_matrix_size (&header); … … 170 189 } 171 190 fclose (f); 191 */ 172 192 173 193 /* modify resulting star list */ -
trunk/Ohana/src/addstar/src/image-db.c
r4864 r5014 39 39 fits_init_header (&db[0].header); 40 40 41 /* set the recommended mode */ 41 42 if (!strcmp (CATMODE, "RAW")) { 42 43 /* make header a fake image */ … … 46 47 db[0].header.Naxis[1] = 1; 47 48 fits_create_header (&db[0].header); 49 db[0].mode = DVO_MODE_RAW; 48 50 } 49 51 50 52 if (!strcmp (CATMODE, "MEF") || !strcmp (CATMODE, "SPLIT")) { 53 db[0].header.extend = TRUE; 51 54 fits_create_header (&db[0].header); 55 db[0].mode = DVO_MODE_MEF; 56 } 57 58 /* set the recommended format */ 59 db[0].format = DVO_FORMAT_UNDEF; 60 if (!strcmp (CATFORMAT, "INTERNAL")) db[0].format = DVO_FORMAT_INTERNAL; 61 if (!strcmp (CATFORMAT, "LONEOS")) db[0].format = DVO_FORMAT_LONEOS; 62 if (!strcmp (CATFORMAT, "ELIXIR")) db[0].format = DVO_FORMAT_ELIXIR; 63 if (!strcmp (CATFORMAT, "PANSTARRS")) db[0].format = DVO_FORMAT_PANSTARRS; 64 if (db[0].format == DVO_FORMAT_UNDEF) { 65 fprintf (stderr, "invalid output catalog format\n"); 66 exit (1); 52 67 } 53 68 … … 58 73 fits_modify (&db[0].header, "ZERO_PT", "%lf", 1, ZeroPt); 59 74 fits_modify (&db[0].header, "NIMAGES", "%d", 1, 0); 75 76 if (db[0].format == DVO_FORMAT_INTERNAL) fits_modify (&db[0].header, "FORMAT", "%s", 1, "INTERNAL"); 77 if (db[0].format == DVO_FORMAT_LONEOS) fits_modify (&db[0].header, "FORMAT", "%s", 1, "LONEOS"); 78 if (db[0].format == DVO_FORMAT_ELIXIR) fits_modify (&db[0].header, "FORMAT", "%s", 1, "ELIXIR"); 79 if (db[0].format == DVO_FORMAT_PANSTARRS) fits_modify (&db[0].header, "FORMAT", "%s", 1, "PANSTARRS"); 60 80 } 61 -
trunk/Ohana/src/addstar/src/mkcatalog.c
r4826 r5014 8 8 if (VERBOSE) fprintf (stderr, "new catalog file: %s\n", region[0].filename); 9 9 10 /* set the recommended CATFORMAT */ 11 catalog[0].catformat = DVO_FORMAT_UNDEF; 12 if (!strcmp (CATFORMAT, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL; 13 if (!strcmp (CATFORMAT, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS; 14 if (!strcmp (CATFORMAT, "ELIXIR")) catalog[0].catformat = DVO_FORMAT_ELIXIR; 15 if (!strcmp (CATFORMAT, "PANSTARRS")) catalog[0].catformat = DVO_FORMAT_PANSTARRS; 16 if (catalog[0].catformat == DVO_FORMAT_UNDEF) { 17 fprintf (stderr, "invalid output catalog format\n"); 18 exit (1); 19 } 20 21 /* set the recommended CATMODE */ 22 catalog[0].catmode = DVO_MODE_RAW; 23 if (!strcmp (CATMODE, "RAW")) catalog[0].catmode = DVO_MODE_RAW; 24 if (!strcmp (CATMODE, "MEF")) catalog[0].catmode = DVO_MODE_MEF; 25 10 26 fits_init_header (&catalog[0].header); 27 28 if (catalog[0].catmode == DVO_MODE_RAW) { 29 /* make header a fake image */ 30 catalog[0].header.bitpix = 16; 31 catalog[0].header.Naxes = 2; 32 catalog[0].header.Naxis[0] = 1; 33 catalog[0].header.Naxis[1] = 1; 34 } 35 11 36 fits_create_header (&catalog[0].header); 12 37 … … 34 59 ALLOCATE (catalog[0].secfilt, SecFilt, 1); 35 60 catalog[0].Nsecfilt = GetPhotcodeNsecfilt (); 36 37 /* set catalog mode (raw, mef, etc) - no autodetect for CATMODE yet */38 strcpy (catalog[0].catmode, CATMODE);39 40 /* set catalog format (elixir, loneos, etc) */41 if (!strcmp (CATFORMAT, "INTERNAL")) {42 sprintf (catalog[0].average_format, "DVO_AVERAGE");43 sprintf (catalog[0].measure_format, "DVO_MEASURE");44 } else {45 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT);46 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT);47 }48 61 } -
trunk/Ohana/src/addstar/src/wcatalog.c
r4826 r5014 3 3 void wcatalog (Catalog *catalog) { 4 4 5 /* set catalog format (elixir, loneos, etc) */ 6 if (!strcmp (CATFORMAT, "INTERNAL")) { 7 sprintf (catalog[0].average_format, "DVO_AVERAGE"); 8 sprintf (catalog[0].measure_format, "DVO_MEASURE"); 9 } else { 10 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT); 11 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT); 12 } 5 /* output CATMODE and CATFORMAT are set by mkcatalog 6 or by mode and format of existing data */ 13 7 14 8 if (!save_catalog (catalog, VERBOSE)) { -
trunk/Ohana/src/delstar/src/gcatalog.c
r4865 r5014 6 6 char mode; 7 7 8 /* no autodetect for CATMODE yet */ 9 strcpy (catalog[0].catmode, CATMODE); 8 /* CATMODE and CATFORMAT determined from catalog */ 10 9 11 10 /* read catalog header */ -
trunk/Ohana/src/delstar/src/gimages.c
r4680 r5014 76 76 tmp = 0; 77 77 fits_scan (&header, "AIRMASS", "%lf", 1, &tmp); 78 image[0].secz = 1000*tmp;78 image[0].secz_PS = tmp; 79 79 80 80 /* secz is in units milli-airmass */ 81 image[0].Mcal = ALPHA*(image[0].secz - 1000);81 image[0].Mcal_PS = ALPHA*(image[0].secz_PS - 1.000); 82 82 image[0].Xm = NO_MAG; 83 83 -
trunk/Ohana/src/delstar/src/wcatalog.c
r4832 r5014 3 3 int wcatalog (Catalog *catalog) { 4 4 5 /* set catalog format (elixir, loneos, etc) */ 6 if (!strcmp (CATFORMAT, "INTERNAL")) { 7 sprintf (catalog[0].average_format, "DVO_AVERAGE"); 8 sprintf (catalog[0].measure_format, "DVO_MEASURE"); 9 } else { 10 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT); 11 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT); 12 } 5 /* output CATMODE and CATFORMAT are set by mkcatalog 6 or by mode and format of existing data */ 13 7 14 8 if (!save_catalog (catalog, VERBOSE)) { -
trunk/Ohana/src/gastro/src/gptolemy.c
r4865 r5014 8 8 char filename[256], *fileroot, *filepath, *subdir; 9 9 Catalog catalog; 10 11 strcpy (catalog.catmode, CATMODE);12 10 13 11 filepath = pathname (fullpath); … … 25 23 break; 26 24 } 25 26 /* CATMODE and CATFORMAT determined from catalog */ 27 27 if (!load_catalog (&catalog, LOAD_AVES | LOAD_MEAS, FALSE)) { 28 28 fprintf (stderr, "can't load catalog data\n"); -
trunk/Ohana/src/gastro2/src/gptolemy2.c
r4865 r5014 9 9 Catalog catalog; 10 10 GSCdata *stars; 11 12 strcpy (catalog.catmode, CATMODE);13 11 14 12 filepath = pathname (fullpath); … … 27 25 break; 28 26 } 27 28 /* CATMODE and CATFORMAT determined from catalog */ 29 29 if (!load_catalog (&catalog, LOAD_AVES | LOAD_MEAS, FALSE)) { 30 30 fprintf (stderr, "can't load catalog data %s\n", filename); -
trunk/Ohana/src/imregister/imphot/dumpfits.c
r4024 r5014 114 114 startstr = sec_to_date (subset[0].tzero); 115 115 filtstr = GetPhotcodeNamebyCode (subset[0].source); 116 zp = 0.001*subset[0].Mcal;117 dzp = 0.001*subset[0].dMcal;116 zp = subset[0].Mcal_PS; 117 dzp = subset[0].dMcal_PS; 118 118 XY_to_RD (&ra, &dec, 0.0, 0.0, &subset[0].coords); 119 airmass = 0.001*subset[0].secz;119 airmass = subset[0].secz_PS; 120 120 sky = subset[0].Myyyy + 0x8000; 121 121 -
trunk/Ohana/src/imregister/imphot/output.c
r4024 r5014 39 39 40 40 fprintf (stdout, "%s %s %s %7.4f %7.4f %7.4f %5d %02x\n", image[i].name, photstr, timestr, 41 0.001*image[i].Mcal, 0.001*image[i].dMcal, 0.001*image[i].secz, image[i].nstar, image[i].code);41 image[i].Mcal_PS, image[i].dMcal_PS, image[i].secz_PS, image[i].nstar, image[i].code); 42 42 free (timestr); 43 43 } -
trunk/Ohana/src/libautocode/Makefile
r4865 r5014 29 29 $(SRC)/average-panstarrs.$(ARCH).o \ 30 30 $(SRC)/secfilt.$(ARCH).o \ 31 $(SRC)/secfilt-loneos.$(ARCH).o \ 31 32 $(SRC)/secfilt-elixir.$(ARCH).o \ 32 33 $(SRC)/secfilt-panstarrs.$(ARCH).o \ … … 38 39 $(SRC)/photcode.$(ARCH).o \ 39 40 $(SRC)/image.$(ARCH).o \ 41 $(SRC)/image-loneos.$(ARCH).o \ 42 $(SRC)/image-elixir.$(ARCH).o \ 43 $(SRC)/image-panstarrs.$(ARCH).o \ 40 44 $(SRC)/regimage.$(ARCH).o \ 41 45 $(SRC)/detreg.$(ARCH).o \ … … 53 57 $(INC)/average-panstarrs.h \ 54 58 $(INC)/secfilt.h \ 59 $(INC)/secfilt-loneos.h \ 55 60 $(INC)/secfilt-elixir.h \ 56 61 $(INC)/secfilt-panstarrs.h \ … … 62 67 $(INC)/photcode.h \ 63 68 $(INC)/image.h \ 69 $(INC)/image-loneos.h \ 70 $(INC)/image-elixir.h \ 71 $(INC)/image-panstarrs.h \ 64 72 $(INC)/regimage.h \ 65 73 $(INC)/detreg.h \ -
trunk/Ohana/src/libautocode/def/average-panstarrs.d
r4865 r5014 2 2 EXTNAME DVO_AVERAGE_PANSTARRS 3 3 TYPE BINTABLE 4 SIZE 4 44 SIZE 48 5 5 6 6 # elements of data structure / FITS table … … 18 18 FIELD offset, offset, int, offset to first measurement 19 19 FIELD missing, missing, int, offset to first missing obs 20 FIELD dummy, dummmy, int, extra space -
trunk/Ohana/src/libautocode/def/image.d
r4023 r5014 1 STRUCT Image2 EXTNAME DVO_IMAGE S3 TYPE BINTABLE4 SIZE 2401 STRUCT Image 2 EXTNAME DVO_IMAGE 3 TYPE BINTABLE 4 SIZE 248 5 5 6 6 # elements of the image structure … … 20 20 SUBFIELD ctype, CTYPE, char[15], coordinate type 21 21 SUBFIELD Npolyterms, NPOLYTERMS, char, order of polynomial 22 # 120 bytes 22 23 23 24 FIELD tzero, TZERO, e_time, readout time (row 0) 24 25 FIELD nstar, NSTAR, unsigned int, number of stars on image 25 FIELD secz , SECZ, short, airmass, milliairmass26 FIELD secz_PS, SECZ, float, airmass, mag 26 27 FIELD NX, NX, short, image width 27 28 FIELD NY, NY, short, image height 28 FIELD apmifit, APMIFIT, short, aperture correction, millimag 29 FIELD dapmifit, DAPMIFIT, short, apmifit error, millimag 29 FIELD apmifit_PS, APMIFIT, float, aperture correction, mag 30 FIELD dapmifit_PS, DAPMIFIT, float, apmifit error, mag 31 FIELD Mcal_PS, MCAL, float, calibration mag, mag 32 FIELD dMcal_PS, DMCAL, float, error on Mcal, mag 33 FIELD Xm, XM, short, image chisq, 10*log(value) 30 34 FIELD source, SOURCE, short, identifier for CCD, 31 FIELD Mcal, MCAL, short, calibration mag, millimag32 FIELD dMcal, DMCAL, short, error on Mcal, millimag 33 FIELD Xm, XM, short, image chisq, 10*log(value) 35 FIELD exptime, EXPTIME, float, exposure time, seconds 36 # 40 bytes 37 34 38 FIELD name, NAME, char[32], name of original image 35 39 FIELD detection_limit, DETECTION_LIMIT, unsigned char, detection limit, 10*mag … … 39 43 FIELD fwhm_y, FWHM_Y, unsigned char, PSF y width, 25*arcsec 40 44 FIELD trate, TRATE, unsigned char, scan rate, 100 usec/pixel 41 FIELD exptime, EXPTIME, float, exposure time, seconds42 45 FIELD code, CODE, char, image quality flag 43 46 FIELD ccdnum, CCDNUM, unsigned char, CCD ID number 44 FIELD dummy, DUMMY, char[20], unused 47 # 40 bytes 48 49 FIELD dummy, DUMMY, char[18], unused 45 50 FIELD order, ORDER, short, Mrel 2D polynomical order 46 51 FIELD Mx, MX, short, Mrel polyterm … … 58 63 FIELD Mxyyy, MXYYY, short, Mrel polyterm 59 64 FIELD Myyyy, MYYYY, short, Mrel polyterm 65 # 48 bytes -
trunk/Ohana/src/libautocode/def/measure-panstarrs.d
r4865 r5014 2 2 EXTNAME DVO_MEASURE_PANSTARRS 3 3 TYPE BINTABLE 4 SIZE 5 04 SIZE 52 5 5 6 6 # elements of data structure / FITS table … … 20 20 FIELD source, source, unsigned short, photcode 21 21 FIELD flags, flags, unsigned short, flags for various uses 22 FIELD dummy, dummy, short, extra space 22 23 FIELD t, t, unsigned int, time in seconds (UNIX) 23 24 FIELD averef, averef, unsigned int, reference to average entry -
trunk/Ohana/src/libautocode/def/secfilt-panstarrs.d
r4865 r5014 2 2 EXTNAME DVO_SECFILT_PANSTARRS 3 3 TYPE BINTABLE 4 SIZE 84 SIZE 12 5 5 6 6 # elements of data structure / FITS table 7 7 FIELD M, MAG, float, other mags, mags 8 FIELD dM, MAG_ERR, short, scatter on mag 1e4*mag8 FIELD dM, MAG_ERR, float, scatter on mag 1e4*mag 9 9 FIELD Xm, MAG_CHI, short, chisq on mag, [100*log(value)] 10 FIELD dummy, JUNK, short, chisq on mag, [100*log(value)] -
trunk/Ohana/src/libautocode/def/secfilt.d
r4865 r5014 2 2 EXTNAME DVO_SECFILT 3 3 TYPE BINTABLE 4 SIZE 1 04 SIZE 12 5 5 6 6 # elements of data structure / FITS table … … 8 8 FIELD dM_PS, MAG_ERR, float, scatter on mag mags 9 9 FIELD Xm, MAG_CHI, short, chisq on mag [100*log(value)] 10 FIELD dummy, JUNK, short, place holder -
trunk/Ohana/src/libautocode/generate
r4023 r5014 35 35 ($key, $value) = split (" ", $line, 2); 36 36 37 # strip white space from the following 38 if ($key eq "TYPE") { ($value) = $value =~ m|\s*(\S+)\s*|; } 39 if ($key eq "SIZE") { ($value) = $value =~ m|\s*(\S+)\s*|; } 40 if ($key eq "STRUCT") { ($value) = $value =~ m|\s*(\S+)\s*|; } 41 if ($key eq "EXTNAME") { ($value) = $value =~ m|\s*(\S+)\s*|; } 42 37 43 &set_keypair ($key, $value); 38 44 39 45 # there are used internally (not just a replacement) 40 if ($key eq "TYPE") { $TYPE = $value; }41 if ($key eq "SIZE") { $SIZE = $value; }42 if ($key eq "STRUCT") { $STRUCT = $value; }46 if ($key eq "TYPE") { $TYPE = $value; } 47 if ($key eq "SIZE") { $SIZE = $value; } 48 if ($key eq "STRUCT") { $STRUCT = $value; } 43 49 44 50 # not a simple key/value entry … … 54 60 } 55 61 } 62 $Nexpect = 0; 56 63 if ($TYPE eq "BINTABLE") { $Nexpect = &count_bintablesize; } 57 64 if ($TYPE eq "TABLE") { $Nexpect = &count_tablesize; } 65 if (! $Nexpect) { die "missing valid TYPE\n"; } 58 66 if ($Nexpect != $SIZE) { die "size mismatch: $Nexpect vs $SIZE\n"; } 59 67 } -
trunk/Ohana/src/libfits/include/fits.h
r3507 r5014 46 46 fprintf(stderr,"failed realloc increment at %d in %s\n", __LINE__, __FILE__);\ 47 47 exit (10); } } 48 # define free(X) \ 49 free(X); X = NULL; 50 48 51 # endif /* ALLOCATE */ 49 52 -
trunk/Ohana/src/libohana/Makefile
r4865 r5014 48 48 $(SRC)/photfits.$(ARCH).o \ 49 49 $(SRC)/dvo_image.$(ARCH).o \ 50 $(SRC)/dvo_image_raw.$(ARCH).o \ 50 51 $(SRC)/phot_catalog.$(ARCH).o \ 51 52 $(SRC)/phot_catalog_mef.$(ARCH).o \ … … 63 64 $(ASRC)/average-panstarrs.$(ARCH).o \ 64 65 $(ASRC)/secfilt.$(ARCH).o \ 66 $(ASRC)/secfilt-loneos.$(ARCH).o \ 65 67 $(ASRC)/secfilt-elixir.$(ARCH).o \ 66 68 $(ASRC)/secfilt-panstarrs.$(ARCH).o \ … … 72 74 $(ASRC)/photcode.$(ARCH).o \ 73 75 $(ASRC)/image.$(ARCH).o \ 76 $(ASRC)/image-loneos.$(ARCH).o \ 77 $(ASRC)/image-elixir.$(ARCH).o \ 78 $(ASRC)/image-panstarrs.$(ARCH).o \ 74 79 $(ASRC)/regimage.$(ARCH).o \ 75 80 $(ASRC)/detreg.$(ARCH).o \ -
trunk/Ohana/src/libohana/include/dvo.h
r4993 r5014 11 11 12 12 /* DVO table modes */ 13 enum {DVO_MODE_ RAW, DVO_MODE_MEF, DVO_MODE_SPLIT, DVO_MODE_MYSQL} DVOTableMode;13 enum {DVO_MODE_UNDEF, DVO_MODE_RAW, DVO_MODE_MEF, DVO_MODE_SPLIT, DVO_MODE_MYSQL} DVOTableMode; 14 14 15 15 /* DVO table formats */ 16 enum {DVO_FORMAT_UNDEF, DVO_FORMAT_ ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS} DVOTableFormat;16 enum {DVO_FORMAT_UNDEF, DVO_FORMAT_INTERNAL, DVO_FORMAT_ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS} DVOTableFormat; 17 17 18 18 /* image data modes in RegImage */ … … 125 125 126 126 /* extra table data if needed (move these to enums?) */ 127 # if (0) 127 128 char catmode[10]; /* storage mode: raw, mef, split, mysql */ 128 129 char average_format[80]; /* table format: internal, loneos, elixir, panstarrs */ 129 130 char measure_format[80]; /* table format: must match average_format */ 131 char secfilt_format[80]; /* table format: must match average_format */ 132 # endif 133 134 int catmode; 135 int catformat; 130 136 131 137 /* data in the catalog */ … … 245 251 /*** conversion functions / I/O conversions ***/ 246 252 247 Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues); 248 Average *FtableToAverage (FTable *ftable, int *Naverage, char *extname); 249 Average *ReadRawAverage (FILE *f, int Naverage, char *format); 253 Average *ReadRawAverage (FILE *f, int Naverage, int format); 254 Measure *ReadRawMeasure (FILE *f, int Nmeasure, int format); 255 SecFilt *ReadRawSecFilt (FILE *f, int Nsecfilt, int format); 256 int WriteRawAverage (FILE *f, Average *average, int Naverage, int format); 257 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, int format); 258 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, int Nsecfilt, int format); 259 260 Average *FtableToAverage (FTable *ftable, int *Naverage, int *format); 250 261 Average *AverageLoneosToInternal (AverageLoneos *in, int Nvalues); 251 262 Average *AverageElixirToInternal (AverageElixir *in, int Nvalues); 263 Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues); 264 AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues); 252 265 AverageElixir *AverageInternalToElixir (Average *in, int Nvalues); 253 AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues);254 266 AveragePanstarrs *AverageInternalToPanstarrs (Average *in, int Nvalues); 255 Measure *MeasurePanstarrsToInternal (MeasurePanstarrs *in, int Nvalues); 256 Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, char *extname); 257 Measure *ReadRawMeasure (FILE *f, int Nmeasure, char *format); 267 268 Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, int *format); 258 269 Measure *MeasureLoneosToInternal (MeasureLoneos *in, int Nvalues); 259 270 Measure *MeasureElixirToInternal (MeasureElixir *in, int Nvalues); 271 Measure *MeasurePanstarrsToInternal (MeasurePanstarrs *in, int Nvalues); 272 MeasureLoneos *MeasureInternalToLoneos (Measure *in, int Nvalues); 260 273 MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues); 261 MeasureLoneos *MeasureInternalToLoneos (Measure *in, int Nvalues);262 274 MeasurePanstarrs *MeasureInternalToPanstarrs (Measure *in, int Nvalues); 263 int AverageToFtable (FTable *ftable, Average *average, int Naverage, char *extname); 264 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, char *extname); 265 int WriteRawAverage (FILE *f, Average *average, int Naverage, char *format); 266 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, char *format); 275 276 SecFilt *FtableToSecFilt (FTable *ftable, int *Nsecfilt, int *format); 277 SecFilt *SecFiltLoneosToInternal (SecFiltLoneos *in, int Nvalues); 278 SecFilt *SecFiltElixirToInternal (SecFiltElixir *in, int Nvalues); 279 SecFilt *SecFiltPanstarrsToInternal (SecFiltPanstarrs *in, int Nvalues); 280 SecFiltLoneos *SecFiltInternalToLoneos (SecFilt *in, int Nvalues); 281 SecFiltElixir *SecFiltInternalToElixir (SecFilt *in, int Nvalues); 282 SecFiltPanstarrs *SecFiltInternalToPanstarrs (SecFilt *in, int Nvalues); 283 284 int AverageToFtable (FTable *ftable, Average *average, int Naverage, int format); 285 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, int format); 286 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, int format); 287 267 288 int load_catalog_raw (Catalog *catalog, char mode, int VERBOSE); 268 289 int save_catalog_raw (Catalog *catalog, char VERBOSE); … … 279 300 int dvo_image_addrows (FITS_DB *db, Image *new, int Nnew); 280 301 302 int FtableToImage (FTable *ftable, Header *theader, int *format); 303 int ImageToFtable (FTable *ftable, Header *theader, int format); 304 int ImageToVtable (VTable *vtable, Header *theader, int format); 305 Image *ImageElixirToInternal (ImageElixir *in, int Nvalues); 306 ImageElixir *ImageInternalToElixir (Image *in, int Nvalues); 307 Image *ImageLoneosToInternal (ImageLoneos *in, int Nvalues); 308 ImageLoneos *ImageInternalToLoneos (Image *in, int Nvalues); 309 Image *ImagePanstarrsToInternal (ImagePanstarrs *in, int Nvalues); 310 ImagePanstarrs *ImageInternalToPanstarrs (Image *in, int Nvalues); 311 281 312 # endif -
trunk/Ohana/src/libohana/src/dvo_convert.c
r4993 r5014 3 3 4 4 /* The Ftable-TYPE conversion functions determine the format of table based on EXTNAME in header. 5 they convert the table to the internal format, and set ' extname'.5 they convert the table to the internal format, and set 'format'. 6 6 7 7 The TYPE-Ftable conversions functions create output tables in the format requested 8 by the ' extname' function parameter.8 by the 'format' function parameter. 9 9 */ 10 10 … … 14 14 /*** Average / FTable conversion functions ***/ 15 15 16 Average *FtableToAverage (FTable *ftable, int *Naverage, char *extname) {16 Average *FtableToAverage (FTable *ftable, int *Naverage, int *format) { 17 17 18 18 Average *average; 19 char extname[80]; 19 20 20 21 /* convert to the internal format */ … … 25 26 if (!strcmp (extname, "DVO_AVERAGE")) { 26 27 average = fits_table_get_Average (ftable, Naverage, NULL); 28 *format = DVO_FORMAT_INTERNAL; 27 29 return (average); 28 30 } 29 31 if (!strcmp (extname, "DVO_AVERAGE_ELIXIR")) { 30 AverageElixir *tmpaverage; 31 tmpaverage = fits_table_get_AverageElixir (ftable, Naverage, NULL); 32 average = AverageElixirToInternal (tmpaverage, *Naverage); 33 free (tmpaverage); 32 AverageElixir *tmpAverage; 33 tmpAverage = fits_table_get_AverageElixir (ftable, Naverage, NULL); 34 average = AverageElixirToInternal (tmpAverage, *Naverage); 35 free (tmpAverage); 36 *format = DVO_FORMAT_ELIXIR; 34 37 return (average); 35 38 } 36 39 if (!strcmp (extname, "DVO_AVERAGE_LONEOS")) { 37 AverageLoneos *tmpaverage; 38 tmpaverage = fits_table_get_AverageLoneos (ftable, Naverage, NULL); 39 average = AverageLoneosToInternal (tmpaverage, *Naverage); 40 free (tmpaverage); 40 AverageLoneos *tmpAverage; 41 tmpAverage = fits_table_get_AverageLoneos (ftable, Naverage, NULL); 42 average = AverageLoneosToInternal (tmpAverage, *Naverage); 43 free (tmpAverage); 44 *format = DVO_FORMAT_LONEOS; 41 45 return (average); 42 46 } 43 47 if (!strcmp (extname, "DVO_AVERAGE_PANSTARRS")) { 44 AveragePanstarrs *tmpaverage; 45 tmpaverage = fits_table_get_AveragePanstarrs (ftable, Naverage, NULL); 46 average = AveragePanstarrsToInternal (tmpaverage, *Naverage); 47 free (tmpaverage); 48 AveragePanstarrs *tmpAverage; 49 tmpAverage = fits_table_get_AveragePanstarrs (ftable, Naverage, NULL); 50 average = AveragePanstarrsToInternal (tmpAverage, *Naverage); 51 free (tmpAverage); 52 *format = DVO_FORMAT_PANSTARRS; 48 53 return (average); 49 54 } … … 55 60 } 56 61 57 int AverageToFtable (FTable *ftable, Average *average, int Naverage, char *extname) { 62 int AverageToFtable (FTable *ftable, Average *average, int Naverage, int format) { 63 64 AverageElixir *tmpAverageElixir; 65 AverageLoneos *tmpAverageLoneos ; 66 AveragePanstarrs *tmpAveragePanstarrs; 58 67 59 68 /* convert from the internal format */ 60 if (!strcmp (extname, "DVO_AVERAGE")) { 61 fits_table_set_Average (ftable, average, Naverage); 62 return (TRUE); 63 } 64 if (!strcmp (extname, "DVO_AVERAGE_ELIXIR")) { 65 AverageElixir *tmpaverage; 66 tmpaverage = AverageInternalToElixir (average, Naverage); 67 fits_table_set_AverageElixir (ftable, tmpaverage, Naverage); 68 free (tmpaverage); 69 return (TRUE); 70 } 71 if (!strcmp (extname, "DVO_AVERAGE_LONEOS")) { 72 AverageLoneos *tmpaverage; 73 tmpaverage = AverageInternalToLoneos (average, Naverage); 74 fits_table_set_AverageLoneos (ftable, tmpaverage, Naverage); 75 free (tmpaverage); 76 return (TRUE); 77 } 78 if (!strcmp (extname, "DVO_AVERAGE_PANSTARRS")) { 79 AveragePanstarrs *tmpaverage; 80 tmpaverage = AverageInternalToPanstarrs (average, Naverage); 81 fits_table_set_AveragePanstarrs (ftable, tmpaverage, Naverage); 82 free (tmpaverage); 83 return (TRUE); 84 } 85 fprintf (stderr, "table format unknown: %s\n", extname); 86 return (FALSE); 69 switch (format) { 70 case DVO_FORMAT_INTERNAL: 71 fits_table_set_Average (ftable, average, Naverage); 72 break; 73 case DVO_FORMAT_ELIXIR: 74 tmpAverageElixir = AverageInternalToElixir (average, Naverage); 75 fits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage); 76 free (tmpAverageElixir); 77 break; 78 case DVO_FORMAT_LONEOS: 79 tmpAverageLoneos = AverageInternalToLoneos (average, Naverage); 80 fits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage); 81 free (tmpAverageLoneos ); 82 break; 83 case DVO_FORMAT_PANSTARRS: 84 tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage); 85 fits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage); 86 free (tmpAveragePanstarrs); 87 break; 88 default: 89 fprintf (stderr, "table format unknown (average)\n"); 90 return (FALSE); 91 } 92 return (TRUE); 87 93 } 88 94 89 95 /*** Measure / FTable conversion functions ***/ 90 96 91 Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, char *extname) {97 Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, int *format) { 92 98 93 99 Measure *measure; 100 char extname[80]; 94 101 95 102 /* convert to the internal format */ … … 100 107 if (!strcmp (extname, "DVO_MEASURE")) { 101 108 measure = fits_table_get_Measure (ftable, Nmeasure, NULL); 109 *format = DVO_FORMAT_INTERNAL; 102 110 return (measure); 103 111 } 104 112 if (!strcmp (extname, "DVO_MEASURE_ELIXIR")) { 105 MeasureElixir *tmpmeasure; 106 tmpmeasure = fits_table_get_MeasureElixir (ftable, Nmeasure, NULL); 107 measure = MeasureElixirToInternal (tmpmeasure, *Nmeasure); 108 free (tmpmeasure); 113 MeasureElixir *tmpMeasure; 114 tmpMeasure = fits_table_get_MeasureElixir (ftable, Nmeasure, NULL); 115 measure = MeasureElixirToInternal (tmpMeasure, *Nmeasure); 116 free (tmpMeasure); 117 *format = DVO_FORMAT_ELIXIR; 109 118 return (measure); 110 119 } 111 120 if (!strcmp (extname, "DVO_MEASURE_LONEOS")) { 112 MeasureLoneos *tmpmeasure; 113 tmpmeasure = fits_table_get_MeasureLoneos (ftable, Nmeasure, NULL); 114 measure = MeasureLoneosToInternal (tmpmeasure, *Nmeasure); 115 free (tmpmeasure); 121 MeasureLoneos *tmpMeasure; 122 tmpMeasure = fits_table_get_MeasureLoneos (ftable, Nmeasure, NULL); 123 measure = MeasureLoneosToInternal (tmpMeasure, *Nmeasure); 124 free (tmpMeasure); 125 *format = DVO_FORMAT_LONEOS; 116 126 return (measure); 117 127 } 118 128 if (!strcmp (extname, "DVO_MEASURE_PANSTARRS")) { 119 MeasurePanstarrs *tmpmeasure; 120 tmpmeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL); 121 measure = MeasurePanstarrsToInternal (tmpmeasure, *Nmeasure); 122 free (tmpmeasure); 129 MeasurePanstarrs *tmpMeasure; 130 tmpMeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL); 131 measure = MeasurePanstarrsToInternal (tmpMeasure, *Nmeasure); 132 free (tmpMeasure); 133 *format = DVO_FORMAT_PANSTARRS; 123 134 return (measure); 124 135 } … … 130 141 } 131 142 132 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, char *extname) { 143 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, int format) { 144 145 MeasureElixir *tmpMeasureElixir; 146 MeasureLoneos *tmpMeasureLoneos; 147 MeasurePanstarrs *tmpMeasurePanstarrs; 133 148 134 149 /* convert from the internal format */ 135 if (!strcmp (extname, "DVO_MEASURE")) { 136 fits_table_set_Measure (ftable, measure, Nmeasure); 150 switch (format) { 151 case DVO_FORMAT_INTERNAL: 152 fits_table_set_Measure (ftable, measure, Nmeasure); 153 break; 154 case DVO_FORMAT_ELIXIR: 155 tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure); 156 fits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure); 157 free (tmpMeasureElixir); 158 break; 159 case DVO_FORMAT_LONEOS: 160 tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure); 161 fits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure); 162 free (tmpMeasureLoneos); 163 break; 164 case DVO_FORMAT_PANSTARRS: 165 tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure); 166 fits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure); 167 free (tmpMeasurePanstarrs); 168 break; 169 default: 170 fprintf (stderr, "table format unknown (measure)\n"); 171 return (FALSE); 172 } 173 return (TRUE); 174 } 175 176 /*** SecFilt / FTable conversion functions ***/ 177 178 SecFilt *FtableToSecFilt (FTable *ftable, int *Nsecfilt, int *format) { 179 180 SecFilt *secfilt; 181 char extname[80]; 182 183 /* convert to the internal format */ 184 if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 185 fprintf (stderr, "EXTNAME missing for secfilt table\n"); 186 return (FALSE); 187 } 188 if (!strcmp (extname, "DVO_SECFILT")) { 189 secfilt = fits_table_get_SecFilt (ftable, Nsecfilt, NULL); 190 *format = DVO_FORMAT_INTERNAL; 191 return (secfilt); 192 } 193 if (!strcmp (extname, "DVO_SECFILT_ELIXIR")) { 194 SecFiltElixir *tmpSecFilt; 195 tmpSecFilt = fits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL); 196 secfilt = SecFiltElixirToInternal (tmpSecFilt, *Nsecfilt); 197 free (tmpSecFilt); 198 *format = DVO_FORMAT_ELIXIR; 199 return (secfilt); 200 } 201 if (!strcmp (extname, "DVO_SECFILT_LONEOS")) { 202 SecFiltLoneos *tmpSecFilt; 203 tmpSecFilt = fits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL); 204 secfilt = SecFiltLoneosToInternal (tmpSecFilt, *Nsecfilt); 205 free (tmpSecFilt); 206 *format = DVO_FORMAT_LONEOS; 207 return (secfilt); 208 } 209 if (!strcmp (extname, "DVO_SECFILT_PANSTARRS")) { 210 SecFiltPanstarrs *tmpSecFilt; 211 tmpSecFilt = fits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL); 212 secfilt = SecFiltPanstarrsToInternal (tmpSecFilt, *Nsecfilt); 213 free (tmpSecFilt); 214 *format = DVO_FORMAT_PANSTARRS; 215 return (secfilt); 216 } 217 218 fprintf (stderr, "table format unknown: %s\n", extname); 219 220 *Nsecfilt = 0; 221 return (NULL); 222 } 223 224 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, int format) { 225 226 SecFiltElixir *tmpSecFiltElixir; 227 SecFiltLoneos *tmpSecFiltLoneos; 228 SecFiltPanstarrs *tmpSecFiltPanstarrs; 229 230 /* convert from the internal format */ 231 switch (format) { 232 case DVO_FORMAT_INTERNAL: 233 fits_table_set_SecFilt (ftable, secfilt, Nsecfilt); 234 break; 235 case DVO_FORMAT_ELIXIR: 236 tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt); 237 fits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt); 238 free (tmpSecFiltElixir); 239 break; 240 case DVO_FORMAT_LONEOS: 241 tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt); 242 fits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt); 243 free (tmpSecFiltLoneos); 244 break; 245 case DVO_FORMAT_PANSTARRS: 246 tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt); 247 fits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt); 248 free (tmpSecFiltPanstarrs); 249 break; 250 default: 251 fprintf (stderr, "table format unknown (secfilt)\n"); 252 return (FALSE); 253 } 254 return (TRUE); 255 } 256 257 /*** Image Conversions ***/ 258 259 int FtableToImage (FTable *ftable, Header *theader, int *format) { 260 261 int Nimage; 262 char extname[80]; 263 264 /* extname may be set from outside if the source is RAW not MEF */ 265 if (*format == DVO_FORMAT_ELIXIR) { 266 ImageElixir *tmpimage; 267 tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL); 268 ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage); 269 free (tmpimage); 270 goto set_header; 271 } 272 273 /* convert to the internal format */ 274 if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 275 fprintf (stderr, "EXTNAME missing for image table\n"); 276 return (FALSE); 277 } 278 if (!strcmp (extname, "DVO_IMAGE")) { 279 Image *image; 280 image = fits_table_get_Image (ftable, &Nimage, NULL); 281 *format = DVO_FORMAT_INTERNAL; 137 282 return (TRUE); 138 283 } 139 if (!strcmp (extname, "DVO_MEASURE_ELIXIR")) { 140 MeasureElixir *tmpmeasure; 141 tmpmeasure = MeasureInternalToElixir (measure, Nmeasure); 142 fits_table_set_MeasureElixir (ftable, tmpmeasure, Nmeasure); 143 free (tmpmeasure); 144 return (TRUE); 145 } 146 if (!strcmp (extname, "DVO_MEASURE_LONEOS")) { 147 MeasureLoneos *tmpmeasure; 148 tmpmeasure = MeasureInternalToLoneos (measure, Nmeasure); 149 fits_table_set_MeasureLoneos (ftable, tmpmeasure, Nmeasure); 150 free (tmpmeasure); 151 return (TRUE); 152 } 153 if (!strcmp (extname, "DVO_MEASURE_PANSTARRS")) { 154 MeasurePanstarrs *tmpmeasure; 155 tmpmeasure = MeasureInternalToPanstarrs (measure, Nmeasure); 156 fits_table_set_MeasurePanstarrs (ftable, tmpmeasure, Nmeasure); 157 free (tmpmeasure); 158 return (TRUE); 159 } 160 284 if (!strcmp (extname, "DVO_IMAGE_ELIXIR")) { 285 ImageElixir *tmpimage; 286 *format = DVO_FORMAT_ELIXIR; 287 tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL); 288 ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage); 289 free (tmpimage); 290 goto set_header; 291 } 292 if (!strcmp (extname, "DVO_IMAGE_LONEOS")) { 293 ImageLoneos *tmpimage; 294 *format = DVO_FORMAT_LONEOS; 295 tmpimage = fits_table_get_ImageLoneos (ftable, &Nimage, NULL); 296 ftable[0].buffer = (char *) ImageLoneosToInternal (tmpimage, Nimage); 297 free (tmpimage); 298 goto set_header; 299 } 300 if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) { 301 ImagePanstarrs *tmpimage; 302 *format = DVO_FORMAT_PANSTARRS; 303 tmpimage = fits_table_get_ImagePanstarrs (ftable, &Nimage, NULL); 304 ftable[0].buffer = (char *) ImagePanstarrsToInternal (tmpimage, Nimage); 305 free (tmpimage); 306 goto set_header; 307 } 161 308 fprintf (stderr, "table format unknown: %s\n", extname); 162 309 return (FALSE); 163 } 164 165 /** Average / Raw Table conversions **/ 166 167 Average *ReadRawAverage (FILE *f, int Naverage, char *format) { 168 169 int nitems; 170 Average *average; 171 172 if (!strcmp (format, "DVO_AVERAGE")) { 173 ALLOCATE (average, Average, MAX (Naverage, 1)); 174 nitems = fread (average, sizeof(Average), Naverage, f); 175 if (nitems != Naverage) { 176 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 177 return (NULL); 178 } 179 fits_convert_Average (average, sizeof(Average), Naverage); 180 return (average); 181 } 182 if (!strcmp (format, "DVO_AVERAGE_ELIXIR")) { 183 AverageElixir *tmpaverage; 184 ALLOCATE (tmpaverage, AverageElixir, MAX (Naverage, 1)); 185 nitems = fread (tmpaverage, sizeof(AverageElixir), Naverage, f); 186 if (nitems != Naverage) { 187 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 188 return (NULL); 189 } 190 fits_convert_AverageElixir (tmpaverage, sizeof(AverageElixir), Naverage); 191 average = AverageElixirToInternal (tmpaverage, Naverage); 192 free (tmpaverage); 193 return (average); 194 } 195 if (!strcmp (format, "DVO_AVERAGE_LONEOS")) { 196 AverageLoneos *tmpaverage; 197 ALLOCATE (tmpaverage, AverageLoneos, MAX (Naverage, 1)); 198 nitems = fread (tmpaverage, sizeof(AverageLoneos), Naverage, f); 199 if (nitems != Naverage) { 200 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 201 return (NULL); 202 } 203 fits_convert_AverageLoneos (tmpaverage, sizeof(AverageLoneos), Naverage); 204 average = AverageLoneosToInternal (tmpaverage, Naverage); 205 free (tmpaverage); 206 return (average); 207 } 208 if (!strcmp (format, "DVO_AVERAGE_PANSTARRS")) { 209 AveragePanstarrs *tmpaverage; 210 ALLOCATE (tmpaverage, AveragePanstarrs, MAX (Naverage, 1)); 211 nitems = fread (tmpaverage, sizeof(AveragePanstarrs), Naverage, f); 212 if (nitems != Naverage) { 213 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 214 return (NULL); 215 } 216 fits_convert_AveragePanstarrs (tmpaverage, sizeof(AveragePanstarrs), Naverage); 217 average = AveragePanstarrsToInternal (tmpaverage, Naverage); 218 free (tmpaverage); 219 return (average); 220 } 221 fprintf (stderr, "error reading averages\n"); 222 return (NULL); 223 } 224 225 /* accepts and converts internal average formats and outputs 226 raw data in the specified format */ 227 int WriteRawAverage (FILE *f, Average *average, int Naverage, char *format) { 228 229 int nitems; 230 231 if (!strcmp (format, "DVO_AVERAGE")) { 232 fits_convert_Average (average, sizeof(Average), Naverage); 233 nitems = fwrite (average, sizeof(Average), Naverage, f); 234 if (nitems != Naverage) { 235 fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage); 310 311 set_header: 312 fits_free_header (theader); 313 fits_table_mkheader_Image (theader); 314 fits_modify (theader, "NAXIS2", "%d", 1, Nimage); 315 theader[0].Naxis[1] = Nimage; 316 ftable[0].size = fits_matrix_size (theader); 317 return (TRUE); 318 } 319 320 int ImageToFtable (FTable *ftable, Header *theader, int format) { 321 322 int Nimage; 323 ImageElixir *tmpImageElixir; 324 ImageLoneos *tmpImageLoneos; 325 ImagePanstarrs *tmpImagePanstarrs; 326 327 Nimage = theader[0].Naxis[1]; 328 329 /* convert from the internal format */ 330 switch (format) { 331 case DVO_FORMAT_INTERNAL: 332 fits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage); 333 break; 334 case DVO_FORMAT_ELIXIR: 335 tmpImageElixir = ImageInternalToElixir ((Image *) ftable[0].buffer, Nimage); 336 free (ftable[0].buffer); 337 fits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage); 338 free (tmpImageElixir); 339 break; 340 case DVO_FORMAT_LONEOS: 341 tmpImageLoneos = ImageInternalToLoneos ((Image *) ftable[0].buffer, Nimage); 342 free (ftable[0].buffer); 343 fits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage); 344 free (tmpImageLoneos); 345 break; 346 case DVO_FORMAT_PANSTARRS: 347 tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) ftable[0].buffer, Nimage); 348 free (ftable[0].buffer); 349 fits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage); 350 free (tmpImagePanstarrs); 351 break; 352 default: 353 fprintf (stderr, "table format unknown (image ftable)\n"); 236 354 return (FALSE); 355 } 356 return (TRUE); 357 } 358 359 int ImageToVtable (VTable *vtable, Header *theader, int format) { 360 361 int i, Nrow, Nimage; 362 363 Nrow = vtable[0].Nrow; 364 365 /* convert from the internal format */ 366 if (format == DVO_FORMAT_INTERNAL) { 367 for (i = 0; i < Nrow; i++) { 368 fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1); 237 369 } 238 370 return (TRUE); 239 371 } 240 if ( !strcmp (format, "DVO_AVERAGE_ELIXIR")) {241 AverageElixir *tmpaverage;242 tmpaverage = AverageInternalToElixir (average, Naverage); 243 fits_convert_AverageElixir (tmpaverage, sizeof(AverageElixir), Naverage);244 nitems = fwrite (tmpaverage, sizeof(AverageElixir), Naverage, f);245 free (tmpaverage);246 if (nitems != Naverage) {247 f printf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);248 return (FALSE);372 if (format == DVO_FORMAT_ELIXIR) { 373 ImageElixir *tmpImage; 374 375 /* convert table rows from internal to external format */ 376 for (i = 0; i < Nrow; i++) { 377 tmpImage = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1); 378 fits_convert_ImageElixir (tmpImage, sizeof(ImageElixir), 1); 379 free (vtable[0].buffer[i]); 380 vtable[0].buffer[i] = (char *) tmpImage; 249 381 } 382 383 /* convert header from old format to new format */ 384 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 385 386 fits_free_header (theader); 387 fits_table_mkheader_ImageElixir (theader); 388 389 fits_modify (theader, "NAXIS2", "%d", 1, Nimage); 390 theader[0].Naxis[1] = Nimage; 391 vtable[0].size = fits_matrix_size (theader); 250 392 return (TRUE); 251 393 } 252 if ( !strcmp (format, "DVO_AVERAGE_LONEOS")) {253 AverageLoneos *tmpaverage;254 tmpaverage = AverageInternalToLoneos (average, Naverage); 255 fits_convert_AverageLoneos (tmpaverage, sizeof(AverageLoneos), Naverage);256 nitems = fwrite (tmpaverage, sizeof(AverageLoneos), Naverage, f);257 free (tmpaverage);258 if (nitems != Naverage) {259 f printf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);260 return (FALSE);394 if (format == DVO_FORMAT_LONEOS) { 395 ImageLoneos *tmpImage; 396 397 /* convert table rows from internal to external format */ 398 for (i = 0; i < Nrow; i++) { 399 tmpImage = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1); 400 fits_convert_ImageLoneos (tmpImage, sizeof(ImageLoneos), 1); 401 free (vtable[0].buffer[i]); 402 vtable[0].buffer[i] = (char *) tmpImage; 261 403 } 404 405 /* convert header from old format to new format */ 406 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 407 408 fits_free_header (theader); 409 fits_table_mkheader_ImageLoneos (theader); 410 411 fits_modify (theader, "NAXIS2", "%d", 1, Nimage); 412 theader[0].Naxis[1] = Nimage; 413 vtable[0].size = fits_matrix_size (theader); 262 414 return (TRUE); 263 415 } 264 if ( !strcmp (format, "DVO_AVERAGE_PANSTARRS")) {265 AveragePanstarrs *tmpaverage;266 tmpaverage = AverageInternalToPanstarrs (average, Naverage); 267 fits_convert_AveragePanstarrs (tmpaverage, sizeof(AveragePanstarrs), Naverage);268 nitems = fwrite (tmpaverage, sizeof(AveragePanstarrs), Naverage, f);269 free (tmpaverage);270 if (nitems != Naverage) {271 f printf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);272 return (FALSE);416 if (format == DVO_FORMAT_PANSTARRS) { 417 ImagePanstarrs *tmpImage; 418 419 /* convert table rows from internal to external format */ 420 for (i = 0; i < Nrow; i++) { 421 tmpImage = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1); 422 fits_convert_ImagePanstarrs (tmpImage, sizeof(ImagePanstarrs), 1); 423 free (vtable[0].buffer[i]); 424 vtable[0].buffer[i] = (char *) tmpImage; 273 425 } 426 427 /* convert header from old format to new format */ 428 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 429 fits_free_header (theader); 430 fits_table_mkheader_ImagePanstarrs (theader); 431 fits_modify (theader, "NAXIS2", "%d", 1, Nimage); 432 theader[0].Naxis[1] = Nimage; 433 vtable[0].size = fits_matrix_size (theader); 274 434 return (TRUE); 275 435 } 276 fprintf (stderr, " error writing averages\n");436 fprintf (stderr, "table format unknown (image vtable)\n"); 277 437 return (FALSE); 278 438 } 279 /** Average / Raw Table conversions **/ 280 281 Measure *ReadRawMeasure (FILE *f, int Nmeasure, char *format) { 282 283 int nitems; 284 Measure *measure; 285 286 if (!strcmp (format, "DVO_MEASURE")) { 287 ALLOCATE (measure, Measure, MAX (Nmeasure, 1)); 288 nitems = fread (measure, sizeof(Measure), Nmeasure, f); 289 if (nitems != Nmeasure) { 290 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 291 return (NULL); 292 } 293 fits_convert_Measure (measure, sizeof(Measure), Nmeasure); 294 return (measure); 295 } 296 if (!strcmp (format, "DVO_MEASURE_ELIXIR")) { 297 MeasureElixir *tmpmeasure; 298 ALLOCATE (tmpmeasure, MeasureElixir, MAX (Nmeasure, 1)); 299 nitems = fread (tmpmeasure, sizeof(MeasureElixir), Nmeasure, f); 300 if (nitems != Nmeasure) { 301 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 302 return (NULL); 303 } 304 fits_convert_MeasureElixir (tmpmeasure, sizeof(MeasureElixir), Nmeasure); 305 measure = MeasureElixirToInternal (tmpmeasure, Nmeasure); 306 free (tmpmeasure); 307 return (measure); 308 } 309 if (!strcmp (format, "DVO_MEASURE_LONEOS")) { 310 MeasureLoneos *tmpmeasure; 311 ALLOCATE (tmpmeasure, MeasureLoneos, MAX (Nmeasure, 1)); 312 nitems = fread (tmpmeasure, sizeof(MeasureLoneos), Nmeasure, f); 313 if (nitems != Nmeasure) { 314 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 315 return (NULL); 316 } 317 fits_convert_MeasureLoneos (tmpmeasure, sizeof(MeasureLoneos), Nmeasure); 318 measure = MeasureLoneosToInternal (tmpmeasure, Nmeasure); 319 free (tmpmeasure); 320 return (measure); 321 } 322 if (!strcmp (format, "DVO_MEASURE_PANSTARRS")) { 323 MeasurePanstarrs *tmpmeasure; 324 ALLOCATE (tmpmeasure, MeasurePanstarrs, MAX (Nmeasure, 1)); 325 nitems = fread (tmpmeasure, sizeof(MeasurePanstarrs), Nmeasure, f); 326 if (nitems != Nmeasure) { 327 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 328 return (NULL); 329 } 330 fits_convert_MeasurePanstarrs (tmpmeasure, sizeof(MeasurePanstarrs), Nmeasure); 331 measure = MeasurePanstarrsToInternal (tmpmeasure, Nmeasure); 332 free (tmpmeasure); 333 return (measure); 334 } 335 fprintf (stderr, "error reading measures\n"); 336 return (NULL); 337 } 338 339 /* accepts and converts internal measure formats and outputs 340 raw data in the specified format */ 341 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, char *format) { 342 343 int nitems; 344 345 if (!strcmp (format, "DVO_MEASURE")) { 346 fits_convert_Measure (measure, sizeof(Measure), Nmeasure); 347 nitems = fwrite (measure, sizeof(Measure), Nmeasure, f); 348 if (nitems != Nmeasure) { 349 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 350 return (FALSE); 351 } 352 return (TRUE); 353 } 354 if (!strcmp (format, "DVO_MEASURE_ELIXIR")) { 355 MeasureElixir *tmpmeasure; 356 tmpmeasure = MeasureInternalToElixir (measure, Nmeasure); 357 fits_convert_MeasureElixir (tmpmeasure, sizeof(MeasureElixir), Nmeasure); 358 nitems = fwrite (tmpmeasure, sizeof(MeasureElixir), Nmeasure, f); 359 free (tmpmeasure); 360 if (nitems != Nmeasure) { 361 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 362 return (FALSE); 363 } 364 return (TRUE); 365 } 366 if (!strcmp (format, "DVO_MEASURE_LONEOS")) { 367 MeasureLoneos *tmpmeasure; 368 tmpmeasure = MeasureInternalToLoneos (measure, Nmeasure); 369 fits_convert_MeasureLoneos (tmpmeasure, sizeof(MeasureLoneos), Nmeasure); 370 nitems = fwrite (tmpmeasure, sizeof(MeasureLoneos), Nmeasure, f); 371 free (tmpmeasure); 372 if (nitems != Nmeasure) { 373 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 374 return (FALSE); 375 } 376 return (TRUE); 377 } 378 if (!strcmp (format, "DVO_MEASURE_PANSTARRS")) { 379 MeasurePanstarrs *tmpmeasure; 380 tmpmeasure = MeasureInternalToPanstarrs (measure, Nmeasure); 381 fits_convert_MeasurePanstarrs (tmpmeasure, sizeof(MeasurePanstarrs), Nmeasure); 382 nitems = fwrite (tmpmeasure, sizeof(MeasurePanstarrs), Nmeasure, f); 383 free (tmpmeasure); 384 if (nitems != Nmeasure) { 385 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 386 return (FALSE); 387 } 388 return (TRUE); 389 } 390 fprintf (stderr, "error writing measures\n"); 391 return (FALSE); 392 } 393 394 /*** Image Conversions ***/ 395 396 Image *FtableToImage (FTable *ftable, int *format) { 397 398 int Nimage; 399 Image *image; 400 char extname[80]; 401 402 /* extname may be set from outside if the source is RAW not MEF */ 403 if (*format == DVO_FORMAT_ELIXIR) { 404 Imagelixir *tmpimage; 405 tmpimage = fits_table_get_AverageElixir (ftable, &Nimage, NULL); 406 image = ImageElixirToInternal (tmpimage, Nimage); 407 free (tmpimage); 408 return (image); 409 } 410 411 /* convert to the internal format */ 412 if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 413 fprintf (stderr, "EXTNAME missing for average table\n"); 414 return (NULL); 415 } 416 if (!strcmp (extname, "DVO_IMAGE")) { 417 image = fits_table_get_Image (ftable, Nimage, NULL); 418 *format = DVO_FORMAT_INTERNAL; 419 return (image); 420 } 421 if (!strcmp (extname, "DVO_IMAGE_ELIXIR")) { 422 ImageElixir *tmpimage; 423 tmpimage = fits_table_get_ImageElixir (ftable, Nimage, NULL); 424 image = ImageElixirToInternal (tmpimage, Nimage); 425 free (tmpimage); 426 *format = DVO_FORMAT_ELIXIR; 427 return (image); 428 } 429 if (!strcmp (extname, "DVO_IMAGE_LONEOS")) { 430 ImageLoneos *tmpimage; 431 tmpimage = fits_table_get_ImageLoneos (ftable, Nimage, NULL); 432 image = ImageLoneosToInternal (tmpimage, Nimage); 433 free (tmpimage); 434 *format = DVO_FORMAT_LONEOS; 435 return (image); 436 } 437 if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) { 438 ImagePanstarrs *tmpimage; 439 tmpimage = fits_table_get_ImagePanstarrs (ftable, Nimage, NULL); 440 image = ImagePanstarrsToInternal (tmpimage, Nimage); 441 free (tmpimage); 442 *format = DVO_FORMAT_PANSTARRS; 443 return (image); 444 } 445 446 fprintf (stderr, "table format unknown: %s\n", extname); 447 448 *Nimage = 0; 449 return (NULL); 450 } 451 452 int ImageToFtable (FTable *ftable, Image *image, int Nimage, int format) { 453 454 /* convert from the internal format */ 455 if (!strcmp (extname, "DVO_IMAGE")) { 456 fits_table_set_Image (ftable, image, Nimage); 457 return (TRUE); 458 } 459 if (!strcmp (extname, "DVO_IMAGE_ELIXIR")) { 460 ImageElixir *tmpimage; 461 tmpimage = ImageInternalToElixir (image, Nimage); 462 fits_table_set_ImageElixir (ftable, tmpimage, Nimage); 463 free (tmpimage); 464 return (TRUE); 465 } 466 if (!strcmp (extname, "DVO_IMAGE_LONEOS")) { 467 ImageLoneos *tmpimage; 468 tmpimage = ImageInternalToLoneos (image, Nimage); 469 fits_table_set_ImageLoneos (ftable, tmpimage, Nimage); 470 free (tmpimage); 471 return (TRUE); 472 } 473 if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) { 474 ImagePanstarrs *tmpimage; 475 tmpimage = ImageInternalToPanstarrs (image, Nimage); 476 fits_table_set_ImagePanstarrs (ftable, tmpimage, Nimage); 477 free (tmpimage); 478 return (TRUE); 479 } 480 fprintf (stderr, "table format unknown: %s\n", extname); 481 return (FALSE); 482 } 483 439 -
trunk/Ohana/src/libohana/src/dvo_convert_elixir.c
r4865 r5014 2 2 # include <dvo.h> 3 3 4 /* convert loneos-stylemeasures to internal measures */4 /* convert elixir-format measures to internal measures */ 5 5 Measure *MeasureElixirToInternal (MeasureElixir *in, int Nvalues) { 6 6 … … 31 31 } 32 32 33 /* convert internal measures to loneos-stylemeasures */33 /* convert internal measures to elixir-format measures */ 34 34 MeasureElixir *MeasureInternalToElixir (Measure *in, int Nvalues) { 35 35 … … 60 60 } 61 61 62 /* convert elixir-format averages to internal averages */ 62 63 Average *AverageElixirToInternal (AverageElixir *in, int Nvalues) { 63 64 … … 84 85 } 85 86 87 /* convert internal averages to elixir-format averages */ 86 88 AverageElixir *AverageInternalToElixir (Average *in, int Nvalues) { 87 89 … … 107 109 return (out); 108 110 } 111 112 /* convert elixir-format secfilts to internal secfilts */ 113 SecFilt *SecFiltElixirToInternal (SecFiltElixir *in, int Nvalues) { 114 115 int i; 116 SecFilt *out; 117 118 ALLOCATE (out, SecFilt, Nvalues); 119 120 for (i = 0; i < Nvalues; i++) { 121 out[i].M_PS = in[i].M * 0.001; 122 out[i].dM_PS = in[i].dM * 0.001; 123 out[i].Xm = in[i].Xm; 124 } 125 return (out); 126 } 127 128 /* convert internal secfilts to elixir-format secfilts */ 129 SecFiltElixir *SecFiltInternalToElixir (SecFilt *in, int Nvalues) { 130 131 int i; 132 SecFiltElixir *out; 133 134 ALLOCATE (out, SecFiltElixir, Nvalues); 135 136 for (i = 0; i < Nvalues; i++) { 137 out[i].M = in[i].M_PS * 1000.0; 138 out[i].dM = in[i].dM_PS * 1000.0; 139 out[i].Xm = in[i].Xm; 140 } 141 return (out); 142 } 143 144 /* convert elixir-format images to internal images */ 145 Image *ImageElixirToInternal (ImageElixir *in, int Nvalues) { 146 147 int i; 148 Image *out; 149 150 ALLOCATE (out, Image, Nvalues); 151 152 for (i = 0; i < Nvalues; i++) { 153 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 154 memcpy (out[i].dummy, in[i].dummy, 20); 155 strcpy (out[i].name, in[i].name); 156 157 out[i].tzero = in[i].tzero; 158 out[i].nstar = in[i].nstar; 159 out[i].secz_PS = in[i].secz * 0.001; 160 out[i].NX = in[i].NX; 161 out[i].NY = in[i].NY; 162 out[i].apmifit_PS = in[i].apmifit * 0.001; 163 out[i].dapmifit_PS = in[i].dapmifit * 0.001; 164 out[i].Mcal_PS = in[i].Mcal * 0.001; 165 out[i].dMcal_PS = in[i].dMcal * 0.001; 166 out[i].Xm = in[i].Xm; 167 out[i].source = in[i].source; 168 out[i].exptime = in[i].exptime; 169 out[i].detection_limit = in[i].detection_limit; 170 out[i].saturation_limit = in[i].saturation_limit; 171 out[i].cerror = in[i].cerror; 172 out[i].fwhm_x = in[i].fwhm_x; 173 out[i].fwhm_y = in[i].fwhm_y; 174 out[i].trate = in[i].trate; 175 out[i].code = in[i].code; 176 out[i].ccdnum = in[i].ccdnum; 177 out[i].order = in[i].order; 178 out[i].Mx = in[i].Mx; 179 out[i].My = in[i].My; 180 out[i].Mxx = in[i].Mxx; 181 out[i].Mxy = in[i].Mxy; 182 out[i].Myy = in[i].Myy; 183 out[i].Mxxx = in[i].Mxxx; 184 out[i].Mxxy = in[i].Mxxy; 185 out[i].Mxyy = in[i].Mxyy; 186 out[i].Myyy = in[i].Myyy; 187 out[i].Mxxxx = in[i].Mxxxx; 188 out[i].Mxxxy = in[i].Mxxxy; 189 out[i].Mxxyy = in[i].Mxxyy; 190 out[i].Mxyyy = in[i].Mxyyy; 191 out[i].Myyyy = in[i].Myyyy; 192 } 193 return (out); 194 } 195 196 /* convert internal images to elixir-format images */ 197 ImageElixir *ImageInternalToElixir (Image *in, int Nvalues) { 198 199 int i; 200 ImageElixir *out; 201 202 ALLOCATE (out, ImageElixir, Nvalues); 203 204 for (i = 0; i < Nvalues; i++) { 205 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 206 memcpy (out[i].dummy, in[i].dummy, 20); 207 strcpy (out[i].name, in[i].name); 208 209 out[i].tzero = in[i].tzero; 210 out[i].nstar = in[i].nstar; 211 out[i].secz = in[i].secz_PS * 1000.0; 212 out[i].NX = in[i].NX; 213 out[i].NY = in[i].NY; 214 out[i].apmifit = in[i].apmifit_PS * 1000.0; 215 out[i].dapmifit = in[i].dapmifit_PS * 1000.0; 216 out[i].Mcal = in[i].Mcal_PS * 1000.0; 217 out[i].dMcal = in[i].dMcal_PS * 1000.0; 218 out[i].Xm = in[i].Xm; 219 out[i].source = in[i].source; 220 out[i].exptime = in[i].exptime; 221 out[i].detection_limit = in[i].detection_limit; 222 out[i].saturation_limit = in[i].saturation_limit; 223 out[i].cerror = in[i].cerror; 224 out[i].fwhm_x = in[i].fwhm_x; 225 out[i].fwhm_y = in[i].fwhm_y; 226 out[i].trate = in[i].trate; 227 out[i].code = in[i].code; 228 out[i].ccdnum = in[i].ccdnum; 229 out[i].order = in[i].order; 230 out[i].Mx = in[i].Mx; 231 out[i].My = in[i].My; 232 out[i].Mxx = in[i].Mxx; 233 out[i].Mxy = in[i].Mxy; 234 out[i].Myy = in[i].Myy; 235 out[i].Mxxx = in[i].Mxxx; 236 out[i].Mxxy = in[i].Mxxy; 237 out[i].Mxyy = in[i].Mxyy; 238 out[i].Myyy = in[i].Myyy; 239 out[i].Mxxxx = in[i].Mxxxx; 240 out[i].Mxxxy = in[i].Mxxxy; 241 out[i].Mxxyy = in[i].Mxxyy; 242 out[i].Mxyyy = in[i].Mxyyy; 243 out[i].Myyyy = in[i].Myyyy; 244 } 245 return (out); 246 } -
trunk/Ohana/src/libohana/src/dvo_convert_loneos.c
r4865 r5014 2 2 # include <dvo.h> 3 3 4 /* convert loneos- stylemeasures to internal measures */4 /* convert loneos-format measures to internal measures */ 5 5 Measure *MeasureLoneosToInternal (MeasureLoneos *in, int Nvalues) { 6 6 … … 35 35 } 36 36 37 /* convert internal measures to loneos- stylemeasures */37 /* convert internal measures to loneos-format measures */ 38 38 MeasureLoneos *MeasureInternalToLoneos (Measure *in, int Nvalues) { 39 39 … … 59 59 } 60 60 61 /* convert loneos-format averages to internal averages */ 61 62 Average *AverageLoneosToInternal (AverageLoneos *in, int Nvalues) { 62 63 … … 85 86 } 86 87 88 /* convert internal averages to loneos-format averages */ 87 89 AverageLoneos *AverageInternalToLoneos (Average *in, int Nvalues) { 88 90 … … 107 109 } 108 110 109 /* 110 I need to add these to the dvo_convert structures: 111 112 SecFilt *SecFiltLoneosToInternal (SecFiltLoneos *in, int Nvalues); 113 SecFiltLoneos *SecFiltInternalToLoneos (SecFilt *in, int Nvalues); 114 111 /* convert loneos-format secfilts to internal secfilts */ 115 112 SecFilt *SecFiltLoneosToInternal (SecFiltLoneos *in, int Nvalues) { 116 113 … … 121 118 122 119 for (i = 0; i < Nvalues; i++) { 123 out[i].M = in[i].M; 120 out[i].M_PS = in[i].M*0.001; 121 out[i].dM_PS = 0xffff; 122 out[i].Xm = in[i].Xm; 123 } 124 return (out); 125 } 126 127 /* convert internal secfilts to loneos-format secfilts */ 128 SecFiltLoneos *SecFiltInternalToLoneos (SecFilt *in, int Nvalues) { 129 130 int i; 131 SecFiltLoneos *out; 132 133 ALLOCATE (out, SecFiltLoneos, Nvalues); 134 135 for (i = 0; i < Nvalues; i++) { 136 out[i].M = in[i].M_PS*1000.0; 124 137 out[i].Xm = in[i].Xm; 125 out[i].dM = 0xffff; 126 } 127 return (out); 128 } 129 130 SecFiltLoneos *SecFiltInternalToLoneos (SecFilt *in, int Nvalues) { 131 132 int i; 133 SecFiltLoneos *out; 134 135 ALLOCATE (out, SecFiltLoneos, Nvalues); 136 137 for (i = 0; i < Nvalues; i++) { 138 out[i].M = in[i].M; 139 out[i].Xm = in[i].Xm; 140 } 141 return (out); 142 } 143 */ 138 } 139 return (out); 140 } 141 142 /* convert loneos-format images to internal images */ 143 Image *ImageLoneosToInternal (ImageLoneos *in, int Nvalues) { 144 145 int i; 146 Image *out; 147 148 ALLOCATE (out, Image, Nvalues); 149 150 for (i = 0; i < Nvalues; i++) { 151 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 152 memcpy (out[i].dummy, in[i].dummy, 20); 153 strcpy (out[i].name, in[i].name); 154 155 out[i].tzero = in[i].tzero; 156 out[i].nstar = in[i].nstar; 157 out[i].secz_PS = in[i].secz * 0.001; 158 out[i].NX = in[i].NX; 159 out[i].NY = in[i].NY; 160 out[i].apmifit_PS = in[i].apmifit * 0.001; 161 out[i].dapmifit_PS = in[i].dapmifit * 0.001; 162 out[i].Mcal_PS = in[i].Mcal * 0.001; 163 out[i].dMcal_PS = in[i].dMcal * 0.001; 164 out[i].Xm = in[i].Xm; 165 out[i].source = in[i].source; 166 out[i].exptime = in[i].exptime; 167 out[i].detection_limit = in[i].detection_limit; 168 out[i].saturation_limit = in[i].saturation_limit; 169 out[i].cerror = in[i].cerror; 170 out[i].fwhm_x = in[i].fwhm_x; 171 out[i].fwhm_y = in[i].fwhm_y; 172 out[i].trate = in[i].trate; 173 out[i].code = in[i].code; 174 out[i].ccdnum = in[i].ccdnum; 175 out[i].order = in[i].order; 176 out[i].Mx = in[i].Mx; 177 out[i].My = in[i].My; 178 out[i].Mxx = in[i].Mxx; 179 out[i].Mxy = in[i].Mxy; 180 out[i].Myy = in[i].Myy; 181 out[i].Mxxx = in[i].Mxxx; 182 out[i].Mxxy = in[i].Mxxy; 183 out[i].Mxyy = in[i].Mxyy; 184 out[i].Myyy = in[i].Myyy; 185 out[i].Mxxxx = in[i].Mxxxx; 186 out[i].Mxxxy = in[i].Mxxxy; 187 out[i].Mxxyy = in[i].Mxxyy; 188 out[i].Mxyyy = in[i].Mxyyy; 189 out[i].Myyyy = in[i].Myyyy; 190 } 191 return (out); 192 } 193 194 /* convert internal images to loneos-format images */ 195 ImageLoneos *ImageInternalToLoneos (Image *in, int Nvalues) { 196 197 int i; 198 ImageLoneos *out; 199 200 ALLOCATE (out, ImageLoneos, Nvalues); 201 202 for (i = 0; i < Nvalues; i++) { 203 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 204 memcpy (out[i].dummy, in[i].dummy, 20); 205 strcpy (out[i].name, in[i].name); 206 207 out[i].tzero = in[i].tzero; 208 out[i].nstar = in[i].nstar; 209 out[i].secz = in[i].secz_PS * 1000.0; 210 out[i].NX = in[i].NX; 211 out[i].NY = in[i].NY; 212 out[i].apmifit = in[i].apmifit_PS * 1000.0; 213 out[i].dapmifit = in[i].dapmifit_PS * 1000.0; 214 out[i].Mcal = in[i].Mcal_PS * 1000.0; 215 out[i].dMcal = in[i].dMcal_PS * 1000.0; 216 out[i].Xm = in[i].Xm; 217 out[i].source = in[i].source; 218 out[i].exptime = in[i].exptime; 219 out[i].detection_limit = in[i].detection_limit; 220 out[i].saturation_limit = in[i].saturation_limit; 221 out[i].cerror = in[i].cerror; 222 out[i].fwhm_x = in[i].fwhm_x; 223 out[i].fwhm_y = in[i].fwhm_y; 224 out[i].trate = in[i].trate; 225 out[i].code = in[i].code; 226 out[i].ccdnum = in[i].ccdnum; 227 out[i].order = in[i].order; 228 out[i].Mx = in[i].Mx; 229 out[i].My = in[i].My; 230 out[i].Mxx = in[i].Mxx; 231 out[i].Mxy = in[i].Mxy; 232 out[i].Myy = in[i].Myy; 233 out[i].Mxxx = in[i].Mxxx; 234 out[i].Mxxy = in[i].Mxxy; 235 out[i].Mxyy = in[i].Mxyy; 236 out[i].Myyy = in[i].Myyy; 237 out[i].Mxxxx = in[i].Mxxxx; 238 out[i].Mxxxy = in[i].Mxxxy; 239 out[i].Mxxyy = in[i].Mxxyy; 240 out[i].Mxyyy = in[i].Mxyyy; 241 out[i].Myyyy = in[i].Myyyy; 242 } 243 return (out); 244 } -
trunk/Ohana/src/libohana/src/dvo_convert_panstarrs.c
r4865 r5014 2 2 # include <dvo.h> 3 3 4 /* convert loneos-style measures to internal measures */ 4 /*** note that these structures are identical ***/ 5 6 /* convert panstarrs-format measures to internal measures */ 5 7 Measure *MeasurePanstarrsToInternal (MeasurePanstarrs *in, int Nvalues) { 6 8 7 9 int i; 8 10 Measure *out; 9 10 /*** note that these structures are identical ***/11 11 12 12 ALLOCATE (out, Measure, Nvalues); … … 33 33 } 34 34 35 /* convert internal measures to loneos-stylemeasures */35 /* convert internal measures to panstarrs-format measures */ 36 36 MeasurePanstarrs *MeasureInternalToPanstarrs (Measure *in, int Nvalues) { 37 37 … … 62 62 } 63 63 64 /* convert panstarrs-format averages to internal averages */ 64 65 Average *AveragePanstarrsToInternal (AveragePanstarrs *in, int Nvalues) { 65 66 … … 86 87 } 87 88 89 /* convert internal averages to panstarrs-format averages */ 88 90 AveragePanstarrs *AverageInternalToPanstarrs (Average *in, int Nvalues) { 89 91 … … 109 111 return (out); 110 112 } 113 114 /* convert panstarrs-format secfilts to internal secfilts */ 115 SecFilt *SecFiltPanstarrsToInternal (SecFiltPanstarrs *in, int Nvalues) { 116 117 int i; 118 SecFilt *out; 119 120 ALLOCATE (out, SecFilt, Nvalues); 121 122 for (i = 0; i < Nvalues; i++) { 123 out[i].M_PS = in[i].M; 124 out[i].dM_PS = in[i].dM; 125 out[i].Xm = in[i].Xm; 126 } 127 return (out); 128 } 129 130 /* convert internal secfilts to panstarrs-format secfilts */ 131 SecFiltPanstarrs *SecFiltInternalToPanstarrs (SecFilt *in, int Nvalues) { 132 133 int i; 134 SecFiltPanstarrs *out; 135 136 ALLOCATE (out, SecFiltPanstarrs, Nvalues); 137 138 for (i = 0; i < Nvalues; i++) { 139 out[i].M = in[i].M_PS; 140 out[i].dM = in[i].dM_PS; 141 out[i].Xm = in[i].Xm; 142 } 143 return (out); 144 } 145 146 /* convert panstarrs-format images to internal images */ 147 Image *ImagePanstarrsToInternal (ImagePanstarrs *in, int Nvalues) { 148 149 int i; 150 Image *out; 151 152 ALLOCATE (out, Image, Nvalues); 153 154 for (i = 0; i < Nvalues; i++) { 155 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 156 memcpy (out[i].dummy, in[i].dummy, 20); 157 strcpy (out[i].name, in[i].name); 158 159 out[i].tzero = in[i].tzero; 160 out[i].nstar = in[i].nstar; 161 out[i].secz_PS = in[i].secz; 162 out[i].NX = in[i].NX; 163 out[i].NY = in[i].NY; 164 out[i].apmifit_PS = in[i].apmifit; 165 out[i].dapmifit_PS = in[i].dapmifit; 166 out[i].Mcal_PS = in[i].Mcal; 167 out[i].dMcal_PS = in[i].dMcal; 168 out[i].Xm = in[i].Xm; 169 out[i].source = in[i].source; 170 out[i].exptime = in[i].exptime; 171 out[i].detection_limit = in[i].detection_limit; 172 out[i].saturation_limit = in[i].saturation_limit; 173 out[i].cerror = in[i].cerror; 174 out[i].fwhm_x = in[i].fwhm_x; 175 out[i].fwhm_y = in[i].fwhm_y; 176 out[i].trate = in[i].trate; 177 out[i].code = in[i].code; 178 out[i].ccdnum = in[i].ccdnum; 179 out[i].order = in[i].order; 180 out[i].Mx = in[i].Mx; 181 out[i].My = in[i].My; 182 out[i].Mxx = in[i].Mxx; 183 out[i].Mxy = in[i].Mxy; 184 out[i].Myy = in[i].Myy; 185 out[i].Mxxx = in[i].Mxxx; 186 out[i].Mxxy = in[i].Mxxy; 187 out[i].Mxyy = in[i].Mxyy; 188 out[i].Myyy = in[i].Myyy; 189 out[i].Mxxxx = in[i].Mxxxx; 190 out[i].Mxxxy = in[i].Mxxxy; 191 out[i].Mxxyy = in[i].Mxxyy; 192 out[i].Mxyyy = in[i].Mxyyy; 193 out[i].Myyyy = in[i].Myyyy; 194 } 195 return (out); 196 } 197 198 /* convert internal images to panstarrs-format images */ 199 ImagePanstarrs *ImageInternalToPanstarrs (Image *in, int Nvalues) { 200 201 int i; 202 ImagePanstarrs *out; 203 204 ALLOCATE (out, ImagePanstarrs, Nvalues); 205 206 for (i = 0; i < Nvalues; i++) { 207 memcpy (&out[i].coords, &in[i].coords, sizeof(Coords)); 208 memcpy (out[i].dummy, in[i].dummy, 20); 209 strcpy (out[i].name, in[i].name); 210 211 out[i].tzero = in[i].tzero; 212 out[i].nstar = in[i].nstar; 213 out[i].secz = in[i].secz_PS; 214 out[i].NX = in[i].NX; 215 out[i].NY = in[i].NY; 216 out[i].apmifit = in[i].apmifit_PS; 217 out[i].dapmifit = in[i].dapmifit_PS; 218 out[i].Mcal = in[i].Mcal_PS; 219 out[i].dMcal = in[i].dMcal_PS; 220 out[i].Xm = in[i].Xm; 221 out[i].source = in[i].source; 222 out[i].exptime = in[i].exptime; 223 out[i].detection_limit = in[i].detection_limit; 224 out[i].saturation_limit = in[i].saturation_limit; 225 out[i].cerror = in[i].cerror; 226 out[i].fwhm_x = in[i].fwhm_x; 227 out[i].fwhm_y = in[i].fwhm_y; 228 out[i].trate = in[i].trate; 229 out[i].code = in[i].code; 230 out[i].ccdnum = in[i].ccdnum; 231 out[i].order = in[i].order; 232 out[i].Mx = in[i].Mx; 233 out[i].My = in[i].My; 234 out[i].Mxx = in[i].Mxx; 235 out[i].Mxy = in[i].Mxy; 236 out[i].Myy = in[i].Myy; 237 out[i].Mxxx = in[i].Mxxx; 238 out[i].Mxxy = in[i].Mxxy; 239 out[i].Mxyy = in[i].Mxyy; 240 out[i].Myyy = in[i].Myyy; 241 out[i].Mxxxx = in[i].Mxxxx; 242 out[i].Mxxxy = in[i].Mxxxy; 243 out[i].Mxxyy = in[i].Mxxyy; 244 out[i].Mxyyy = in[i].Mxyyy; 245 out[i].Myyyy = in[i].Myyyy; 246 } 247 return (out); 248 } -
trunk/Ohana/src/libohana/src/dvo_image.c
r4993 r5014 2 2 # include <dvo.h> 3 3 4 /* determine db mode ( raw/fits) and read the complete table */4 /* determine db mode (RAW/MEF) and read the complete table */ 5 5 int dvo_image_load (FITS_DB *db, int VERBOSE, int FORCE_READ) { 6 6 … … 27 27 fseek (db[0].f, 0, SEEK_SET); 28 28 29 /* image table can only be RAW or MEF*/29 /* default values */ 30 30 db[0].mode = DVO_MODE_MEF; 31 if (Naxis == 2) db[0].mode = DVO_MODE_RAW; 31 db[0].format = DVO_FORMAT_UNDEF; 32 if (Naxis == 2) db[0].mode = DVO_MODE_RAW; /* image table can only be RAW or MEF */ 33 32 34 switch (db[0].mode) { 33 35 case DVO_MODE_MEF: 34 36 if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_MEF)\n"); 35 37 status = fits_db_load (db); 36 db[0].format = UNDEF;37 38 break; 38 39 case DVO_MODE_RAW: 39 40 if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_RAW)\n"); 40 41 status = dvo_image_load_raw (db, VERBOSE, FORCE_READ); 41 db[0].format = ELIXIR;42 42 break; 43 43 default: … … 45 45 exit (2); 46 46 } 47 /* convert from external to internal format */ 48 /**** this is confused: where does the converted image table go? 49 back in db[0].ftable.buffer? 50 keep the db[0].ftable.header? 51 sync with the correct format?? 52 dvo_image_load_raw creates a new theader for Image 53 - should be ImageElixir 54 FtableToImage should create a new theader for Image 55 ImageToFtable should create a new theader for ImageFOO 56 ****/ 57 image = FtableToImage (db[0].ftable, &db[0].format); 58 db[0].swapped = FALSE; 47 FtableToImage (&db[0].ftable, &db[0].theader, &db[0].format); 48 db[0].swapped = TRUE; /* table has internal byte-order */ 59 49 return (TRUE); 60 50 } … … 63 53 int dvo_image_save (FITS_DB *db, int VERBOSE) { 64 54 65 int Nrow, mode,status;55 int status; 66 56 67 mode = FITS; 68 if (db[0].header.Naxes == 2) mode = RAW; 69 70 /* convert from external to internal format */ 71 FtableToImage (db[0].ftable, db[0].format); 57 /* convert from internal to requested external format */ 58 ImageToFtable (&db[0].ftable, &db[0].theader, db[0].format); 72 59 db[0].swapped = FALSE; 73 60 74 /* byteswap table data */75 Nrow = db[0].theader.Naxis[1];76 if (db[0].swapped) {77 fits_convert_Image ((Image *) db[0].ftable.buffer, sizeof(Image), Nrow);78 db[0].swapped = FALSE;79 }80 81 61 /* write data in appropriate mode */ 82 if (mode == FITS) { 83 status = fits_db_save (db); 84 } else { 85 status = dvo_image_save_raw (db, VERBOSE); 62 switch (db[0].mode) { 63 case DVO_MODE_MEF: 64 case DVO_MODE_SPLIT: 65 status = fits_db_save (db); 66 break; 67 case DVO_MODE_RAW: 68 status = dvo_image_save_raw (db, VERBOSE); 69 break; 70 default: 71 fprintf (stderr, "error writing image mode\n"); 72 exit (2); 86 73 } 87 74 return (TRUE); … … 111 98 int dvo_image_update (FITS_DB *db, int VERBOSE) { 112 99 113 int i, mode,status;100 int status; 114 101 115 mode = FITS; 116 if (db[0].header.Naxes == 2) mode = RAW; 117 118 /* byteswap table data */ 119 for (i = 0; i < db[0].vtable.Nrow; i++) { 120 fits_convert_Image ((Image *) db[0].vtable.buffer[i], sizeof(Image), 1); 121 } 102 /* convert from internal to requested external format */ 103 /* theader is modified to match output format */ 104 ImageToVtable (&db[0].vtable, &db[0].theader, db[0].format); 105 db[0].swapped = FALSE; 122 106 123 107 /* write data in appropriate mode */ 124 if (mode == FITS) { 125 status = fits_db_update (db); 126 } else { 127 status = dvo_image_update_raw (db, VERBOSE); 108 switch (db[0].mode) { 109 case DVO_MODE_MEF: 110 case DVO_MODE_SPLIT: 111 status = fits_db_update (db); 112 break; 113 case DVO_MODE_RAW: 114 status = dvo_image_update_raw (db, VERBOSE); 115 break; 116 default: 117 fprintf (stderr, "error writing image mode\n"); 118 exit (2); 128 119 } 129 120 return (TRUE); 130 121 } 131 132 /* the old Image.dat files used a fake FITS header defining a finite data block133 * this function reads in the data portion, assuming header already loaded134 */135 136 int dvo_image_load_raw (FITS_DB *db, int VERBOSE, int FORCE_READ) {137 138 int Nimage, size, nimage;139 struct stat filestatus;140 Image *image;141 142 /* init & load in FITS table data - return FALSE on error */143 if (!fits_fread_header (db[0].f, &db[0].header)) {144 fprintf (stderr, "can't read primary header\n");145 return (FALSE);146 }147 148 /* check that file size makes sense */149 Nimage = 0;150 fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);151 if (stat (db[0].filename, &filestatus) == -1) {152 if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n");153 exit (1);154 }155 size = Nimage*sizeof(Image) + db[0].header.size;156 if (size != filestatus.st_size) {157 int Ndata;158 159 Ndata = (filestatus.st_size - db[0].header.size) / sizeof (Image);160 if (VERBOSE) fprintf (stderr, "ERROR: image catalog has inconsistent size\n");161 if (VERBOSE) fprintf (stderr, "header: %d, data: %d\n", Nimage, Ndata);162 if (!FORCE_READ) exit (1);163 Nimage = Ndata;164 }165 166 /* create a dummy set of table information */167 /* (original table has NAXIS = 2, change to 0) */168 /* fits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */169 fits_create_matrix (&db[0].header, &db[0].matrix);170 fits_table_mkheader_Image (&db[0].theader);171 db[0].ftable.header = &db[0].theader;172 173 /* alloc, read images */174 ALLOCATE (image, Image, MAX (Nimage, 1));175 nimage = fread (image, sizeof(Image), Nimage, db[0].f);176 if (nimage != Nimage) {177 if (VERBOSE) fprintf (stderr, "ERROR: problem loading image catalog\n");178 exit (1);179 }180 db[0].ftable.buffer = (char *) image;181 fits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);182 db[0].theader.Naxis[1] = Nimage;183 db[0].ftable.size = fits_matrix_size (&db[0].theader);184 185 return (TRUE);186 }187 188 /* write out image db elements from vtable */189 int dvo_image_update_raw (FITS_DB *db, int VERBOSE) {190 191 int i, Nx, Ny, Nrow, Nbytes;192 int status, start, offset;193 int *row;194 195 if (VERBOSE) fprintf (stderr, "writing out %d images\n", db[0].vtable.Nrow);196 197 /* position to start of file */198 Fseek (db[0].f, 0, SEEK_SET);199 200 /* write out complete header (no check on disk size?) */201 status = fwrite (db[0].header.buffer, 1, db[0].header.size, db[0].f);202 if (status != db[0].header.size) {203 fprintf (stderr, "ERROR: failed writing data to image header\n");204 exit (1);205 }206 207 /** this code is identical to fits_fwrite_vtable, except without padding */208 Nrow = db[0].vtable.Nrow;209 row = db[0].vtable.row;210 fits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);211 fits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);212 213 /* file pointer is at beginning of desired table data */214 start = ftell (db[0].f);215 216 for (i = 0; i < Nrow; i++) {217 offset = start + Nx*row[i];218 fseek (db[0].f, offset, SEEK_SET);219 Nbytes = fwrite (db[0].vtable.buffer[i], sizeof (char), Nx, db[0].f);220 if (Nbytes != Nx) { return (FALSE); }221 }222 return (TRUE);223 }224 225 /* write out complete image db table from ftable */226 int dvo_image_save_raw (FITS_DB *db, int VERBOSE) {227 228 int status, Nx, Ny, size, Nbytes;229 230 if (VERBOSE) fprintf (stderr, "writing out %d images\n", db[0].theader.Naxis[1]);231 232 /* position to start of file */233 Fseek (db[0].f, 0, SEEK_SET);234 235 /* write out complete header (no check on disk size?) */236 status = fwrite (db[0].header.buffer, 1, db[0].header.size, db[0].f);237 if (status != db[0].header.size) {238 fprintf (stderr, "ERROR: failed writing data to image header\n");239 exit (1);240 }241 242 fits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);243 fits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);244 size = Nx * Ny;245 Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f);246 if (Nbytes != size) return (FALSE);247 return (TRUE);248 } -
trunk/Ohana/src/libohana/src/fits_db.c
r4864 r5014 85 85 return (FALSE); 86 86 } 87 db[0].swapped = FALSE; /* is table in internal byte-order?*/87 db[0].swapped = FALSE; /* table does not have internal byte-order */ 88 88 return (TRUE); 89 89 } -
trunk/Ohana/src/libohana/src/phot_catalog.c
r4832 r5014 36 36 int load_catalog (Catalog *catalog, char mode, int VERBOSE) { 37 37 38 if (!strcmp (catalog[0].catmode, "RAW")) { 39 load_catalog_raw (catalog, mode, VERBOSE); 40 return (TRUE); 38 int Naxis, Nread; 39 char buffer[241]; 40 41 /** we will have to check catmode for MYSQL before reading from the file **/ 42 43 /* check for mode RAW (NAXIS == 2 in FITS header 3) */ 44 bzero (buffer, 241); 45 fseek (catalog[0].f, 0, SEEK_SET); 46 Nread = fread (buffer, 1, 240, catalog[0].f); 47 if (Nread != 240) { 48 if (VERBOSE) fprintf (stderr, "can't determine image db mode\n"); 49 return (FALSE); 41 50 } 42 if (!strcmp (catalog[0].catmode, "MEF")) { 43 load_catalog_mef (catalog, mode, VERBOSE); 44 return (TRUE); 51 Nread = sscanf (&buffer[160], "NAXIS = %d", &Naxis); 52 if (Nread != 1) { 53 if (VERBOSE) fprintf (stderr, "can't determine catalog db mode\n"); 54 return (FALSE); 45 55 } 46 /* 47 if (!strcmp (catalog[0].catmode, "SPLIT")) { 48 load_catalog_split (catalog, mode, VERBOSE); 49 return (TRUE); 56 fseek (catalog[0].f, 0, SEEK_SET); 57 58 /* the test for MEF vs SPLIT should be EXTEND = T */ 59 60 /* currenly, the mode information is carried per table. 61 the user-set value of catmode will set the output mode for new tables 62 an old table will keep its mode 63 */ 64 65 catalog[0].catmode = DVO_MODE_MEF; 66 catalog[0].catformat = DVO_FORMAT_UNDEF; 67 if (Naxis == 2) catalog[0].catmode = DVO_MODE_RAW; 68 69 switch (catalog[0].catmode) { 70 case DVO_MODE_RAW: 71 if (VERBOSE) fprintf (stderr, "reading catalog (mode DVO_MODE_RAW)\n"); 72 load_catalog_raw (catalog, mode, VERBOSE); 73 break; 74 case DVO_MODE_MEF: 75 if (VERBOSE) fprintf (stderr, "reading catalog (mode DVO_MODE_MEF)\n"); 76 load_catalog_mef (catalog, mode, VERBOSE); 77 break; 78 default: 79 fprintf (stderr, "error getting catalog mode\n"); 80 exit (2); 50 81 } 51 if (!strcmp (catalog[0].catmode, "MYSQL")) { 52 load_catalog_mysql (catalog, mode, VERBOSE); 53 return (TRUE); 54 } 55 */ 56 return (FALSE); 82 return (TRUE); 57 83 } 58 84 59 85 int save_catalog (Catalog *catalog, char VERBOSE) { 60 86 61 if (!strcmp (catalog[0].catmode, "RAW")) { 62 save_catalog_raw (catalog, VERBOSE); 63 return (TRUE); 87 switch (catalog[0].catmode) { 88 case DVO_MODE_RAW: 89 save_catalog_raw (catalog, VERBOSE); 90 break; 91 case DVO_MODE_MEF: 92 save_catalog_mef (catalog, VERBOSE); 93 break; 94 default: 95 fprintf (stderr, "invalid catalog mode\n"); 96 exit (2); 64 97 } 65 if (!strcmp (catalog[0].catmode, "MEF")) { 66 save_catalog_mef (catalog, VERBOSE); 67 return (TRUE); 68 } 69 70 return (FALSE); 98 return (TRUE); 71 99 } 72 100 -
trunk/Ohana/src/libohana/src/phot_catalog_mef.c
r4864 r5014 4 4 int load_catalog_mef (Catalog *catalog, char mode, int VERBOSE) { 5 5 6 int Nitems, Nbytes, N average, Nmeasure, Nmissing, Nsecfilt;6 int Nitems, Nbytes, Nexpect, Naverage, Nmeasure, Nmissing, Nsecfilt; 7 7 FILE *f; 8 8 … … 31 31 if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0; 32 32 33 /** Nsecfilt is unusual: it does not list the number of data items in the table 34 instead, the number of items is Nsecfilt * Naverage. **/ 35 catalog[0].Nsecfilt = Nsecfilt; 36 33 37 /* validate table mode */ 34 38 … … 44 48 return (FALSE); 45 49 } 46 catalog[0].average = FtableToAverage (&ftable, &catalog[0].Naverage, catalog[0].average_format);50 catalog[0].average = FtableToAverage (&ftable, &catalog[0].Naverage, &catalog[0].catformat); 47 51 if (Naverage != catalog[0].Naverage) { 48 52 fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers (%d vs %d)\n", Naverage, catalog[0].Naverage); … … 66 70 return (FALSE); 67 71 } 68 catalog[0].measure = FtableToMeasure (&ftable, &catalog[0].Nmeasure, catalog[0].measure_format);72 catalog[0].measure = FtableToMeasure (&ftable, &catalog[0].Nmeasure, &catalog[0].catformat); 69 73 if (Nmeasure != catalog[0].Nmeasure) { 70 74 fprintf (stderr, "Warning: mismatch between Nmeasure in PHU and Table headers (%d vs %d)\n", Nmeasure, catalog[0].Nmeasure); … … 96 100 } 97 101 102 // catalog[0].secfilt = fits_table_get_SecFilt (&ftable, &Nitems, NULL); 103 // catalog[0].Nsecfilt = Nitems / catalog[0].Naverage; 104 98 105 /* read secfilt table header */ 99 106 if (!fits_fread_header (f, &header)) { … … 107 114 return (FALSE); 108 115 } 109 /* no conversions currently defined */ 110 catalog[0].secfilt = fits_table_get_SecFilt (&ftable, &Nitems, NULL); 111 catalog[0].Nsecfilt = Nitems / catalog[0].Naverage; 112 if (Nsecfilt != catalog[0].Nsecfilt) { 113 fprintf (stderr, "Warning: mismatch between Nsecfilt in PHU and Table headers (%d vs %d)\n", Nsecfilt, catalog[0].Nsecfilt); 116 Nexpect = catalog[0].Nsecfilt * catalog[0].Naverage; 117 catalog[0].secfilt = FtableToSecFilt (&ftable, &Nitems, &catalog[0].catformat); 118 if (Nexpect != Nitems) { 119 fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers (%d vs %d)\n", Nexpect, Nitems); 114 120 } 115 121 } else { … … 125 131 int save_catalog_mef (Catalog *catalog, char VERBOSE) { 126 132 133 int Nitems; 127 134 FILE *f; 128 135 Matrix matrix; … … 163 170 164 171 /* write out Average table (convert to FITS table format) */ 165 AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0]. average_format);172 AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat); 166 173 if (!fits_fwrite_Theader (catalog[0].f, &header)) { 167 174 fprintf (stderr, "can't write table header"); … … 176 183 177 184 /* write out Measure table (convert to FITS table format) */ 178 MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0]. measure_format);185 MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat); 179 186 if (!fits_fwrite_Theader (catalog[0].f, &header)) { 180 187 fprintf (stderr, "can't write table header"); … … 201 208 fits_free_header (&header); 202 209 203 /* write out Sec filt table (convert to FITS table format) */204 /*** note that Nsecfilt is NOT the number of rows! ***/205 fits_table_set_SecFilt (&ftable, catalog[0].secfilt, catalog[0].Naverage * catalog[0].Nsecfilt);206 if (!fits_fwrite_Theader (catalog[0].f, &header)) { 207 fprintf (stderr, "can't write table header"); 208 return (FALSE); 209 } 210 if (!fits_fwrite_table (catalog[0].f, &ftable)) {210 /* write out SecFilt table (convert to FITS table format) */ 211 Nitems = catalog[0].Naverage * catalog[0].Nsecfilt; 212 SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat); 213 if (!fits_fwrite_Theader (catalog[0].f, &header)) { 214 fprintf (stderr, "can't write table header"); 215 return (FALSE); 216 } 217 if (!fits_fwrite_table (catalog[0].f, &ftable)) { 211 218 fprintf (stderr, "can't write table data"); 212 219 return (FALSE); -
trunk/Ohana/src/libohana/src/phot_catalog_raw.c
r4830 r5014 33 33 if (!fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0; 34 34 35 /* determine average and measure format */ 36 strcpy (catalog[0].average_format, "NONE"); 37 strcpy (catalog[0].measure_format, "NONE"); 35 /* determine catalog format */ 36 catalog[0].catformat = DVO_FORMAT_UNDEF; 38 37 if (fits_scan (&catalog[0].header, "FORMAT", "%s", 1, format)) { 39 if (!strcmp (format, "INTERNAL")) { 40 sprintf (catalog[0].average_format, "DVO_AVERAGE"); 41 sprintf (catalog[0].measure_format, "DVO_MEASURE"); 42 } else { 43 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", format); 44 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", format); 45 } 46 goto got_format; 38 if (!strcmp (format, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL; 39 if (!strcmp (format, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS; 40 if (!strcmp (format, "ELIXIR")) catalog[0].catformat = DVO_FORMAT_ELIXIR; 41 if (!strcmp (format, "PANSTARRS")) catalog[0].catformat = DVO_FORMAT_PANSTARRS; 42 if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format; 47 43 } 48 44 if (fits_scan (&catalog[0].header, "NEWMEAS", "%t", 1, &NewMeasure)) { 49 strcpy (catalog[0].average_format, "DVO_AVERAGE_ELIXIR"); 50 strcpy (catalog[0].measure_format, "DVO_MEASURE_ELIXIR"); 45 catalog[0].catformat = DVO_FORMAT_ELIXIR; 51 46 goto got_format; 52 47 } 53 48 if (fits_scan (&catalog[0].header, "TELESCOP", "%s", 1, telescope)) { 54 49 if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) { 55 strcpy (catalog[0].average_format, "DVO_AVERAGE_ELIXIR"); 56 strcpy (catalog[0].measure_format, "DVO_MEASURE_ELIXIR"); 50 catalog[0].catformat = DVO_FORMAT_LONEOS; 57 51 goto got_format; 58 52 } 59 } 53 if (!strncmp (telescope, "1.3m McGraw-Hill", strlen("1.3m McGraw-Hill"))) { 54 catalog[0].catformat = DVO_FORMAT_ELIXIR; 55 goto got_format; 56 } 57 } 58 if (VERBOSE) fprintf (stderr, "cannot determine catalog format\n"); 59 return (FALSE); 60 60 61 61 got_format: 62 62 /* determine datatype sizes */ 63 AverageSize = 0; 64 if (!strcmp (catalog[0].average_format, "DVO_AVERAGE")) AverageSize = sizeof(Average); 65 if (!strcmp (catalog[0].average_format, "DVO_AVERAGE_ELIXIR")) AverageSize = sizeof(AverageElixir); 66 if (!strcmp (catalog[0].average_format, "DVO_AVERAGE_LONEOS")) AverageSize = sizeof(AverageLoneos); 67 if (!strcmp (catalog[0].average_format, "DVO_AVERAGE_PANSTARRS")) AverageSize = sizeof(AveragePanstarrs); 68 if (AverageSize == 0) { 69 fprintf (stderr, "average format is invalid: %s\n", catalog[0].average_format); 70 return (FALSE); 71 } 72 MeasureSize = 0; 73 if (!strcmp (catalog[0].measure_format, "DVO_MEASURE")) MeasureSize = sizeof(Measure); 74 if (!strcmp (catalog[0].measure_format, "DVO_MEASURE_ELIXIR")) MeasureSize = sizeof(MeasureElixir); 75 if (!strcmp (catalog[0].measure_format, "DVO_MEASURE_LONEOS")) MeasureSize = sizeof(MeasureLoneos); 76 if (!strcmp (catalog[0].measure_format, "DVO_MEASURE_PANSTARRS")) MeasureSize = sizeof(MeasurePanstarrs); 77 if (MeasureSize == 0) { 78 fprintf (stderr, "measure format is invalid: %s\n", catalog[0].measure_format); 79 return (FALSE); 63 switch (catalog[0].catformat) { 64 case DVO_FORMAT_INTERNAL: 65 AverageSize = sizeof(Average); 66 MeasureSize = sizeof(Measure); 67 SecFiltSize = sizeof (SecFilt); 68 break; 69 case DVO_FORMAT_LONEOS: 70 AverageSize = sizeof(AverageLoneos); 71 MeasureSize = sizeof(MeasureLoneos); 72 SecFiltSize = sizeof (SecFiltLoneos); 73 break; 74 case DVO_FORMAT_ELIXIR: 75 AverageSize = sizeof(AverageElixir); 76 MeasureSize = sizeof(MeasureElixir); 77 SecFiltSize = sizeof (SecFiltElixir); 78 break; 79 case DVO_FORMAT_PANSTARRS: 80 AverageSize = sizeof(AveragePanstarrs); 81 MeasureSize = sizeof(MeasurePanstarrs); 82 SecFiltSize = sizeof (SecFiltPanstarrs); 83 break; 84 default: 85 fprintf (stderr, "programming error in phot_catalog_raw\n"); 86 exit (2); 80 87 } 81 88 MissingSize = sizeof (Missing); 82 SecFiltSize = sizeof (SecFilt);83 89 84 90 /* predicted file size - for double checking data validity */ … … 116 122 /* read and convert the averages (use a macro to clean this up?) */ 117 123 if (mode & LOAD_AVES) { 118 catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0]. average_format);124 catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0].catformat); 119 125 } else { 120 126 /* skip over averages */ … … 125 131 /* read and convert the measures (use a macro to clean this up?) */ 126 132 if (mode & LOAD_MEAS) { 127 catalog[0].measure = ReadRawMeasure (catalog[0].f, catalog[0].Nmeasure, catalog[0]. measure_format);133 catalog[0].measure = ReadRawMeasure (catalog[0].f, catalog[0].Nmeasure, catalog[0].catformat); 128 134 } else { 129 135 /* skip over measures */ … … 151 157 if (mode & LOAD_SECF) { 152 158 Nitems = catalog[0].Naverage * catalog[0].Nsecfilt; 153 ALLOCATE (catalog[0].secfilt, SecFilt, MAX (Nitems, 1)); 154 nitems = fread (catalog[0].secfilt, SecFiltSize, Nitems, f); 155 if (nitems != Nitems) { 156 if (VERBOSE) fprintf (stderr, "failed to read secondary filters from catalog file %s (%d vs %d)\n", catalog[0].filename, nitems, Nitems); 157 return (FALSE); 158 } 159 fits_convert_SecFilt (catalog[0].secfilt, SecFiltSize, Nitems); 159 catalog[0].secfilt = ReadRawSecFilt (catalog[0].f, Nitems, catalog[0].catformat); 160 160 } else { 161 161 /* skip over secfilts */ 162 Nskip = catalog[0].Nsecfilt * SecFiltSize * catalog[0].Naverage;162 Nskip = catalog[0].Nsecfilt * catalog[0].Naverage * SecFiltSize; 163 163 fseek (f, Nskip, SEEK_CUR); 164 164 } … … 188 188 189 189 int Nitems, nitems; 190 char *p;191 190 FILE *f; 192 191 … … 203 202 204 203 /* specify the appropriate data format */ 205 if (!strcmp (catalog[0].average_format, "DVO_AVERAGE")) { 206 fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL"); 207 } else { 208 p = catalog[0].average_format + strlen ("DVO_AVERAGE_"); 209 fits_modify (&catalog[0].header, "FORMAT", "%s", 1, p); 210 } 204 if (catalog[0].catformat == DVO_FORMAT_INTERNAL) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL"); 205 if (catalog[0].catformat == DVO_FORMAT_LONEOS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS"); 206 if (catalog[0].catformat == DVO_FORMAT_ELIXIR) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR"); 207 if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS"); 211 208 212 209 /* rewind file pointers and truncate file */ … … 223 220 224 221 /* write averages and measures */ 225 WriteRawAverage (f, catalog[0].average, catalog[0].Naverage, catalog[0]. average_format);226 WriteRawMeasure (f, catalog[0].measure, catalog[0].Nmeasure, catalog[0]. measure_format);222 WriteRawAverage (f, catalog[0].average, catalog[0].Naverage, catalog[0].catformat); 223 WriteRawMeasure (f, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat); 227 224 228 225 /* write missing data */ … … 235 232 } 236 233 237 /* write secfilt data */238 234 Nitems = catalog[0].Naverage * catalog[0].Nsecfilt; 239 fits_convert_SecFilt (catalog[0].secfilt, sizeof(SecFilt), Nitems); 240 nitems = fwrite (catalog[0].secfilt, sizeof(SecFilt), Nitems, f); 241 if (nitems != Nitems) { 242 if (VERBOSE) fprintf (stderr, "failed to write catalog file secfilt %s\n", catalog[0].filename); 243 return (FALSE); 244 } 245 235 WriteRawSecFilt (f, catalog[0].secfilt, Nitems, catalog[0].catformat); 246 236 return (TRUE); 247 248 237 } 249 238 … … 251 240 some warnings: 252 241 - need to be wary of exit condition errors 253 - average_format and measure_format must be the same format (not checked)254 242 ***/ 243 244 /** Average / Raw Table conversions **/ 245 246 Average *ReadRawAverage (FILE *f, int Naverage, int format) { 247 248 int nitems; 249 Average *average; 250 AverageElixir *tmpAverageElixir; 251 AverageLoneos *tmpAverageLoneos; 252 AveragePanstarrs *tmpAveragePanstarrs; 253 254 switch (format) { 255 case DVO_FORMAT_INTERNAL: 256 ALLOCATE (average, Average, MAX (Naverage, 1)); 257 nitems = fread (average, sizeof(Average), Naverage, f); 258 if (nitems != Naverage) { 259 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 260 return (NULL); 261 } 262 fits_convert_Average (average, sizeof(Average), Naverage); 263 break; 264 case DVO_FORMAT_ELIXIR: 265 ALLOCATE (tmpAverageElixir, AverageElixir, MAX (Naverage, 1)); 266 nitems = fread (tmpAverageElixir, sizeof(AverageElixir), Naverage, f); 267 if (nitems != Naverage) { 268 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 269 return (NULL); 270 } 271 fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage); 272 average = AverageElixirToInternal (tmpAverageElixir, Naverage); 273 free (tmpAverageElixir); 274 break; 275 case DVO_FORMAT_LONEOS: 276 ALLOCATE (tmpAverageLoneos, AverageLoneos, MAX (Naverage, 1)); 277 nitems = fread (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f); 278 if (nitems != Naverage) { 279 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 280 return (NULL); 281 } 282 fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage); 283 average = AverageLoneosToInternal (tmpAverageLoneos, Naverage); 284 free (tmpAverageLoneos); 285 break; 286 case DVO_FORMAT_PANSTARRS: 287 ALLOCATE (tmpAveragePanstarrs, AveragePanstarrs, MAX (Naverage, 1)); 288 nitems = fread (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f); 289 if (nitems != Naverage) { 290 fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage); 291 return (NULL); 292 } 293 fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage); 294 average = AveragePanstarrsToInternal (tmpAveragePanstarrs, Naverage); 295 free (tmpAveragePanstarrs); 296 break; 297 default: 298 fprintf (stderr, "error reading measures\n"); 299 return (NULL); 300 } 301 return (average); 302 } 303 304 /* accepts and converts internal average formats and outputs 305 raw data in the specified format */ 306 int WriteRawAverage (FILE *f, Average *average, int Naverage, int format) { 307 308 int nitems; 309 AverageElixir *tmpAverageElixir; 310 AverageLoneos *tmpAverageLoneos; 311 AveragePanstarrs *tmpAveragePanstarrs; 312 313 switch (format) { 314 case DVO_FORMAT_INTERNAL: 315 fits_convert_Average (average, sizeof(Average), Naverage); 316 nitems = fwrite (average, sizeof(Average), Naverage, f); 317 if (nitems != Naverage) { 318 fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage); 319 return (FALSE); 320 } 321 break; 322 case DVO_FORMAT_ELIXIR: 323 tmpAverageElixir = AverageInternalToElixir (average, Naverage); 324 fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage); 325 nitems = fwrite (tmpAverageElixir, sizeof(AverageElixir), Naverage, f); 326 free (tmpAverageElixir); 327 if (nitems != Naverage) { 328 fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage); 329 return (FALSE); 330 } 331 break; 332 case DVO_FORMAT_LONEOS: 333 tmpAverageLoneos = AverageInternalToLoneos (average, Naverage); 334 fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage); 335 nitems = fwrite (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f); 336 free (tmpAverageLoneos); 337 if (nitems != Naverage) { 338 fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage); 339 return (FALSE); 340 } 341 break; 342 case DVO_FORMAT_PANSTARRS: 343 tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage); 344 fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage); 345 nitems = fwrite (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f); 346 free (tmpAveragePanstarrs); 347 if (nitems != Naverage) { 348 fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage); 349 return (FALSE); 350 } 351 break; 352 default: 353 fprintf (stderr, "error writing averages\n"); 354 return (FALSE); 355 } 356 return (TRUE); 357 } 358 359 /** Average / Raw Table conversions **/ 360 361 Measure *ReadRawMeasure (FILE *f, int Nmeasure, int format) { 362 363 int nitems; 364 Measure *measure; 365 MeasureElixir *tmpMeasureElixir; 366 MeasureLoneos *tmpMeasureLoneos; 367 MeasurePanstarrs *tmpMeasurePanstarrs; 368 369 switch (format) { 370 case DVO_FORMAT_INTERNAL: 371 ALLOCATE (measure, Measure, MAX (Nmeasure, 1)); 372 nitems = fread (measure, sizeof(Measure), Nmeasure, f); 373 if (nitems != Nmeasure) { 374 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 375 return (NULL); 376 } 377 fits_convert_Measure (measure, sizeof(Measure), Nmeasure); 378 break; 379 case DVO_FORMAT_ELIXIR: 380 ALLOCATE (tmpMeasureElixir, MeasureElixir, MAX (Nmeasure, 1)); 381 nitems = fread (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f); 382 if (nitems != Nmeasure) { 383 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 384 return (NULL); 385 } 386 fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure); 387 measure = MeasureElixirToInternal (tmpMeasureElixir, Nmeasure); 388 free (tmpMeasureElixir); 389 break; 390 case DVO_FORMAT_LONEOS: 391 ALLOCATE (tmpMeasureLoneos, MeasureLoneos, MAX (Nmeasure, 1)); 392 nitems = fread (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f); 393 if (nitems != Nmeasure) { 394 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 395 return (NULL); 396 } 397 fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure); 398 measure = MeasureLoneosToInternal (tmpMeasureLoneos, Nmeasure); 399 free (tmpMeasureLoneos); 400 break; 401 case DVO_FORMAT_PANSTARRS: 402 ALLOCATE (tmpMeasurePanstarrs, MeasurePanstarrs, MAX (Nmeasure, 1)); 403 nitems = fread (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f); 404 if (nitems != Nmeasure) { 405 fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure); 406 return (NULL); 407 } 408 fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure); 409 measure = MeasurePanstarrsToInternal (tmpMeasurePanstarrs, Nmeasure); 410 free (tmpMeasurePanstarrs); 411 break; 412 default: 413 fprintf (stderr, "error reading measures\n"); 414 return (NULL); 415 } 416 return (measure); 417 } 418 419 /* accepts and converts internal measure formats and outputs 420 raw data in the specified format */ 421 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, int format) { 422 423 int nitems; 424 MeasureElixir *tmpMeasureElixir; 425 MeasureLoneos *tmpMeasureLoneos; 426 MeasurePanstarrs *tmpMeasurePanstarrs; 427 428 switch (format) { 429 case DVO_FORMAT_INTERNAL: 430 fits_convert_Measure (measure, sizeof(Measure), Nmeasure); 431 nitems = fwrite (measure, sizeof(Measure), Nmeasure, f); 432 if (nitems != Nmeasure) { 433 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 434 return (FALSE); 435 } 436 break; 437 case DVO_FORMAT_ELIXIR: 438 tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure); 439 fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure); 440 nitems = fwrite (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f); 441 free (tmpMeasureElixir); 442 if (nitems != Nmeasure) { 443 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 444 return (FALSE); 445 } 446 break; 447 case DVO_FORMAT_LONEOS: 448 tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure); 449 fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure); 450 nitems = fwrite (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f); 451 free (tmpMeasureLoneos); 452 if (nitems != Nmeasure) { 453 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 454 return (FALSE); 455 } 456 break; 457 case DVO_FORMAT_PANSTARRS: 458 tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure); 459 fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure); 460 nitems = fwrite (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f); 461 free (tmpMeasurePanstarrs); 462 if (nitems != Nmeasure) { 463 fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure); 464 return (FALSE); 465 } 466 break; 467 default: 468 fprintf (stderr, "error writing measures\n"); 469 return (FALSE); 470 } 471 return (TRUE); 472 } 473 474 /** SecFilt / Raw Table conversions **/ 475 476 SecFilt *ReadRawSecFilt (FILE *f, int Nsecfilt, int format) { 477 478 int nitems; 479 SecFilt *secfilt; 480 SecFiltElixir *tmpSecFiltElixir; 481 SecFiltLoneos *tmpSecFiltLoneos; 482 SecFiltPanstarrs *tmpSecFiltPanstarrs; 483 484 switch (format) { 485 case DVO_FORMAT_INTERNAL: 486 ALLOCATE (secfilt, SecFilt, MAX (Nsecfilt, 1)); 487 nitems = fread (secfilt, sizeof(SecFilt), Nsecfilt, f); 488 if (nitems != Nsecfilt) { 489 fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt); 490 return (NULL); 491 } 492 fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt); 493 break; 494 case DVO_FORMAT_ELIXIR: 495 ALLOCATE (tmpSecFiltElixir, SecFiltElixir, MAX (Nsecfilt, 1)); 496 nitems = fread (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f); 497 if (nitems != Nsecfilt) { 498 fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt); 499 return (NULL); 500 } 501 fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt); 502 secfilt = SecFiltElixirToInternal (tmpSecFiltElixir, Nsecfilt); 503 free (tmpSecFiltElixir); 504 break; 505 case DVO_FORMAT_LONEOS: 506 ALLOCATE (tmpSecFiltLoneos, SecFiltLoneos, MAX (Nsecfilt, 1)); 507 nitems = fread (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f); 508 if (nitems != Nsecfilt) { 509 fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt); 510 return (NULL); 511 } 512 fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt); 513 secfilt = SecFiltLoneosToInternal (tmpSecFiltLoneos, Nsecfilt); 514 free (tmpSecFiltLoneos); 515 break; 516 case DVO_FORMAT_PANSTARRS: 517 ALLOCATE (tmpSecFiltPanstarrs, SecFiltPanstarrs, MAX (Nsecfilt, 1)); 518 nitems = fread (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f); 519 if (nitems != Nsecfilt) { 520 fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt); 521 return (NULL); 522 } 523 fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt); 524 secfilt = SecFiltPanstarrsToInternal (tmpSecFiltPanstarrs, Nsecfilt); 525 free (tmpSecFiltPanstarrs); 526 break; 527 default: 528 fprintf (stderr, "error reading measures\n"); 529 return (NULL); 530 } 531 return (secfilt); 532 } 533 534 /* accepts and converts internal secfilt formats and outputs 535 raw data in the specified format */ 536 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, int Nsecfilt, int format) { 537 538 int nitems; 539 SecFiltElixir *tmpSecFiltElixir; 540 SecFiltLoneos *tmpSecFiltLoneos; 541 SecFiltPanstarrs *tmpSecFiltPanstarrs; 542 543 switch (format) { 544 case DVO_FORMAT_INTERNAL: 545 fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt); 546 nitems = fwrite (secfilt, sizeof(SecFilt), Nsecfilt, f); 547 if (nitems != Nsecfilt) { 548 fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt); 549 return (FALSE); 550 } 551 break; 552 case DVO_FORMAT_ELIXIR: 553 tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt); 554 fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt); 555 nitems = fwrite (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f); 556 free (tmpSecFiltElixir); 557 if (nitems != Nsecfilt) { 558 fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt); 559 return (FALSE); 560 } 561 break; 562 case DVO_FORMAT_LONEOS: 563 tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt); 564 fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt); 565 nitems = fwrite (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f); 566 free (tmpSecFiltLoneos); 567 if (nitems != Nsecfilt) { 568 fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt); 569 return (FALSE); 570 } 571 break; 572 case DVO_FORMAT_PANSTARRS: 573 tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt); 574 fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt); 575 nitems = fwrite (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f); 576 free (tmpSecFiltPanstarrs); 577 if (nitems != Nsecfilt) { 578 fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt); 579 return (FALSE); 580 } 581 break; 582 default: 583 fprintf (stderr, "error writing secfilts\n"); 584 return (FALSE); 585 } 586 return (TRUE); 587 } 588 -
trunk/Ohana/src/libohana/src/photfits.c
r3466 r5014 2 2 # include <dvo.h> 3 3 # define MAX_ORDER 3 4 5 /**** XXXX warning: these functions have not been corrected to handle 6 the change of Mcal from millimags to mags 7 I don't think most functions are using the Mcal polynomial terms in 8 any case... ****/ 9 10 /* all terms of order > 0 are stored as 16bit floats 11 the zero-order term is stored as a short int (-32k,+32k) */ 4 12 5 13 /* convert double to low-precision short int */ … … 50 58 51 59 /* convert image parameters to c[i] coeffs */ 52 /* all terms of order > 0 are stored as 16bit floats53 the zero-order term is stored as a short int (-32k,+32k) */54 55 60 void returnMcal (Image *image, double *c) { 56 61 57 62 switch (image[0].order) { 58 63 case 0: 59 c[0] = image[0].Mcal ;60 return; 61 case 1: 62 c[0] = image[0].Mcal ;64 c[0] = image[0].Mcal_PS; 65 return; 66 case 1: 67 c[0] = image[0].Mcal_PS; 63 68 c[1] = getMi (image[0].Mx); 64 69 c[2] = getMi (image[0].My); 65 70 return; 66 71 case 2: 67 c[0] = image[0].Mcal ;72 c[0] = image[0].Mcal_PS; 68 73 c[1] = getMi (image[0].Mx); 69 74 c[2] = getMi (image[0].Mxx); … … 73 78 return; 74 79 case 3: 75 c[0] = image[0].Mcal ;80 c[0] = image[0].Mcal_PS; 76 81 c[1] = getMi (image[0].Mx); 77 82 c[2] = getMi (image[0].Mxx); … … 85 90 return; 86 91 case 4: 87 c[0] = image[0].Mcal ;92 c[0] = image[0].Mcal_PS; 88 93 c[1] = getMi (image[0].Mx); 89 94 c[2] = getMi (image[0].Mxx); … … 113 118 switch (order) { 114 119 case 0: 115 image[0].Mcal = c[0];116 return; 117 case 1: 118 image[0].Mcal = c[0];120 image[0].Mcal_PS = c[0]; 121 return; 122 case 1: 123 image[0].Mcal_PS = c[0]; 119 124 image[0].Mx = putMi(c[1]); 120 125 image[0].My = putMi(c[2]); 121 126 return; 122 127 case 2: 123 image[0].Mcal = c[0];128 image[0].Mcal_PS = c[0]; 124 129 image[0].Mx = putMi(c[1]); 125 130 image[0].Mxx = putMi(c[2]); … … 129 134 return; 130 135 case 3: 131 image[0].Mcal = c[0];136 image[0].Mcal_PS = c[0]; 132 137 image[0].Mx = putMi(c[1]); 133 138 image[0].Mxx = putMi(c[2]); … … 141 146 return; 142 147 case 4: 143 image[0].Mcal = c[0];148 image[0].Mcal_PS = c[0]; 144 149 image[0].Mx = putMi(c[1]); 145 150 image[0].Mxx = putMi(c[2]); … … 158 163 return; 159 164 default: 160 image[0].Mcal = 0.0;165 image[0].Mcal_PS = 0.0; 161 166 image[0].order = 0; 162 167 return; -
trunk/Ohana/src/mosastro/src/gptolemy.c
r4865 r5014 6 6 Catalog catalog; 7 7 StarData *stars; 8 9 /* no autodetect for CATMODE yet */10 strcpy (catalog.catmode, CATMODE);11 8 12 9 Nstars = 0; … … 21 18 break; 22 19 } 20 21 /* CATMODE and CATFORMAT determined from catalog */ 23 22 if (!load_catalog (&catalog, LOAD_AVES | LOAD_MEAS, FALSE)) { 24 23 fprintf (stderr, "can't load catalog data %s\n", filename); -
trunk/Ohana/src/opihi/dvo/avextract.c
r4834 r5014 28 28 /* find CATDIR in config system */ 29 29 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 30 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)31 strcpy (catalog.catmode, "RAW");32 30 33 31 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/calextract.c
r4865 r5014 30 30 /* find CATDIR in config system */ 31 31 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 32 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)33 strcpy (catalog.catmode, "RAW");34 32 35 33 /* command line arguments */ -
trunk/Ohana/src/opihi/dvo/calmextract.c
r4865 r5014 31 31 /* find CATDIR in config system */ 32 32 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 33 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)34 strcpy (catalog.catmode, "RAW");35 33 36 34 /* command line arguments */ -
trunk/Ohana/src/opihi/dvo/catalog.c
r4865 r5014 32 32 VarConfig ("GSCDIR", "%s", gscdir); 33 33 VarConfig ("CATDIR", "%s", catdir); 34 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)35 strcpy (catalog.catmode, "RAW");36 34 37 35 Mz = 17.0; -
trunk/Ohana/src/opihi/dvo/ccd.c
r4834 r5014 28 28 /* find CATDIR in config system */ 29 29 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 30 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)31 strcpy (catalog.catmode, "RAW");32 30 33 31 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/cmatch.c
r4852 r5014 11 11 VarConfig ("GSCDIR", "%s", gscdir); 12 12 VarConfig ("CATDIR", "%s", catdir); 13 if (VarConfig ("CATMODE", "%s", catalog1.catmode) == NULL)14 strcpy (catalog1.catmode, "RAW");15 13 16 14 if (argc != 9) { -
trunk/Ohana/src/opihi/dvo/cmd.c
r4834 r5014 28 28 /* find CATDIR in config system */ 29 29 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 30 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)31 strcpy (catalog.catmode, "RAW");32 30 33 31 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/ddmags.c
r4834 r5014 28 28 /* find CATDIR in config system */ 29 29 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 30 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)31 strcpy (catalog.catmode, "RAW");32 30 33 31 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/dmagaves.c
r4834 r5014 29 29 /* find CATDIR in config system */ 30 30 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 31 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)32 strcpy (catalog.catmode, "RAW");33 31 34 32 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/dmagmeas.c
r4834 r5014 29 29 /* find CATDIR in config system */ 30 30 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 31 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)32 strcpy (catalog.catmode, "RAW");33 31 34 32 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/dmags.c
r4834 r5014 28 28 /* find CATDIR in config system */ 29 29 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 30 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)31 strcpy (catalog.catmode, "RAW");32 30 33 31 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/dmt.c
r4865 r5014 20 20 21 21 VarConfig ("CATDIR", "%s", catdir); 22 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)23 strcpy (catalog.catmode, "RAW");24 22 25 23 vec1 = vec2 = vec3 = vec4 = vec5 = NULL; -
trunk/Ohana/src/opihi/dvo/extract.c
r4834 r5014 36 36 VarConfig ("GSCDIR", "%s", gscdir); 37 37 VarConfig ("CATDIR", "%s", catdir); 38 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)39 strcpy (catalog.catmode, "RAW");40 38 41 39 regions = (RegionFile *) NULL; -
trunk/Ohana/src/opihi/dvo/fitcolors.c
r4834 r5014 14 14 int N1, N2, i1, i2, mode[4]; 15 15 int Nsec, Nregions, status; 16 char catdir[256], catmode[16],filename[256], *RegionName, *RegionList;16 char catdir[256], filename[256], *RegionName, *RegionList; 17 17 char *cmd, *outcmd, *camera; 18 18 double *M1, *M2; … … 37 37 /* find CATDIR in config system */ 38 38 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 39 if (VarConfig ("CATMODE", "%s", catmode) == NULL) strcpy (catmode, "RAW");40 39 41 40 /* interpret command-line options */ … … 104 103 for (k = 0; k < Nregions; k++) { 105 104 /* lock, load, unlock catalog */ 106 strcpy (catalog[k].catmode, catmode);107 105 sprintf (filename, "%s/%s", catdir, regions[k].name); 108 106 catalog[k].filename = filename; -
trunk/Ohana/src/opihi/dvo/gimages.c
r4689 r5014 4 4 5 5 int i, j, N, Nimage, Nfound, *subset, Nsubset, status; 6 double ra, dec, Ra, Dec, X, Y , Mcal;6 double ra, dec, Ra, Dec, X, Y; 7 7 double trange, t; 8 8 int TimeSelect, PixelCoords, TimeFormat, PhotCodeSelect; … … 96 96 if (Y > image[i].NY) continue; 97 97 98 /*** XXX we need to re-introduce the use of applyMcal 98 99 Mcal = applyMcal (&image[i], 2048.0, 2048.0); 100 ***/ 101 99 102 date = sec_to_date (image[i].tzero); 100 103 101 104 if (PixelCoords) { 102 105 fprintf (GetOutfile(), "%3d %s %6.1f %6.1f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x\n", 103 Nfound, image[i].name, X, Y, date, image[i].nstar, image[i].source, 0.001*image[i].secz, 0.001*Mcal, 0.001*image[i].dMcal, image[i].exptime, image[i].code);106 Nfound, image[i].name, X, Y, date, image[i].nstar, image[i].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS, image[i].exptime, image[i].code); 104 107 } else { 105 108 XY_to_RD (&ra, &dec, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords); 106 109 fprintf (GetOutfile(), "%3d %s %8.4f %8.4f %20s %5d %2d %4.2f %6.3f %5.3f %5.3f %4x\n", 107 Nfound, image[i].name, ra, dec, date, image[i].nstar, image[i].source, 0.001*image[i].secz, 0.001*Mcal, 0.001*image[i].dMcal, image[i].exptime, image[i].code);110 Nfound, image[i].name, ra, dec, date, image[i].nstar, image[i].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS, image[i].exptime, image[i].code); 108 111 } 109 112 sprintf (name, "IMAGEx:%d", Nfound); -
trunk/Ohana/src/opihi/dvo/gstar.c
r4865 r5014 18 18 19 19 if (VarConfig ("CATDIR", "%s", catdir) == NULL) return (FALSE); 20 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)21 strcpy (catalog.catmode, "RAW");22 20 23 21 if (!InitPhotcodes ()) return (FALSE); -
trunk/Ohana/src/opihi/dvo/imdata.c
r4865 r5014 40 40 } 41 41 } 42 43 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)44 strcpy (catalog.catmode, "RAW");45 42 46 43 if (argc != 4) { -
trunk/Ohana/src/opihi/dvo/imextract.c
r4689 r5014 139 139 break; 140 140 case (AIRMASS): 141 vec[0].elements[N] = 0.001*image[j].secz;141 vec[0].elements[N] = image[j].secz_PS; 142 142 break; 143 143 case (MCAL): 144 vec[0].elements[N] = 0.001*image[j].Mcal;144 vec[0].elements[N] = image[j].Mcal_PS; 145 145 break; 146 146 case (dMCAL): 147 vec[0].elements[N] = 0.001*image[j].dMcal;147 vec[0].elements[N] = image[j].dMcal_PS; 148 148 break; 149 149 case (PHOTCODE): -
trunk/Ohana/src/opihi/dvo/imlist.c
r4689 r5014 86 86 XY_to_RD (&r, &d, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords); 87 87 fprintf (GetOutfile(), "%3d %s %8.4f %8.4f %f %5d %2d %4.2f %5.3f %5.3f\n", 88 i, image[i].name, r, d, t, image[i].nstar, image[i].source, 0.001*image[i].secz, 0.001*image[i].Mcal, 0.001*image[i].dMcal);88 i, image[i].name, r, d, t, image[i].nstar, image[i].source, image[i].secz_PS, image[i].Mcal_PS, image[i].dMcal_PS); 89 89 } 90 90 -
trunk/Ohana/src/opihi/dvo/imphot.c
r4689 r5014 74 74 switch (image[i].order) { 75 75 case 0: 76 fprintf (stderr, "%s: %d - % d\n", image[i].name, image[i].order, image[i].Mcal);76 fprintf (stderr, "%s: %d - %f\n", image[i].name, image[i].order, image[i].Mcal_PS); 77 77 break; 78 78 case 1: 79 fprintf (stderr, "%s: %d - % d, %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My);79 fprintf (stderr, "%s: %d - %f, %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My); 80 80 break; 81 81 case 2: 82 fprintf (stderr, "%s: %d - % d, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy);82 fprintf (stderr, "%s: %d - %f, %d %d, %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, image[i].Mxx, image[i].Mxy, image[i].Myy); 83 83 break; 84 84 case 3: 85 fprintf (stderr, "%s: %d - % d, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My,85 fprintf (stderr, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, 86 86 image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy); 87 87 break; 88 88 case 4: 89 fprintf (stderr, "%s: %d - % d, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal, image[i].Mx, image[i].My,89 fprintf (stderr, "%s: %d - %f, %d %d, %d %d %d, %d %d %d %d, %d %d %d %d %d\n", image[i].name, image[i].order, image[i].Mcal_PS, image[i].Mx, image[i].My, 90 90 image[i].Mxx, image[i].Mxy, image[i].Myy, image[i].Mxxx, image[i].Mxxy, image[i].Mxyy, image[i].Myyy, 91 91 image[i].Mxxxx, image[i].Mxxxy, image[i].Mxxyy, image[i].Mxyyy, image[i].Myyyy); -
trunk/Ohana/src/opihi/dvo/imstats.c
r4689 r5014 45 45 fprintf (stdout, "seq ra (J2000) dec time (s) Nstars\n"); 46 46 for (i = 0; i < Nimage; i++) { 47 Xvec.elements[i] = 0.001*image[i].secz;47 Xvec.elements[i] = image[i].secz_PS; 48 48 if (Mcal) 49 Yvec.elements[i] = 0.001*image[i].Mcal;49 Yvec.elements[i] = image[i].Mcal_PS; 50 50 else 51 Yvec.elements[i] = 0.001*image[i].dMcal;51 Yvec.elements[i] = image[i].dMcal_PS; 52 52 if (!FindMosaicForImage (image, Nimage, i)) continue; 53 53 XY_to_RD (&r, &d, 0.5*image[i].NX, 0.5*image[i].NY, &image[i].coords); 54 54 fprintf (stderr, "%d %8.4f %8.4f %10d %6d %5.3f %6.3f %6.3f\n", 55 55 i, r, d, image[i].tzero, image[i].nstar, Xvec.elements[i], 56 0.001*image[i].Mcal, 0.001*image[i].dMcal);56 image[i].Mcal_PS, image[i].dMcal_PS); 57 57 } 58 58 if (AutoLimits) SetLimits (&Xvec, &Yvec, &graphmode); -
trunk/Ohana/src/opihi/dvo/lcurve.c
r4865 r5014 18 18 19 19 VarConfig ("CATDIR", "%s", catdir); 20 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)21 strcpy (catalog.catmode, "RAW");22 20 23 21 if (!InitPhotcodes ()) return (FALSE); -
trunk/Ohana/src/opihi/dvo/lightcurve.c
r4865 r5014 15 15 16 16 VarConfig ("CATDIR", "%s", catdir); 17 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)18 strcpy (catalog.catmode, "RAW");19 17 20 18 if (!InitPhotcodes ()) return (FALSE); -
trunk/Ohana/src/opihi/dvo/mextract.c
r4833 r5014 29 29 /* find CATDIR in config system */ 30 30 if (VarConfig ("CATDIR", "%s", catdir) == NULL) goto escape; 31 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)32 strcpy (catalog.catmode, "RAW");33 31 34 32 /* interpret command-line options */ -
trunk/Ohana/src/opihi/dvo/pmeasure.c
r4833 r5014 22 22 if (!GetGraph (&graphmode, NULL, &Ngraph)) return (FALSE); 23 23 if (VarConfig ("CATDIR", "%s", catdir) == NULL) return (FALSE); 24 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)25 strcpy (catalog.catmode, "RAW");26 24 27 25 regions = (RegionFile *) NULL; -
trunk/Ohana/src/opihi/dvo/subpix.c
r4834 r5014 23 23 24 24 VarConfig ("CATDIR", "%s", catdir); 25 if (VarConfig ("CATMODE", "%s", catalog.catmode) == NULL)26 strcpy (catalog.catmode, "RAW");27 25 28 26 GetTimeFormat (&TimeReference, &TimeFormat); … … 150 148 RD_to_XY (&X, &Y, Ra, Dec, &image[I].coords); 151 149 t = TimeValue (measure[j].t, TimeReference, TimeFormat); 152 fprintf (GetOutfile(), "%f %6.3f %7.2f %7.2f %5.3f\n", t, Mabs, X, Y, 0.001*image[I].secz);150 fprintf (GetOutfile(), "%f %6.3f %7.2f %7.2f %5.3f\n", t, Mabs, X, Y, image[I].secz_PS); 153 151 } 154 152 } -
trunk/Ohana/src/relphot/src/ConfigInit.c
r4865 r5014 22 22 GetConfig (config, "IMAGE_SCATTER", "%lf", 0, &IMAGE_SCATTER); 23 23 GetConfig (config, "IMAGE_OFFSET", "%lf", 0, &IMAGE_OFFSET); 24 25 IMAGE_SCATTER *= 1000;26 IMAGE_OFFSET *= 1000;27 24 28 25 GetConfig (config, "STAR_CHISQ", "%lf", 0, &STAR_CHISQ); -
trunk/Ohana/src/relphot/src/ImageOps.c
r4865 r5014 145 145 146 146 if (image[i].code & IMAGE_BAD) return (NO_MAG); 147 value = 0.001*image[i].Mcal;147 value = image[i].Mcal_PS; 148 148 return (value); 149 149 } … … 217 217 218 218 liststats (list, dlist, N, &stats); 219 image[i].Mcal = 1000.0*stats.mean;220 image[i].dMcal = 1000.0*stats.sigma;219 image[i].Mcal_PS = stats.mean; 220 image[i].dMcal_PS = stats.sigma; 221 221 image[i].Xm = 100.0*log10(stats.chisq); 222 222 } … … 249 249 for (i = N = 0; i < Nimage; i++) { 250 250 if (image[i].code & IMAGE_BAD) continue; 251 mlist[N] = fabs (image[i].Mcal );252 slist[N] = image[i].dMcal ;251 mlist[N] = fabs (image[i].Mcal_PS); 252 slist[N] = image[i].dMcal_PS; 253 253 dlist[N] = 1; 254 254 N++; … … 260 260 liststats (slist, dlist, N, &stats); 261 261 MaxScatter = MAX (IMAGE_SCATTER, 2*stats.median); 262 fprintf (stderr, "Mrel: %f, dMrel: %f, Max Scatter: %f, Max Offset: %f\n", 0.001*MedOffset, 0.001*stats.median, 0.001*MaxScatter, 0.001*MaxOffset);262 fprintf (stderr, "Mrel: %f, dMrel: %f, Max Scatter: %f, Max Offset: %f\n", MedOffset, stats.median, MaxScatter, MaxOffset); 263 263 264 264 Nmark = 0; … … 266 266 mark = FALSE; 267 267 image[i].code &= ~ID_IMAGE_POOR; 268 mark = (image[i].dMcal > MaxScatter) || (fabs(image[i].Mcal- MedOffset) > MaxOffset);268 mark = (image[i].dMcal_PS > MaxScatter) || (fabs(image[i].Mcal_PS - MedOffset) > MaxOffset); 269 269 if (mark) { 270 270 Nmark ++; … … 296 296 /**** dMcal vs airmass ****/ 297 297 for (i = 0; i < Nimage; i++) { 298 Mlist[i] = 0.001*image[i].Mcal;299 dlist[i] = 0.001*image[i].dMcal;300 xlist[i] = 0.001*image[i].secz;298 Mlist[i] = image[i].Mcal_PS; 299 dlist[i] = image[i].dMcal_PS; 300 xlist[i] = image[i].secz_PS; 301 301 } 302 302 … … 316 316 bzero (Mlist, NBIN*sizeof(double)); 317 317 for (i = 0; i < Nimage; i++) { 318 bin = 0.001*image[i].dMcal/ 0.0025;318 bin = image[i].dMcal_PS / 0.0025; 319 319 bin = MAX (0, MIN (NBIN - 1, bin)); 320 320 Mlist[bin] += 1.0; … … 413 413 if (image[i].code & IMAGE_BAD) continue; 414 414 415 list[n] = 0.001*image[i].Mcal;415 list[n] = image[i].Mcal_PS; 416 416 dlist[n] = 1; 417 417 n++; … … 441 441 if (image[i].code & IMAGE_BAD) continue; 442 442 443 list[n] = 0.001*image[i].dMcal;443 list[n] = image[i].dMcal_PS; 444 444 dlist[n] = 1; 445 445 n++; -
trunk/Ohana/src/relphot/src/MosaicOps.c
r4865 r5014 69 69 mosaic[Nmosaic].Xm = 0.0; 70 70 mosaic[Nmosaic].code = image[i].code; 71 mosaic[Nmosaic].secz = image[i].secz ;71 mosaic[Nmosaic].secz = image[i].secz_PS; 72 72 73 73 /* add image to mosaic image list */ … … 134 134 Dmin = MIN (Dmin, D); 135 135 Dmax = MAX (Dmax, D); 136 Mcal += 0.001*image[m].Mcal;137 dMcal += 0.001*image[m].dMcal;136 Mcal += image[m].Mcal_PS; 137 dMcal += image[m].dMcal_PS; 138 138 Xm += image[m].Xm; 139 139 /* we are using mosaic.Mcal, not image.Mcal. reset image.Mcal */ 140 image[m].Mcal = 0.0;141 image[m].dMcal = image[m].Xm = NO_MAG;140 image[m].Mcal_PS = 0.0; 141 image[m].dMcal_PS = image[m].Xm = NO_MAG; 142 142 } 143 143 dS /= Nimlist[i]; … … 179 179 for (j = 0; j < Nimlist[i]; j++) { 180 180 im = imlist[i][j]; 181 image[im].Mcal = 1000.0*mosaic[i].Mcal;182 image[im].dMcal = 1000.0*mosaic[i].dMcal;181 image[im].Mcal_PS = mosaic[i].Mcal; 182 image[im].dMcal_PS = mosaic[i].dMcal; 183 183 image[im].Xm = mosaic[i].Xm; 184 184 image[im].code |= (mosaic[i].code & ID_IMAGE_FEW); … … 405 405 for (i = 0; i < Nmosaic; i++) { 406 406 if (mosaic[i].code & IMAGE_BAD) continue; 407 list[n] = 0.001*mosaic[i].Mcal;407 list[n] = mosaic[i].Mcal; 408 408 dlist[n] = 1; 409 409 n++; … … 432 432 433 433 if (mosaic[i].code & IMAGE_BAD) continue; 434 list[n] = 0.001*mosaic[i].dMcal;434 list[n] = mosaic[i].dMcal; 435 435 dlist[n] = 1; 436 436 n++; … … 538 538 liststats (slist, dlist, N, &stats); 539 539 MaxScatter = MAX (IMAGE_SCATTER, 2*stats.median); 540 fprintf (stderr, "Mrel: %f, dMrel: %f, Max Scatter: %f, Max Offset: %f\n", 0.001*MedOffset, 0.001*stats.median, 0.001*MaxScatter, 0.001*MaxOffset);540 fprintf (stderr, "Mrel: %f, dMrel: %f, Max Scatter: %f, Max Offset: %f\n", MedOffset, stats.median, MaxScatter, MaxOffset); 541 541 542 542 Nmark = 0; … … 618 618 619 619 for (i = 0; i < Nmosaic; i++) { 620 Mlist[i] = 0.001*mosaic[i].Mcal;621 dlist[i] = 0.001*mosaic[i].dMcal;622 xlist[i] = 0.001*mosaic[i].secz;620 Mlist[i] = mosaic[i].Mcal; 621 dlist[i] = mosaic[i].dMcal; 622 xlist[i] = mosaic[i].secz; 623 623 } 624 624 … … 640 640 bzero (Mlist, NBIN*sizeof(double)); 641 641 for (i = 0; i < Nmosaic; i++) { 642 bin = 0.001*mosaic[i].dMcal / 0.0025;642 bin = mosaic[i].dMcal / 0.0025; 643 643 bin = MAX (0, MIN (NBIN - 1, bin)); 644 644 Mlist[bin] += 1.0; -
trunk/Ohana/src/relphot/src/find_images.c
r4864 r5014 104 104 if (RESET) { 105 105 assignMcal (&image[nimage], (double *) NULL, -1); 106 image[nimage].dMcal = NO_MAG;106 image[nimage].dMcal_PS = NO_MAG; 107 107 image[nimage].code &= ~ID_IMAGE_POOR; 108 108 } -
trunk/Ohana/src/relphot/src/gcatalog.c
r4828 r5014 5 5 char mode; 6 6 7 /* no autodetect for CATMODE yet */8 strcpy (catalog[0].catmode, CATMODE);9 10 7 if (FINAL) { 11 8 mode = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF; … … 13 10 mode = LOAD_AVES | LOAD_MEAS | LOAD_SECF; 14 11 } 12 13 /* CATMODE and CATFORMAT determined from catalog */ 15 14 16 15 if (!load_catalog (catalog, mode, VERBOSE)) { -
trunk/Ohana/src/relphot/src/wcatalog.c
r4828 r5014 3 3 void wcatalog (Catalog *catalog) { 4 4 5 /* set catalog format (elixir, loneos, etc) */ 6 if (!strcmp (CATFORMAT, "INTERNAL")) { 7 sprintf (catalog[0].average_format, "DVO_AVERAGE"); 8 sprintf (catalog[0].measure_format, "DVO_MEASURE"); 9 } else { 10 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT); 11 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT); 12 } 5 /* CATMODE and CATFORMAT determined from catalog */ 13 6 14 7 if (!save_catalog (catalog, VERBOSE)) { -
trunk/Ohana/src/uniphot/include/uniphot.h
r4865 r5014 5 5 # ifdef ANSI 6 6 # define F_SETFL 4 7 # define O_NONBLOCK 02000008 # define AF_UNIX19 # define SOCK_STREAM110 # define ENOENT2 /* No such file or directory */7 # define O_NONBLOCK 0200000 8 # define AF_UNIX 1 9 # define SOCK_STREAM 1 10 # define ENOENT 2 /* No such file or directory */ 11 11 # endif /* ANSI */ 12 12 -
trunk/Ohana/src/uniphot/src/fit_groups.c
r2492 r5014 4 4 5 5 int i, j, Nlist; 6 short Mcal, Mgrp;6 float Mcal, Mgrp; 7 7 double *mlist, *dlist; 8 8 StatType stats; … … 18 18 if (tgroup[i].image[j][0].code & IMAGE_BAD) continue; 19 19 sgroup = (Group *) tgroup[i].imlink[j][0].sgroup; 20 Mcal = tgroup[i].image[j][0].Mcal ;20 Mcal = tgroup[i].image[j][0].Mcal_PS; 21 21 Mgrp = sgroup[0].M; 22 22 mlist[Nlist] = (Mcal - Mgrp); 23 dlist[Nlist] = tgroup[i].image[j][0].dMcal ;23 dlist[Nlist] = tgroup[i].image[j][0].dMcal_PS; 24 24 Nlist ++; 25 25 } … … 41 41 42 42 int i, j, Nlist; 43 short Mcal, Mgrp;43 float Mcal, Mgrp; 44 44 double *mlist, *dlist; 45 45 StatType stats; … … 56 56 if (sgroup[i].image[j][0].code & IMAGE_BAD) continue; 57 57 tgroup = (Group *) sgroup[i].imlink[j][0].tgroup; 58 Mcal = sgroup[i].image[j][0].Mcal ;58 Mcal = sgroup[i].image[j][0].Mcal_PS; 59 59 Mgrp = tgroup[0].M; 60 60 mlist[Nlist] = (Mcal - Mgrp); 61 dlist[Nlist] = sgroup[i].image[j][0].dMcal ;61 dlist[Nlist] = sgroup[i].image[j][0].dMcal_PS; 62 62 Nlist ++; 63 63 } -
trunk/Ohana/src/uniphot/src/gcatalog.c
r4828 r5014 5 5 int mode; 6 6 7 /* no autodetect for CATMODE yet */ 8 strcpy (catalog[0].catmode, CATMODE); 7 mode = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF; 9 8 10 mode = LOAD_AVES | LOAD_MEAS | LOAD_MISS | LOAD_SECF;9 /* CATMODE and CATFORMAT determined from catalog */ 11 10 12 11 switch (lock_catalog (catalog, LCK_SOFT)) { -
trunk/Ohana/src/uniphot/src/update.c
r4864 r5014 22 22 for (i = 0; i < Nsgroup; i++) { 23 23 for (j = 0; j < sgroup[i].Nimage; j++) { 24 sgroup[i].image[j][0].Mcal -= sgroup[i].M;24 sgroup[i].image[j][0].Mcal_PS -= sgroup[i].M; 25 25 } 26 26 } -
trunk/Ohana/src/uniphot/src/wcatalog.c
r4828 r5014 3 3 void wcatalog (Catalog *catalog) { 4 4 5 /* set catalog format (elixir, loneos, etc) */ 6 if (!strcmp (CATFORMAT, "INTERNAL")) { 7 sprintf (catalog[0].average_format, "DVO_AVERAGE"); 8 sprintf (catalog[0].measure_format, "DVO_MEASURE"); 9 } else { 10 sprintf (catalog[0].average_format, "DVO_AVERAGE_%s", CATFORMAT); 11 sprintf (catalog[0].measure_format, "DVO_MEASURE_%s", CATFORMAT); 12 } 5 /* CATMODE and CATFORMAT determined from catalog */ 13 6 14 7 /** write out catalog, free memory **/
Note:
See TracChangeset
for help on using the changeset viewer.
