Changeset 7080 for trunk/Ohana/src/libdvo
- Timestamp:
- May 5, 2006, 5:44:26 PM (20 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 14 edited
-
doc/ChangeLog.txt (modified) (1 diff)
-
include/dvo.h (modified) (2 diffs)
-
src/coordops.c (modified) (9 diffs)
-
src/dvo_catalog.c (modified) (1 diff)
-
src/dvo_catalog_mef.c (modified) (12 diffs)
-
src/dvo_catalog_raw.c (modified) (32 diffs)
-
src/dvo_catalog_split.c (modified) (33 diffs)
-
src/dvo_convert.c (modified) (35 diffs)
-
src/dvo_image.c (modified) (6 diffs)
-
src/dvo_image_raw.c (modified) (8 diffs)
-
src/fits_db.c (modified) (15 diffs)
-
src/skyregion_gsc.c (modified) (2 diffs)
-
src/skyregion_io.c (modified) (7 diffs)
-
src/skyregion_ops.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/doc/ChangeLog.txt
r6693 r7080 1 2 - libdvo 1.3 3 * converted to gfits APIs (forces libfits 1.6) 1 4 2 5 - libdvo 1.2 -
trunk/Ohana/src/libdvo/include/dvo.h
r7039 r7080 176 176 /*** prototypes ***/ 177 177 178 /* in fits_db.c */179 int fits_db_init PROTO((FITS_DB *db));180 int fits_db_create PROTO((FITS_DB *db));181 int fits_db_lock PROTO((FITS_DB *db, char *filename));182 int fits_db_load PROTO((FITS_DB *db));183 int fits_db_load_segment PROTO((FITS_DB *db, int start, int Nrows));184 int fits_db_save PROTO((FITS_DB *db));185 int fits_db_update PROTO((FITS_DB *db));186 int fits_db_close PROTO((FITS_DB *db));187 int fits_db_free PROTO((FITS_DB *db));178 /* in gfits_db.c */ 179 int gfits_db_init PROTO((FITS_DB *db)); 180 int gfits_db_create PROTO((FITS_DB *db)); 181 int gfits_db_lock PROTO((FITS_DB *db, char *filename)); 182 int gfits_db_load PROTO((FITS_DB *db)); 183 int gfits_db_load_segment PROTO((FITS_DB *db, int start, int Nrows)); 184 int gfits_db_save PROTO((FITS_DB *db)); 185 int gfits_db_update PROTO((FITS_DB *db)); 186 int gfits_db_close PROTO((FITS_DB *db)); 187 int gfits_db_free PROTO((FITS_DB *db)); 188 188 189 189 /* in coords.c, using libautocode/def/coords.d */ … … 352 352 SkyList *SkyListByRadius PROTO((SkyTable *table, int depth, double RA, double DEC, double radius)); 353 353 SkyList *SkyListByPatch PROTO((SkyTable *table, int depth, SkyRegion *patch)); 354 SkyList *SkyListByName PROTO((SkyTable *table, char *name)); 354 355 SkyList *SkyListByImage PROTO((SkyTable *table, int depth, Image *image)); 355 356 SkyList *SkyListByBounds PROTO((SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax)); -
trunk/Ohana/src/libdvo/src/coordops.c
r6678 r7080 312 312 313 313 status = FALSE; 314 if ( fits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) {315 status = fits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1);316 status &= fits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1);317 status &= fits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2);318 status &= fits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2);319 320 if ( fits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) {321 status &= fits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2);322 if ( fits_scan (header, "CROTA2", "%lf", 1, &rotate)) {314 if (gfits_scan (header, "CTYPE2", "%s", 1, coords[0].ctype)) { 315 status = gfits_scan (header, "CRVAL1", "%lf", 1, &coords[0].crval1); 316 status &= gfits_scan (header, "CRPIX1", "%f", 1, &coords[0].crpix1); 317 status &= gfits_scan (header, "CRVAL2", "%lf", 1, &coords[0].crval2); 318 status &= gfits_scan (header, "CRPIX2", "%f", 1, &coords[0].crpix2); 319 320 if (gfits_scan (header, "CDELT1", "%f", 1, &coords[0].cdelt1)) { 321 status &= gfits_scan (header, "CDELT2", "%f", 1, &coords[0].cdelt2); 322 if (gfits_scan (header, "CROTA2", "%lf", 1, &rotate)) { 323 323 Lambda = coords[0].cdelt2 / coords[0].cdelt1; 324 324 coords[0].pc1_1 = cos(rotate*RAD_DEG); … … 327 327 coords[0].pc2_2 = cos(rotate*RAD_DEG); 328 328 } 329 if ( fits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) {330 status &= fits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2);331 status &= fits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1);332 status &= fits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2);329 if (gfits_scan (header, "PC001001", "%f", 1, &coords[0].pc1_1)) { 330 status &= gfits_scan (header, "PC001002", "%f", 1, &coords[0].pc1_2); 331 status &= gfits_scan (header, "PC002001", "%f", 1, &coords[0].pc2_1); 332 status &= gfits_scan (header, "PC002002", "%f", 1, &coords[0].pc2_2); 333 333 } 334 334 … … 337 337 338 338 if (Polynomial) { 339 if ( fits_scan (header, "NPLYTERM", "%d", 1, &itmp)) {339 if (gfits_scan (header, "NPLYTERM", "%d", 1, &itmp)) { 340 340 coords[0].Npolyterms = itmp; 341 341 } else { … … 344 344 switch (coords[0].Npolyterms) { 345 345 case 3: 346 status &= fits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]);347 status &= fits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]);348 status &= fits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]);349 status &= fits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]);350 status &= fits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]);351 status &= fits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]);352 status &= fits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]);353 status &= fits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]);346 status &= gfits_scan (header, "PCA1X3Y0", "%f", 1, &coords[0].polyterms[3][0]); 347 status &= gfits_scan (header, "PCA1X2Y1", "%f", 1, &coords[0].polyterms[4][0]); 348 status &= gfits_scan (header, "PCA1X1Y2", "%f", 1, &coords[0].polyterms[5][0]); 349 status &= gfits_scan (header, "PCA1X0Y3", "%f", 1, &coords[0].polyterms[6][0]); 350 status &= gfits_scan (header, "PCA2X3Y0", "%f", 1, &coords[0].polyterms[3][1]); 351 status &= gfits_scan (header, "PCA2X2Y1", "%f", 1, &coords[0].polyterms[4][1]); 352 status &= gfits_scan (header, "PCA2X1Y2", "%f", 1, &coords[0].polyterms[5][1]); 353 status &= gfits_scan (header, "PCA2X0Y3", "%f", 1, &coords[0].polyterms[6][1]); 354 354 case 2: 355 status &= fits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]);356 status &= fits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]);357 status &= fits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]);358 status &= fits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]);359 status &= fits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]);360 status &= fits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]);355 status &= gfits_scan (header, "PCA1X2Y0", "%f", 1, &coords[0].polyterms[0][0]); 356 status &= gfits_scan (header, "PCA1X1Y1", "%f", 1, &coords[0].polyterms[1][0]); 357 status &= gfits_scan (header, "PCA1X0Y2", "%f", 1, &coords[0].polyterms[2][0]); 358 status &= gfits_scan (header, "PCA2X2Y0", "%f", 1, &coords[0].polyterms[0][1]); 359 status &= gfits_scan (header, "PCA2X1Y1", "%f", 1, &coords[0].polyterms[1][1]); 360 status &= gfits_scan (header, "PCA2X0Y2", "%f", 1, &coords[0].polyterms[2][1]); 361 361 case 0: 362 362 case 1: … … 365 365 } 366 366 } else { 367 if ( fits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) {368 status &= fits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2);369 status &= fits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1);370 status &= fits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2);367 if (gfits_scan (header, "CD1_1", "%f", 1, &coords[0].pc1_1)) { 368 status &= gfits_scan (header, "CD1_2", "%f", 1, &coords[0].pc1_2); 369 status &= gfits_scan (header, "CD2_1", "%f", 1, &coords[0].pc2_1); 370 status &= gfits_scan (header, "CD2_2", "%f", 1, &coords[0].pc2_2); 371 371 /* renormalize */ 372 372 scale = hypot (coords[0].pc1_1, coords[0].pc1_2); … … 382 382 } else { 383 383 /* some of my thesis data uses this simple linear model - convert on read? */ 384 if ( fits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) {385 status = fits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1);386 status &= fits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2);387 status &= fits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2);388 status &= fits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1);389 status &= fits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2);384 if (gfits_scan (header, "RA_O", "%lf", 1, &coords[0].crval1)) { 385 status = gfits_scan (header, "RA_X", "%f", 1, &coords[0].pc1_1); 386 status &= gfits_scan (header, "RA_Y", "%f", 1, &coords[0].pc1_2); 387 status &= gfits_scan (header, "DEC_O", "%lf", 1, &coords[0].crval2); 388 status &= gfits_scan (header, "DEC_X", "%f", 1, &coords[0].pc2_1); 389 status &= gfits_scan (header, "DEC_Y", "%f", 1, &coords[0].pc2_2); 390 390 coords[0].crpix1 = coords[0].crpix2 = 0.0; 391 391 coords[0].cdelt1 = coords[0].cdelt2 = 1.0; … … 394 394 } 395 395 if (status) { 396 if (! fits_scan (header, "EQUINOX", "%lf", 1, &equinox)) {397 if (! fits_scan (header, "EPOCH", "%lf", 1, &equinox)) {396 if (!gfits_scan (header, "EQUINOX", "%lf", 1, &equinox)) { 397 if (!gfits_scan (header, "EPOCH", "%lf", 1, &equinox)) { 398 398 equinox = 2000.0; 399 399 } … … 422 422 /* modifications to the ctype? */ 423 423 OldAIPS = FALSE; 424 fits_modify (header, "CTYPE2", "%s", 1, coords[0].ctype);424 gfits_modify (header, "CTYPE2", "%s", 1, coords[0].ctype); 425 425 if (!strcmp(coords[0].ctype, "MM")) { 426 fits_modify (header, "CTYPE1", "%s", 1, "LL");426 gfits_modify (header, "CTYPE1", "%s", 1, "LL"); 427 427 OldAIPS = TRUE; 428 428 } else { … … 435 435 if (!strcmp (csys, "NONE")) return (FALSE); 436 436 sprintf (ctype, "%s-%s", csys, &coords[0].ctype[5]); 437 fits_modify (header, "CTYPE1", "%s", 1, ctype);437 gfits_modify (header, "CTYPE1", "%s", 1, ctype); 438 438 } 439 439 440 fits_modify (header, "CDELT1", "%le", 1, coords[0].cdelt1);441 fits_modify (header, "CDELT2", "%le", 1, coords[0].cdelt2);442 fits_modify (header, "CRVAL1", "%lf", 1, coords[0].crval1);443 fits_modify (header, "CRVAL2", "%lf", 1, coords[0].crval2);444 fits_modify (header, "CRPIX1", "%lf", 1, coords[0].crpix1);445 fits_modify (header, "CRPIX2", "%lf", 1, coords[0].crpix2);440 gfits_modify (header, "CDELT1", "%le", 1, coords[0].cdelt1); 441 gfits_modify (header, "CDELT2", "%le", 1, coords[0].cdelt2); 442 gfits_modify (header, "CRVAL1", "%lf", 1, coords[0].crval1); 443 gfits_modify (header, "CRVAL2", "%lf", 1, coords[0].crval2); 444 gfits_modify (header, "CRPIX1", "%lf", 1, coords[0].crpix1); 445 gfits_modify (header, "CRPIX2", "%lf", 1, coords[0].crpix2); 446 446 447 447 if (OldAIPS) { 448 448 Lambda = coords[0].cdelt2 / coords[0].cdelt1; 449 449 rotate = DEG_RAD*atan2 (coords[0].pc2_1*Lambda, coords[0].pc1_1); 450 fits_modify (header, "CROTA1", "%f", 1, rotate);451 fits_modify (header, "CROTA2", "%f", 1, rotate);450 gfits_modify (header, "CROTA1", "%f", 1, rotate); 451 gfits_modify (header, "CROTA2", "%f", 1, rotate); 452 452 return (TRUE); 453 453 } 454 454 455 fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);456 fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);457 fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);458 fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);459 fits_modify (header, "NPLYTERM", "%d", 1, coords[0].Npolyterms);455 gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1); 456 gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2); 457 gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1); 458 gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2); 459 gfits_modify (header, "NPLYTERM", "%d", 1, coords[0].Npolyterms); 460 460 461 461 /* RA Terms */ 462 462 if (coords[0].Npolyterms > 1) { 463 fits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]); /* polyterms[0]); */464 fits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]); /* polyterms[1]); */465 fits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]); /* polyterms[2]); */463 gfits_modify (header, "PCA1X2Y0", "%le", 1, coords[0].polyterms[0][0]); /* polyterms[0]); */ 464 gfits_modify (header, "PCA1X1Y1", "%le", 1, coords[0].polyterms[1][0]); /* polyterms[1]); */ 465 gfits_modify (header, "PCA1X0Y2", "%le", 1, coords[0].polyterms[2][0]); /* polyterms[2]); */ 466 466 } 467 467 if (coords[0].Npolyterms > 2) { 468 fits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]); /* polyterms[3]); */469 fits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]); /* polyterms[4]); */470 fits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]); /* polyterms[5]); */471 fits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]); /* polyterms[6]); */468 gfits_modify (header, "PCA1X3Y0", "%le", 1, coords[0].polyterms[3][0]); /* polyterms[3]); */ 469 gfits_modify (header, "PCA1X2Y1", "%le", 1, coords[0].polyterms[4][0]); /* polyterms[4]); */ 470 gfits_modify (header, "PCA1X1Y2", "%le", 1, coords[0].polyterms[5][0]); /* polyterms[5]); */ 471 gfits_modify (header, "PCA1X0Y3", "%le", 1, coords[0].polyterms[6][0]); /* polyterms[6]); */ 472 472 } 473 473 474 474 /* Dec Terms */ 475 475 if (coords[0].Npolyterms > 1) { 476 fits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]); /* polyterms[7]); */477 fits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]); /* polyterms[8]); */478 fits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]); /* polyterms[9]); */476 gfits_modify (header, "PCA2X2Y0", "%le", 1, coords[0].polyterms[0][1]); /* polyterms[7]); */ 477 gfits_modify (header, "PCA2X1Y1", "%le", 1, coords[0].polyterms[1][1]); /* polyterms[8]); */ 478 gfits_modify (header, "PCA2X0Y2", "%le", 1, coords[0].polyterms[2][1]); /* polyterms[9]); */ 479 479 } 480 480 if (coords[0].Npolyterms > 2) { 481 fits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]); /* polyterms[10]); */482 fits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]); /* polyterms[11]); */483 fits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]); /* polyterms[12]); */484 fits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]); /* polyterms[13]); */481 gfits_modify (header, "PCA2X3Y0", "%le", 1, coords[0].polyterms[3][1]); /* polyterms[10]); */ 482 gfits_modify (header, "PCA2X2Y1", "%le", 1, coords[0].polyterms[4][1]); /* polyterms[11]); */ 483 gfits_modify (header, "PCA2X1Y2", "%le", 1, coords[0].polyterms[5][1]); /* polyterms[12]); */ 484 gfits_modify (header, "PCA2X0Y3", "%le", 1, coords[0].polyterms[6][1]); /* polyterms[13]); */ 485 485 } 486 486 return (TRUE); -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r5320 r7080 42 42 /** we will have to check catmode for MYSQL before reading from the file **/ 43 43 44 fits_fread_header (catalog[0].f, &catalog[0].header);45 if (! fits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) {44 gfits_fread_header (catalog[0].f, &catalog[0].header); 45 if (!gfits_scan (&catalog[0].header, "NAXIS", "%d", 1, &Naxis)) { 46 46 if (VERBOSE) fprintf (stderr, "can't determine catalog db mode\n"); 47 47 return (FALSE); 48 48 } 49 split = fits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure);49 split = gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, measure); 50 50 51 51 /* currenly, the catmode information is carried per table. -
trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c
r5320 r7080 17 17 18 18 /* matrix should be empty */ 19 if (! fits_fread_matrix (f, &matrix, &catalog[0].header)) {19 if (!gfits_fread_matrix (f, &matrix, &catalog[0].header)) { 20 20 if (VERBOSE) fprintf (stderr, "can't read primary matrix"); 21 21 return (FALSE); 22 22 } 23 23 /* get the components from the header */ 24 if (! fits_scan (&catalog[0].header, "NSTARS", "%d", 1, &Naverage)) return (FALSE);25 if (! fits_scan (&catalog[0].header, "NMEAS", "%d", 1, &Nmeasure)) return (FALSE);26 if (! fits_scan (&catalog[0].header, "NMISS", "%d", 1, &Nmissing)) return (FALSE);27 if (! fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;24 if (!gfits_scan (&catalog[0].header, "NSTARS", "%d", 1, &Naverage)) return (FALSE); 25 if (!gfits_scan (&catalog[0].header, "NMEAS", "%d", 1, &Nmeasure)) return (FALSE); 26 if (!gfits_scan (&catalog[0].header, "NMISS", "%d", 1, &Nmissing)) return (FALSE); 27 if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0; 28 28 29 29 /** Nsecfilt is unusual: it does not list the number of data items in the table … … 34 34 35 35 /* read Average table header */ 36 if (! fits_fread_header (f, &header)) {36 if (!gfits_fread_header (f, &header)) { 37 37 if (VERBOSE) fprintf (stderr, "can't read table average header"); 38 38 return (FALSE); … … 40 40 /* read Average table data (or skip) */ 41 41 if (catalog[0].catflags & LOAD_AVES) { 42 if (! fits_fread_ftable_data (f, &ftable)) {42 if (!gfits_fread_ftable_data (f, &ftable)) { 43 43 if (VERBOSE) fprintf (stderr, "can't read table average data"); 44 44 return (FALSE); … … 49 49 } 50 50 } else { 51 Nbytes = fits_matrix_size (&header);52 fseek (f, Nbytes, SEEK_CUR); 53 } 54 fits_free_header (&header);51 Nbytes = gfits_matrix_size (&header); 52 fseek (f, Nbytes, SEEK_CUR); 53 } 54 gfits_free_header (&header); 55 55 /** free the ftable or not? data is being used still..? **/ 56 56 57 57 /* read Measure table header */ 58 if (! fits_fread_header (f, &header)) {58 if (!gfits_fread_header (f, &header)) { 59 59 if (VERBOSE) fprintf (stderr, "can't read table measure header"); 60 60 return (FALSE); … … 62 62 /* read Measure table data */ 63 63 if (catalog[0].catflags & LOAD_MEAS) { 64 if (! fits_fread_ftable_data (f, &ftable)) {64 if (!gfits_fread_ftable_data (f, &ftable)) { 65 65 if (VERBOSE) fprintf (stderr, "can't read table measure data"); 66 66 return (FALSE); … … 71 71 } 72 72 } else { 73 Nbytes = fits_matrix_size (&header);73 Nbytes = gfits_matrix_size (&header); 74 74 fseek (f, Nbytes, SEEK_CUR); 75 75 } 76 76 77 77 /* read Missing table header */ 78 if (! fits_fread_header (f, &header)) {78 if (!gfits_fread_header (f, &header)) { 79 79 if (VERBOSE) fprintf (stderr, "can't read table missing header"); 80 80 return (FALSE); … … 82 82 /* read Missing table data */ 83 83 if (catalog[0].catflags & LOAD_MISS) { 84 if (! fits_fread_ftable_data (f, &ftable)) {84 if (!gfits_fread_ftable_data (f, &ftable)) { 85 85 if (VERBOSE) fprintf (stderr, "can't read table missing data"); 86 86 return (FALSE); 87 87 } 88 88 /* no conversions currently defined */ 89 catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);89 catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL); 90 90 if (Nmissing != catalog[0].Nmissing) { 91 91 fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing); 92 92 } 93 93 } else { 94 Nbytes = fits_matrix_size (&header);95 fseek (f, Nbytes, SEEK_CUR); 96 } 97 98 // catalog[0].secfilt = fits_table_get_SecFilt (&ftable, &Nitems, NULL);94 Nbytes = gfits_matrix_size (&header); 95 fseek (f, Nbytes, SEEK_CUR); 96 } 97 98 // catalog[0].secfilt = gfits_table_get_SecFilt (&ftable, &Nitems, NULL); 99 99 // catalog[0].Nsecfilt = Nitems / catalog[0].Naverage; 100 100 101 101 /* read secfilt table header */ 102 if (! fits_fread_header (f, &header)) {102 if (!gfits_fread_header (f, &header)) { 103 103 if (VERBOSE) fprintf (stderr, "can't read table secfilt header"); 104 104 return (FALSE); … … 106 106 /* read secfilt table data */ 107 107 if (catalog[0].catflags & LOAD_SECF) { 108 if (! fits_fread_ftable_data (f, &ftable)) {108 if (!gfits_fread_ftable_data (f, &ftable)) { 109 109 if (VERBOSE) fprintf (stderr, "can't read table secfilt data"); 110 110 return (FALSE); … … 117 117 } else { 118 118 /* no real need to skip the data array here... */ 119 Nbytes = fits_matrix_size (&header);119 Nbytes = gfits_matrix_size (&header); 120 120 fseek (f, Nbytes, SEEK_CUR); 121 121 } … … 139 139 140 140 /* make sure header is consistent with data */ 141 fits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);142 fits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure);143 fits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);144 fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);145 fits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE);141 gfits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage); 142 gfits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure); 143 gfits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing); 144 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt); 145 gfits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 146 146 147 147 f = catalog[0].f; … … 152 152 153 153 /* write table PHU header */ 154 if (! fits_fwrite_header (catalog[0].f, &catalog[0].header)) {154 if (!gfits_fwrite_header (catalog[0].f, &catalog[0].header)) { 155 155 fprintf (stderr, "can't write primary header"); 156 156 return (FALSE); … … 158 158 159 159 /* this is probably a NOP, do I have to keep it in? */ 160 fits_create_matrix (&catalog[0].header, &matrix);161 if (! fits_fwrite_matrix (catalog[0].f, &matrix)) {160 gfits_create_matrix (&catalog[0].header, &matrix); 161 if (!gfits_fwrite_matrix (catalog[0].f, &matrix)) { 162 162 fprintf (stderr, "can't write primary matrix"); 163 163 return (FALSE); 164 164 } 165 fits_free_matrix (&matrix);165 gfits_free_matrix (&matrix); 166 166 167 167 /* write out Average table (convert to FITS table format) */ 168 168 AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat); 169 if (! fits_fwrite_Theader (catalog[0].f, &header)) {170 fprintf (stderr, "can't write table header"); 171 return (FALSE); 172 } 173 if (! fits_fwrite_table (catalog[0].f, &ftable)) {174 fprintf (stderr, "can't write table data"); 175 return (FALSE); 176 } 177 fits_free_table (&ftable);178 fits_free_header (&header);169 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 170 fprintf (stderr, "can't write table header"); 171 return (FALSE); 172 } 173 if (!gfits_fwrite_table (catalog[0].f, &ftable)) { 174 fprintf (stderr, "can't write table data"); 175 return (FALSE); 176 } 177 gfits_free_table (&ftable); 178 gfits_free_header (&header); 179 179 180 180 /* write out Measure table (convert to FITS table format) */ 181 181 MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat); 182 if (! fits_fwrite_Theader (catalog[0].f, &header)) {183 fprintf (stderr, "can't write table header"); 184 return (FALSE); 185 } 186 if (! fits_fwrite_table (catalog[0].f, &ftable)) {187 fprintf (stderr, "can't write table data"); 188 return (FALSE); 189 } 190 fits_free_table (&ftable);191 fits_free_header (&header);182 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 183 fprintf (stderr, "can't write table header"); 184 return (FALSE); 185 } 186 if (!gfits_fwrite_table (catalog[0].f, &ftable)) { 187 fprintf (stderr, "can't write table data"); 188 return (FALSE); 189 } 190 gfits_free_table (&ftable); 191 gfits_free_header (&header); 192 192 193 193 /* write out Missing table (convert to FITS table format) */ 194 fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);195 if (! fits_fwrite_Theader (catalog[0].f, &header)) {196 fprintf (stderr, "can't write table header"); 197 return (FALSE); 198 } 199 if (! fits_fwrite_table (catalog[0].f, &ftable)) {200 fprintf (stderr, "can't write table data"); 201 return (FALSE); 202 } 203 fits_free_table (&ftable);204 fits_free_header (&header);194 gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing); 195 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 196 fprintf (stderr, "can't write table header"); 197 return (FALSE); 198 } 199 if (!gfits_fwrite_table (catalog[0].f, &ftable)) { 200 fprintf (stderr, "can't write table data"); 201 return (FALSE); 202 } 203 gfits_free_table (&ftable); 204 gfits_free_header (&header); 205 205 206 206 /* write out SecFilt table (convert to FITS table format) */ 207 207 Nitems = catalog[0].Naverage * catalog[0].Nsecfilt; 208 208 SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat); 209 if (! fits_fwrite_Theader (catalog[0].f, &header)) {210 fprintf (stderr, "can't write table header"); 211 return (FALSE); 212 } 213 if (! fits_fwrite_table (catalog[0].f, &ftable)) {214 fprintf (stderr, "can't write table data"); 215 return (FALSE); 216 } 217 fits_free_table (&ftable);218 fits_free_header (&header);209 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 210 fprintf (stderr, "can't write table header"); 211 return (FALSE); 212 } 213 if (!gfits_fwrite_table (catalog[0].f, &ftable)) { 214 fprintf (stderr, "can't write table data"); 215 return (FALSE); 216 } 217 gfits_free_table (&ftable); 218 gfits_free_header (&header); 219 219 220 220 return (TRUE); -
trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c
r6683 r7080 20 20 /* get the components from the header */ 21 21 catalog[0].Naverage = catalog[0].Nmeasure = catalog[0].Nmissing = catalog[0].Nsecfilt = 0; 22 if (! fits_scan (&catalog[0].header, "NSTARS", "%d", 1, &catalog[0].Naverage)) return (FALSE);23 if (! fits_scan (&catalog[0].header, "NMEAS", "%d", 1, &catalog[0].Nmeasure)) return (FALSE);24 if (! fits_scan (&catalog[0].header, "NMISS", "%d", 1, &catalog[0].Nmissing)) return (FALSE);25 if (! fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0;22 if (!gfits_scan (&catalog[0].header, "NSTARS", "%d", 1, &catalog[0].Naverage)) return (FALSE); 23 if (!gfits_scan (&catalog[0].header, "NMEAS", "%d", 1, &catalog[0].Nmeasure)) return (FALSE); 24 if (!gfits_scan (&catalog[0].header, "NMISS", "%d", 1, &catalog[0].Nmissing)) return (FALSE); 25 if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &catalog[0].Nsecfilt)) catalog[0].Nsecfilt = 0; 26 26 27 27 /* determine catalog format */ 28 28 catalog[0].catformat = DVO_FORMAT_UNDEF; 29 if ( fits_scan (&catalog[0].header, "FORMAT", "%s", 1, format)) {29 if (gfits_scan (&catalog[0].header, "FORMAT", "%s", 1, format)) { 30 30 if (!strcmp (format, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL; 31 31 if (!strcmp (format, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS; … … 35 35 if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format; 36 36 } 37 if ( fits_scan (&catalog[0].header, "NEWMEAS", "%t", 1, &NewMeasure)) {37 if (gfits_scan (&catalog[0].header, "NEWMEAS", "%t", 1, &NewMeasure)) { 38 38 catalog[0].catformat = DVO_FORMAT_ELIXIR; 39 39 goto got_format; 40 40 } 41 if ( fits_scan (&catalog[0].header, "TELESCOP", "%s", 1, telescope)) {41 if (gfits_scan (&catalog[0].header, "TELESCOP", "%s", 1, telescope)) { 42 42 if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) { 43 43 catalog[0].catformat = DVO_FORMAT_LONEOS; … … 145 145 return (FALSE); 146 146 } 147 fits_convert_Missing (catalog[0].missing, MissingSize, Nitems);147 gfits_convert_Missing (catalog[0].missing, MissingSize, Nitems); 148 148 } else { 149 149 /* skip over missings */ … … 194 194 195 195 /* make sure header is consistent with data */ 196 fits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);197 fits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure);198 fits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);199 fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);196 gfits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage); 197 gfits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure); 198 gfits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing); 199 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt); 200 200 201 201 /* specify the appropriate data format */ 202 if (catalog[0].catformat == DVO_FORMAT_INTERNAL) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL");203 if (catalog[0].catformat == DVO_FORMAT_LONEOS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");204 if (catalog[0].catformat == DVO_FORMAT_ELIXIR) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");205 if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");206 if (catalog[0].catformat == DVO_FORMAT_PMTEST) fits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");202 if (catalog[0].catformat == DVO_FORMAT_INTERNAL) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "INTERNAL"); 203 if (catalog[0].catformat == DVO_FORMAT_LONEOS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS"); 204 if (catalog[0].catformat == DVO_FORMAT_ELIXIR) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR"); 205 if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS"); 206 if (catalog[0].catformat == DVO_FORMAT_PMTEST) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST"); 207 207 208 208 /* rewind file pointers and truncate file */ … … 211 211 ftruncate (fileno (catalog[0].f), 0); 212 212 213 /* write header data (use fits_write_header?) */213 /* write header data (use gfits_write_header?) */ 214 214 nitems = fwrite (catalog[0].header.buffer, 1, catalog[0].header.size, f); 215 215 if (nitems != catalog[0].header.size) { … … 224 224 /* write missing data */ 225 225 Nitems = catalog[0].Nmissing; 226 fits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems);226 gfits_convert_Missing (catalog[0].missing, sizeof(Missing), Nitems); 227 227 nitems = fwrite (catalog[0].missing, sizeof(Missing), Nitems, f); 228 228 if (nitems != Nitems) { … … 260 260 return (NULL); 261 261 } 262 fits_convert_Average (average, sizeof(Average), Naverage);262 gfits_convert_Average (average, sizeof(Average), Naverage); 263 263 break; 264 264 case DVO_FORMAT_ELIXIR: … … 269 269 return (NULL); 270 270 } 271 fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);271 gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage); 272 272 average = AverageElixirToInternal (tmpAverageElixir, Naverage); 273 273 free (tmpAverageElixir); … … 280 280 return (NULL); 281 281 } 282 fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);282 gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage); 283 283 average = AverageLoneosToInternal (tmpAverageLoneos, Naverage); 284 284 free (tmpAverageLoneos); … … 291 291 return (NULL); 292 292 } 293 fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);293 gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage); 294 294 average = AveragePanstarrsToInternal (tmpAveragePanstarrs, Naverage); 295 295 free (tmpAveragePanstarrs); … … 302 302 return (NULL); 303 303 } 304 fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);304 gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage); 305 305 average = AveragePMtestToInternal (tmpAveragePMtest, Naverage); 306 306 free (tmpAveragePMtest); … … 325 325 switch (format) { 326 326 case DVO_FORMAT_INTERNAL: 327 fits_convert_Average (average, sizeof(Average), Naverage);327 gfits_convert_Average (average, sizeof(Average), Naverage); 328 328 nitems = fwrite (average, sizeof(Average), Naverage, f); 329 329 if (nitems != Naverage) { … … 334 334 case DVO_FORMAT_ELIXIR: 335 335 tmpAverageElixir = AverageInternalToElixir (average, Naverage); 336 fits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);336 gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage); 337 337 nitems = fwrite (tmpAverageElixir, sizeof(AverageElixir), Naverage, f); 338 338 free (tmpAverageElixir); … … 344 344 case DVO_FORMAT_LONEOS: 345 345 tmpAverageLoneos = AverageInternalToLoneos (average, Naverage); 346 fits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);346 gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage); 347 347 nitems = fwrite (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f); 348 348 free (tmpAverageLoneos); … … 354 354 case DVO_FORMAT_PANSTARRS: 355 355 tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage); 356 fits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);356 gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage); 357 357 nitems = fwrite (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f); 358 358 free (tmpAveragePanstarrs); … … 364 364 case DVO_FORMAT_PMTEST: 365 365 tmpAveragePMtest = AverageInternalToPMtest (average, Naverage); 366 fits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);366 gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage); 367 367 nitems = fwrite (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f); 368 368 free (tmpAveragePMtest); … … 397 397 return (NULL); 398 398 } 399 fits_convert_Measure (measure, sizeof(Measure), Nmeasure);399 gfits_convert_Measure (measure, sizeof(Measure), Nmeasure); 400 400 break; 401 401 case DVO_FORMAT_ELIXIR: … … 406 406 return (NULL); 407 407 } 408 fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);408 gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure); 409 409 measure = MeasureElixirToInternal (tmpMeasureElixir, Nmeasure); 410 410 free (tmpMeasureElixir); … … 417 417 return (NULL); 418 418 } 419 fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);419 gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure); 420 420 measure = MeasureLoneosToInternal (tmpMeasureLoneos, Nmeasure); 421 421 free (tmpMeasureLoneos); … … 429 429 return (NULL); 430 430 } 431 fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);431 gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure); 432 432 measure = MeasurePanstarrsToInternal (tmpMeasurePanstarrs, Nmeasure); 433 433 free (tmpMeasurePanstarrs); … … 451 451 switch (format) { 452 452 case DVO_FORMAT_INTERNAL: 453 fits_convert_Measure (measure, sizeof(Measure), Nmeasure);453 gfits_convert_Measure (measure, sizeof(Measure), Nmeasure); 454 454 nitems = fwrite (measure, sizeof(Measure), Nmeasure, f); 455 455 if (nitems != Nmeasure) { … … 460 460 case DVO_FORMAT_ELIXIR: 461 461 tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure); 462 fits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);462 gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure); 463 463 nitems = fwrite (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f); 464 464 free (tmpMeasureElixir); … … 470 470 case DVO_FORMAT_LONEOS: 471 471 tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure); 472 fits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);472 gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure); 473 473 nitems = fwrite (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f); 474 474 free (tmpMeasureLoneos); … … 481 481 case DVO_FORMAT_PMTEST: 482 482 tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure); 483 fits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);483 gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure); 484 484 nitems = fwrite (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f); 485 485 free (tmpMeasurePanstarrs); … … 514 514 return (NULL); 515 515 } 516 fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);516 gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt); 517 517 break; 518 518 case DVO_FORMAT_ELIXIR: … … 523 523 return (NULL); 524 524 } 525 fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);525 gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt); 526 526 secfilt = SecFiltElixirToInternal (tmpSecFiltElixir, Nsecfilt); 527 527 free (tmpSecFiltElixir); … … 534 534 return (NULL); 535 535 } 536 fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);536 gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt); 537 537 secfilt = SecFiltLoneosToInternal (tmpSecFiltLoneos, Nsecfilt); 538 538 free (tmpSecFiltLoneos); … … 546 546 return (NULL); 547 547 } 548 fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);548 gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt); 549 549 secfilt = SecFiltPanstarrsToInternal (tmpSecFiltPanstarrs, Nsecfilt); 550 550 free (tmpSecFiltPanstarrs); … … 568 568 switch (format) { 569 569 case DVO_FORMAT_INTERNAL: 570 fits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);570 gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt); 571 571 nitems = fwrite (secfilt, sizeof(SecFilt), Nsecfilt, f); 572 572 if (nitems != Nsecfilt) { … … 577 577 case DVO_FORMAT_ELIXIR: 578 578 tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt); 579 fits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);579 gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt); 580 580 nitems = fwrite (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f); 581 581 free (tmpSecFiltElixir); … … 587 587 case DVO_FORMAT_LONEOS: 588 588 tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt); 589 fits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);589 gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt); 590 590 nitems = fwrite (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f); 591 591 free (tmpSecFiltLoneos); … … 598 598 case DVO_FORMAT_PMTEST: 599 599 tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt); 600 fits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);600 gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt); 601 601 nitems = fwrite (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f); 602 602 free (tmpSecFiltPanstarrs); -
trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
r5320 r7080 17 17 18 18 /* get the components from the header - these duplicate information in the split files (NAXIS2) */ 19 if (! fits_scan (&catalog[0].header, "NSTARS", "%d", 1, &Naverage)) return (FALSE);20 if (! fits_scan (&catalog[0].header, "NMEAS", "%d", 1, &Nmeasure)) return (FALSE);21 if (! fits_scan (&catalog[0].header, "NMISS", "%d", 1, &Nmissing)) return (FALSE);22 if (! fits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0;19 if (!gfits_scan (&catalog[0].header, "NSTARS", "%d", 1, &Naverage)) return (FALSE); 20 if (!gfits_scan (&catalog[0].header, "NMEAS", "%d", 1, &Nmeasure)) return (FALSE); 21 if (!gfits_scan (&catalog[0].header, "NMISS", "%d", 1, &Nmissing)) return (FALSE); 22 if (!gfits_scan (&catalog[0].header, "NSECFILT", "%d", 1, &Nsecfilt)) Nsecfilt = 0; 23 23 24 24 /** Nsecfilt is unusual: it does not list the number of data items in the table … … 40 40 fseek (catalog[0].f, catalog[0].header.size, SEEK_SET); 41 41 /* matrix should be empty */ 42 if (! fits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) {42 if (!gfits_fread_matrix (catalog[0].f, &matrix, &catalog[0].header)) { 43 43 if (VERBOSE) fprintf (stderr, "can't read primary matrix"); 44 44 return (FALSE); 45 45 } 46 46 /* read Average table header */ 47 if (! fits_fread_header (catalog[0].f, &header)) {47 if (!gfits_fread_header (catalog[0].f, &header)) { 48 48 if (VERBOSE) fprintf (stderr, "can't read table average header"); 49 49 return (FALSE); 50 50 } 51 51 /* read Average table data */ 52 if (! fits_fread_ftable_data (catalog[0].f, &ftable)) {52 if (!gfits_fread_ftable_data (catalog[0].f, &ftable)) { 53 53 if (VERBOSE) fprintf (stderr, "can't read table average data"); 54 54 return (FALSE); … … 58 58 fprintf (stderr, "Warning: mismatch between Naverage in PHU and Table headers (%d vs %d)\n", Naverage, catalog[0].Naverage); 59 59 } 60 fits_free_header (&header);60 gfits_free_header (&header); 61 61 } 62 62 … … 70 70 71 71 /* get split filename from main header (paths relative to cpt file) */ 72 if (! fits_scan (&catalog[0].header, "MEASURE", "%s", 1, string)) return (FALSE);72 if (!gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, string)) return (FALSE); 73 73 ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2); 74 74 sprintf (measure[0].filename, "%s/%s", path, string); … … 81 81 82 82 /* read PHU */ 83 if (! fits_load_header (measure[0].f, &measure[0].header)) {83 if (!gfits_load_header (measure[0].f, &measure[0].header)) { 84 84 if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename); 85 85 return (FALSE); 86 86 } 87 87 /* matrix should be empty */ 88 if (! fits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) {88 if (!gfits_fread_matrix (measure[0].f, &matrix, &measure[0].header)) { 89 89 if (VERBOSE) fprintf (stderr, "can't read primary matrix"); 90 90 return (FALSE); 91 91 } 92 92 /* read Measure table header */ 93 if (! fits_fread_header (measure[0].f, &header)) {93 if (!gfits_fread_header (measure[0].f, &header)) { 94 94 if (VERBOSE) fprintf (stderr, "can't read measure PHU header"); 95 95 return (FALSE); 96 96 } 97 97 /* read Measure table data */ 98 if (! fits_fread_ftable_data (measure[0].f, &ftable)) {98 if (!gfits_fread_ftable_data (measure[0].f, &ftable)) { 99 99 if (VERBOSE) fprintf (stderr, "can't read table measure data"); 100 100 return (FALSE); … … 106 106 } 107 107 catalog[0].Nmeas_off = 0; 108 fits_free_header (&header);109 fits_free_matrix (&matrix);108 gfits_free_header (&header); 109 gfits_free_matrix (&matrix); 110 110 } 111 111 … … 115 115 116 116 /* get split filename from main header (paths relative to cpt file) */ 117 if (! fits_scan (&catalog[0].header, "MEASURE", "%s", 1, string)) return (FALSE);117 if (!gfits_scan (&catalog[0].header, "MEASURE", "%s", 1, string)) return (FALSE); 118 118 ALLOCATE (measure[0].filename, char, strlen(path) + strlen(string) + 2); 119 119 sprintf (measure[0].filename, "%s/%s", path, string); … … 126 126 127 127 /* read PHU */ 128 if (! fits_load_header (measure[0].f, &measure[0].header)) {128 if (!gfits_load_header (measure[0].f, &measure[0].header)) { 129 129 if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", measure[0].filename); 130 130 return (FALSE); … … 147 147 148 148 /* get split filename from main header (paths relative to cpt file) */ 149 if (! fits_scan (&catalog[0].header, "MISSING", "%s", 1, string)) return (FALSE);149 if (!gfits_scan (&catalog[0].header, "MISSING", "%s", 1, string)) return (FALSE); 150 150 ALLOCATE (missing[0].filename, char, strlen(path) + strlen(string) + 2); 151 151 sprintf (missing[0].filename, "%s/%s", path, string); … … 158 158 159 159 /* read PHU */ 160 if (! fits_load_header (missing[0].f, &missing[0].header)) {160 if (!gfits_load_header (missing[0].f, &missing[0].header)) { 161 161 if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", missing[0].filename); 162 162 return (FALSE); 163 163 } 164 164 /* matrix should be empty */ 165 if (! fits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) {165 if (!gfits_fread_matrix (missing[0].f, &matrix, &missing[0].header)) { 166 166 if (VERBOSE) fprintf (stderr, "can't read primary matrix"); 167 167 return (FALSE); 168 168 } 169 169 /* read Missing table header */ 170 if (! fits_fread_header (missing[0].f, &header)) {170 if (!gfits_fread_header (missing[0].f, &header)) { 171 171 if (VERBOSE) fprintf (stderr, "can't read table missing header"); 172 172 return (FALSE); 173 173 } 174 174 /* read Missing table data */ 175 if (! fits_fread_ftable_data (missing[0].f, &ftable)) {175 if (!gfits_fread_ftable_data (missing[0].f, &ftable)) { 176 176 if (VERBOSE) fprintf (stderr, "can't read table missing data"); 177 177 return (FALSE); 178 178 } 179 179 /* no conversions currently defined */ 180 catalog[0].missing = fits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL);180 catalog[0].missing = gfits_table_get_Missing (&ftable, &catalog[0].Nmissing, NULL); 181 181 if (Nmissing != catalog[0].Nmissing) { 182 182 fprintf (stderr, "Warning: mismatch between Nmissing in PHU and Table headers (%d vs %d)\n", Nmissing, catalog[0].Nmissing); 183 183 } 184 fits_free_header (&header);185 fits_free_matrix (&matrix);184 gfits_free_header (&header); 185 gfits_free_matrix (&matrix); 186 186 } 187 187 catalog[0].missing_catalog = missing; … … 194 194 195 195 /* get split filename from main header (paths relative to cpt file) */ 196 if (! fits_scan (&catalog[0].header, "SECFILT", "%s", 1, string)) return (FALSE);196 if (!gfits_scan (&catalog[0].header, "SECFILT", "%s", 1, string)) return (FALSE); 197 197 ALLOCATE (secfilt[0].filename, char, strlen(path) + strlen(string) + 2); 198 198 sprintf (secfilt[0].filename, "%s/%s", path, string); … … 205 205 206 206 /* read PHU */ 207 if (! fits_load_header (secfilt[0].f, &secfilt[0].header)) {207 if (!gfits_load_header (secfilt[0].f, &secfilt[0].header)) { 208 208 if (VERBOSE) fprintf (stderr, "catalog file does not exist: %s\n", secfilt[0].filename); 209 209 return (FALSE); 210 210 } 211 211 /* matrix should be empty */ 212 if (! fits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) {212 if (!gfits_fread_matrix (secfilt[0].f, &matrix, &secfilt[0].header)) { 213 213 if (VERBOSE) fprintf (stderr, "can't read primary matrix"); 214 214 return (FALSE); 215 215 } 216 216 /* read secfilt table header */ 217 if (! fits_fread_header (secfilt[0].f, &header)) {217 if (!gfits_fread_header (secfilt[0].f, &header)) { 218 218 if (VERBOSE) fprintf (stderr, "can't read table secfilt header"); 219 219 return (FALSE); 220 220 } 221 221 /* read secfilt table data */ 222 if (! fits_fread_ftable_data (secfilt[0].f, &ftable)) {222 if (!gfits_fread_ftable_data (secfilt[0].f, &ftable)) { 223 223 if (VERBOSE) fprintf (stderr, "can't read table secfilt data"); 224 224 return (FALSE); … … 229 229 fprintf (stderr, "Warning: mismatch between Nsecfilt items in PHU and Table headers (%d vs %d)\n", Nexpect, Nitems); 230 230 } 231 fits_free_header (&header);232 fits_free_matrix (&matrix);231 gfits_free_header (&header); 232 gfits_free_matrix (&matrix); 233 233 } 234 234 catalog[0].secfilt_catalog = secfilt; … … 260 260 261 261 /* make sure header is consistent with data */ 262 fits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);263 fits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure);264 fits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);265 fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);266 fits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE);262 gfits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage); 263 gfits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure); 264 gfits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing); 265 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt); 266 gfits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 267 267 268 268 /* rewind file pointers and truncate (file is still open) */ … … 271 271 /* write table PHU header - always write this out */ 272 272 /* XXX EAM : check if disk file size has changed */ 273 if (! fits_fwrite_header (catalog[0].f, &catalog[0].header)) {273 if (!gfits_fwrite_header (catalog[0].f, &catalog[0].header)) { 274 274 fprintf (stderr, "can't write primary header"); 275 275 return (FALSE); … … 284 284 285 285 /* this is probably a NOP, do I have to keep it in? */ 286 fits_create_matrix (&catalog[0].header, &matrix);287 if (! fits_fwrite_matrix (catalog[0].f, &matrix)) {286 gfits_create_matrix (&catalog[0].header, &matrix); 287 if (!gfits_fwrite_matrix (catalog[0].f, &matrix)) { 288 288 fprintf (stderr, "can't write primary matrix"); 289 289 return (FALSE); 290 290 } 291 fits_free_matrix (&matrix);291 gfits_free_matrix (&matrix); 292 292 293 293 /* write out Average table (convert to FITS table format) */ 294 294 AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat); 295 if (! fits_fwrite_Theader (catalog[0].f, &header)) {296 fprintf (stderr, "can't write table header"); 297 return (FALSE); 298 } 299 if (! fits_fwrite_table (catalog[0].f, &ftable)) {300 fprintf (stderr, "can't write table data"); 301 return (FALSE); 302 } 303 fits_free_table (&ftable);304 fits_free_header (&header);295 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 296 fprintf (stderr, "can't write table header"); 297 return (FALSE); 298 } 299 if (!gfits_fwrite_table (catalog[0].f, &ftable)) { 300 fprintf (stderr, "can't write table data"); 301 return (FALSE); 302 } 303 gfits_free_table (&ftable); 304 gfits_free_header (&header); 305 305 } 306 306 … … 322 322 323 323 /* write table PHU header */ 324 if (! fits_fwrite_header (measure[0].f, &measure[0].header)) {324 if (!gfits_fwrite_header (measure[0].f, &measure[0].header)) { 325 325 fprintf (stderr, "can't write primary header"); 326 326 return (FALSE); … … 328 328 329 329 /* this is probably a NOP, do I have to keep it in? */ 330 fits_create_matrix (&measure[0].header, &matrix);331 if (! fits_fwrite_matrix (measure[0].f, &matrix)) {330 gfits_create_matrix (&measure[0].header, &matrix); 331 if (!gfits_fwrite_matrix (measure[0].f, &matrix)) { 332 332 fprintf (stderr, "can't write primary matrix"); 333 333 return (FALSE); 334 334 } 335 fits_free_matrix (&matrix);335 gfits_free_matrix (&matrix); 336 336 337 337 /* write out Measure table (convert to FITS table format) */ 338 338 MeasureToFtable (&ftable, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat); 339 if (! fits_fwrite_Theader (measure[0].f, &header)) {340 fprintf (stderr, "can't write table header"); 341 return (FALSE); 342 } 343 if (! fits_fwrite_table (measure[0].f, &ftable)) {344 fprintf (stderr, "can't write table data"); 345 return (FALSE); 346 } 347 fits_free_table (&ftable);348 fits_free_header (&header);339 if (!gfits_fwrite_Theader (measure[0].f, &header)) { 340 fprintf (stderr, "can't write table header"); 341 return (FALSE); 342 } 343 if (!gfits_fwrite_table (measure[0].f, &ftable)) { 344 fprintf (stderr, "can't write table data"); 345 return (FALSE); 346 } 347 gfits_free_table (&ftable); 348 gfits_free_header (&header); 349 349 } 350 350 … … 360 360 361 361 /* write table PHU header */ 362 if (! fits_fwrite_header (missing[0].f, &missing[0].header)) {362 if (!gfits_fwrite_header (missing[0].f, &missing[0].header)) { 363 363 fprintf (stderr, "can't write primary header"); 364 364 return (FALSE); … … 366 366 367 367 /* this is probably a NOP, do I have to keep it in? */ 368 fits_create_matrix (&missing[0].header, &matrix);369 if (! fits_fwrite_matrix (missing[0].f, &matrix)) {368 gfits_create_matrix (&missing[0].header, &matrix); 369 if (!gfits_fwrite_matrix (missing[0].f, &matrix)) { 370 370 fprintf (stderr, "can't write primary matrix"); 371 371 return (FALSE); 372 372 } 373 fits_free_matrix (&matrix);373 gfits_free_matrix (&matrix); 374 374 375 375 /* write out Missing table (convert to FITS table format) */ 376 fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);377 if (! fits_fwrite_Theader (missing[0].f, &header)) {378 fprintf (stderr, "can't write table header"); 379 return (FALSE); 380 } 381 if (! fits_fwrite_table (missing[0].f, &ftable)) {382 fprintf (stderr, "can't write table data"); 383 return (FALSE); 384 } 385 fits_free_table (&ftable);386 fits_free_header (&header);376 gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing); 377 if (!gfits_fwrite_Theader (missing[0].f, &header)) { 378 fprintf (stderr, "can't write table header"); 379 return (FALSE); 380 } 381 if (!gfits_fwrite_table (missing[0].f, &ftable)) { 382 fprintf (stderr, "can't write table data"); 383 return (FALSE); 384 } 385 gfits_free_table (&ftable); 386 gfits_free_header (&header); 387 387 } 388 388 … … 398 398 399 399 /* write table PHU header */ 400 if (! fits_fwrite_header (secfilt[0].f, &secfilt[0].header)) {400 if (!gfits_fwrite_header (secfilt[0].f, &secfilt[0].header)) { 401 401 fprintf (stderr, "can't write primary header"); 402 402 return (FALSE); … … 404 404 405 405 /* this is probably a NOP, do I have to keep it in? */ 406 fits_create_matrix (&secfilt[0].header, &matrix);407 if (! fits_fwrite_matrix (secfilt[0].f, &matrix)) {406 gfits_create_matrix (&secfilt[0].header, &matrix); 407 if (!gfits_fwrite_matrix (secfilt[0].f, &matrix)) { 408 408 fprintf (stderr, "can't write primary matrix"); 409 409 return (FALSE); 410 410 } 411 fits_free_matrix (&matrix);411 gfits_free_matrix (&matrix); 412 412 413 413 /* write out SecFilt table (convert to FITS table format) */ 414 414 Nitems = catalog[0].Naverage * catalog[0].Nsecfilt; 415 415 SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat); 416 if (! fits_fwrite_Theader (secfilt[0].f, &header)) {417 fprintf (stderr, "can't write table header"); 418 return (FALSE); 419 } 420 if (! fits_fwrite_table (secfilt[0].f, &ftable)) {421 fprintf (stderr, "can't write table data"); 422 return (FALSE); 423 } 424 fits_free_table (&ftable);425 fits_free_header (&header);416 if (!gfits_fwrite_Theader (secfilt[0].f, &header)) { 417 fprintf (stderr, "can't write table header"); 418 return (FALSE); 419 } 420 if (!gfits_fwrite_table (secfilt[0].f, &ftable)) { 421 fprintf (stderr, "can't write table data"); 422 return (FALSE); 423 } 424 gfits_free_table (&ftable); 425 gfits_free_header (&header); 426 426 } 427 427 … … 453 453 454 454 /* make sure header is consistent with data */ 455 fits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage);456 fits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off);457 fits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing);458 fits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt);459 fits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE);455 gfits_modify (&catalog[0].header, "NSTARS", "%d", 1, catalog[0].Naverage); 456 gfits_modify (&catalog[0].header, "NMEAS", "%d", 1, catalog[0].Nmeasure + catalog[0].Nmeas_off); 457 gfits_modify (&catalog[0].header, "NMISS", "%d", 1, catalog[0].Nmissing); 458 gfits_modify (&catalog[0].header, "NSECFILT", "%d", 1, catalog[0].Nsecfilt); 459 gfits_modify (&catalog[0].header, "EXTEND", "%t", 1, TRUE); 460 460 461 461 /* rewind file pointers and truncate (file is still open) */ … … 464 464 /* write table PHU header - always write this out */ 465 465 /* XXX EAM : check if disk file size has changed */ 466 if (! fits_fwrite_header (catalog[0].f, &catalog[0].header)) {466 if (!gfits_fwrite_header (catalog[0].f, &catalog[0].header)) { 467 467 fprintf (stderr, "can't write primary header"); 468 468 return (FALSE); … … 474 474 475 475 /* skip past matrix (already at end of header) */ 476 Nskip = fits_matrix_size (&catalog[0].header);476 Nskip = gfits_matrix_size (&catalog[0].header); 477 477 fseek (catalog[0].f, Nskip, SEEK_CUR); 478 478 … … 483 483 AverageToFtable (&ftable, catalog[0].average, catalog[0].Naverage, catalog[0].catformat); 484 484 /* convert only output rows to vtable */ 485 fits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout);486 487 if (! fits_fwrite_Theader (catalog[0].f, &header)) {488 fprintf (stderr, "can't write table header"); 489 return (FALSE); 490 } 491 if (! fits_fwrite_vtable (catalog[0].f, &vtable)) {492 fprintf (stderr, "can't write table data"); 493 return (FALSE); 494 } 495 fits_free_vtable (&vtable);496 fits_free_table (&ftable);497 fits_free_header (&header);485 gfits_table_to_vtable (&ftable, &vtable, catalog[0].Nave_disk, Nout); 486 487 if (!gfits_fwrite_Theader (catalog[0].f, &header)) { 488 fprintf (stderr, "can't write table header"); 489 return (FALSE); 490 } 491 if (!gfits_fwrite_vtable (catalog[0].f, &vtable)) { 492 fprintf (stderr, "can't write table data"); 493 return (FALSE); 494 } 495 gfits_free_vtable (&vtable); 496 gfits_free_table (&ftable); 497 gfits_free_header (&header); 498 498 } 499 499 … … 505 505 506 506 /* skip past PHU header and matrix */ 507 Nskip = measure[0].header.size + fits_matrix_size (&measure[0].header);507 Nskip = measure[0].header.size + gfits_matrix_size (&measure[0].header); 508 508 fseek (measure[0].f, Nskip, SEEK_SET); 509 509 … … 516 516 MeasureToFtable (&ftable, &catalog[0].measure[Nstart], Nout, catalog[0].catformat); 517 517 518 fits_scan (&header, "NAXIS1", "%d", 1, &Nx);519 fits_scan (&header, "NAXIS2", "%d", 1, &Ny);518 gfits_scan (&header, "NAXIS1", "%d", 1, &Nx); 519 gfits_scan (&header, "NAXIS2", "%d", 1, &Ny); 520 520 521 521 /* convert all output rows to vtable */ … … 529 529 530 530 /* modify vtable to represent full disk table */ 531 fits_modify (&header, "NAXIS2", "%d", 1, Nlines);531 gfits_modify (&header, "NAXIS2", "%d", 1, Nlines); 532 532 header.Naxis[1] = Nlines; 533 533 534 vtable.size = fits_matrix_size (&header);534 vtable.size = gfits_matrix_size (&header); 535 535 vtable.Nrow = Nout; 536 536 vtable.pad = vtable.size - Nx*Ny; 537 537 538 if (! fits_fwrite_Theader (measure[0].f, &header)) {539 fprintf (stderr, "can't write table header"); 540 return (FALSE); 541 } 542 if (! fits_fwrite_vtable (measure[0].f, &vtable)) {543 fprintf (stderr, "can't write table data"); 544 return (FALSE); 545 } 546 fits_free_vtable (&vtable);547 fits_free_table (&ftable);548 fits_free_header (&header);538 if (!gfits_fwrite_Theader (measure[0].f, &header)) { 539 fprintf (stderr, "can't write table header"); 540 return (FALSE); 541 } 542 if (!gfits_fwrite_vtable (measure[0].f, &vtable)) { 543 fprintf (stderr, "can't write table data"); 544 return (FALSE); 545 } 546 gfits_free_vtable (&vtable); 547 gfits_free_table (&ftable); 548 gfits_free_header (&header); 549 549 } 550 550 … … 562 562 563 563 /* write table PHU header */ 564 if (! fits_fwrite_header (missing[0].f, &missing[0].header)) {564 if (!gfits_fwrite_header (missing[0].f, &missing[0].header)) { 565 565 fprintf (stderr, "can't write primary header"); 566 566 return (FALSE); … … 568 568 569 569 /* this is probably a NOP, do I have to keep it in? */ 570 fits_create_matrix (&missing[0].header, &matrix);571 if (! fits_fwrite_matrix (missing[0].f, &matrix)) {570 gfits_create_matrix (&missing[0].header, &matrix); 571 if (!gfits_fwrite_matrix (missing[0].f, &matrix)) { 572 572 fprintf (stderr, "can't write primary matrix"); 573 573 return (FALSE); 574 574 } 575 fits_free_matrix (&matrix);575 gfits_free_matrix (&matrix); 576 576 577 577 /* write out Missing table (convert to FITS table format) */ 578 fits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing);579 if (! fits_fwrite_Theader (missing[0].f, &header)) {580 fprintf (stderr, "can't write table header"); 581 return (FALSE); 582 } 583 if (! fits_fwrite_table (missing[0].f, &ftable)) {584 fprintf (stderr, "can't write table data"); 585 return (FALSE); 586 } 587 fits_free_table (&ftable);588 fits_free_header (&header);578 gfits_table_set_Missing (&ftable, catalog[0].missing, catalog[0].Nmissing); 579 if (!gfits_fwrite_Theader (missing[0].f, &header)) { 580 fprintf (stderr, "can't write table header"); 581 return (FALSE); 582 } 583 if (!gfits_fwrite_table (missing[0].f, &ftable)) { 584 fprintf (stderr, "can't write table data"); 585 return (FALSE); 586 } 587 gfits_free_table (&ftable); 588 gfits_free_header (&header); 589 589 } 590 590 … … 596 596 597 597 /* skip past PHU header and matrix */ 598 Nskip = secfilt[0].header.size + fits_matrix_size (&secfilt[0].header);598 Nskip = secfilt[0].header.size + gfits_matrix_size (&secfilt[0].header); 599 599 fseek (secfilt[0].f, Nskip, SEEK_SET); 600 600 … … 607 607 SecFiltToFtable (&ftable, catalog[0].secfilt, Nitems, catalog[0].catformat); 608 608 /* convert only output rows to vtable */ 609 fits_table_to_vtable (&ftable, &vtable, Ndisk, Nout);610 611 if (! fits_fwrite_Theader (secfilt[0].f, &header)) {612 fprintf (stderr, "can't write table header"); 613 return (FALSE); 614 } 615 if (! fits_fwrite_vtable (secfilt[0].f, &vtable)) {616 fprintf (stderr, "can't write table data"); 617 return (FALSE); 618 } 619 fits_free_vtable (&vtable);620 fits_free_table (&ftable);621 fits_free_header (&header);609 gfits_table_to_vtable (&ftable, &vtable, Ndisk, Nout); 610 611 if (!gfits_fwrite_Theader (secfilt[0].f, &header)) { 612 fprintf (stderr, "can't write table header"); 613 return (FALSE); 614 } 615 if (!gfits_fwrite_vtable (secfilt[0].f, &vtable)) { 616 fprintf (stderr, "can't write table data"); 617 return (FALSE); 618 } 619 gfits_free_vtable (&vtable); 620 gfits_free_table (&ftable); 621 gfits_free_header (&header); 622 622 } 623 623 -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r6683 r7080 19 19 20 20 /* convert to the internal format */ 21 if (! fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {21 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 22 22 fprintf (stderr, "EXTNAME missing for average table\n"); 23 23 return (FALSE); 24 24 } 25 25 if (!strcmp (extname, "DVO_AVERAGE")) { 26 average = fits_table_get_Average (ftable, Naverage, NULL);26 average = gfits_table_get_Average (ftable, Naverage, NULL); 27 27 *format = DVO_FORMAT_INTERNAL; 28 28 return (average); … … 30 30 if (!strcmp (extname, "DVO_AVERAGE_ELIXIR")) { 31 31 AverageElixir *tmpAverage; 32 tmpAverage = fits_table_get_AverageElixir (ftable, Naverage, NULL);32 tmpAverage = gfits_table_get_AverageElixir (ftable, Naverage, NULL); 33 33 average = AverageElixirToInternal (tmpAverage, *Naverage); 34 34 free (tmpAverage); … … 38 38 if (!strcmp (extname, "DVO_AVERAGE_LONEOS")) { 39 39 AverageLoneos *tmpAverage; 40 tmpAverage = fits_table_get_AverageLoneos (ftable, Naverage, NULL);40 tmpAverage = gfits_table_get_AverageLoneos (ftable, Naverage, NULL); 41 41 average = AverageLoneosToInternal (tmpAverage, *Naverage); 42 42 free (tmpAverage); … … 46 46 if (!strcmp (extname, "DVO_AVERAGE_PANSTARRS")) { 47 47 AveragePanstarrs *tmpAverage; 48 tmpAverage = fits_table_get_AveragePanstarrs (ftable, Naverage, NULL);48 tmpAverage = gfits_table_get_AveragePanstarrs (ftable, Naverage, NULL); 49 49 average = AveragePanstarrsToInternal (tmpAverage, *Naverage); 50 50 free (tmpAverage); … … 54 54 if (!strcmp (extname, "DVO_AVERAGE_PMTEST")) { 55 55 AveragePMtest *tmpAverage; 56 tmpAverage = fits_table_get_AveragePMtest (ftable, Naverage, NULL);56 tmpAverage = gfits_table_get_AveragePMtest (ftable, Naverage, NULL); 57 57 average = AveragePMtestToInternal (tmpAverage, *Naverage); 58 58 free (tmpAverage); … … 77 77 switch (format) { 78 78 case DVO_FORMAT_INTERNAL: 79 fits_table_set_Average (ftable, average, Naverage);79 gfits_table_set_Average (ftable, average, Naverage); 80 80 break; 81 81 case DVO_FORMAT_ELIXIR: 82 82 tmpAverageElixir = AverageInternalToElixir (average, Naverage); 83 fits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage);83 gfits_table_set_AverageElixir (ftable, tmpAverageElixir, Naverage); 84 84 free (tmpAverageElixir); 85 85 break; 86 86 case DVO_FORMAT_LONEOS: 87 87 tmpAverageLoneos = AverageInternalToLoneos (average, Naverage); 88 fits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage);88 gfits_table_set_AverageLoneos (ftable, tmpAverageLoneos , Naverage); 89 89 free (tmpAverageLoneos ); 90 90 break; 91 91 case DVO_FORMAT_PANSTARRS: 92 92 tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage); 93 fits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage);93 gfits_table_set_AveragePanstarrs (ftable, tmpAveragePanstarrs, Naverage); 94 94 free (tmpAveragePanstarrs); 95 95 break; 96 96 case DVO_FORMAT_PMTEST: 97 97 tmpAveragePMtest = AverageInternalToPMtest (average, Naverage); 98 fits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage);98 gfits_table_set_AveragePMtest (ftable, tmpAveragePMtest, Naverage); 99 99 free (tmpAveragePMtest); 100 100 break; … … 114 114 115 115 /* convert to the internal format */ 116 if (! fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {116 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 117 117 fprintf (stderr, "EXTNAME missing for measure table\n"); 118 118 return (FALSE); 119 119 } 120 120 if (!strcmp (extname, "DVO_MEASURE")) { 121 measure = fits_table_get_Measure (ftable, Nmeasure, NULL);121 measure = gfits_table_get_Measure (ftable, Nmeasure, NULL); 122 122 *format = DVO_FORMAT_INTERNAL; 123 123 return (measure); … … 125 125 if (!strcmp (extname, "DVO_MEASURE_ELIXIR")) { 126 126 MeasureElixir *tmpMeasure; 127 tmpMeasure = fits_table_get_MeasureElixir (ftable, Nmeasure, NULL);127 tmpMeasure = gfits_table_get_MeasureElixir (ftable, Nmeasure, NULL); 128 128 measure = MeasureElixirToInternal (tmpMeasure, *Nmeasure); 129 129 free (tmpMeasure); … … 133 133 if (!strcmp (extname, "DVO_MEASURE_LONEOS")) { 134 134 MeasureLoneos *tmpMeasure; 135 tmpMeasure = fits_table_get_MeasureLoneos (ftable, Nmeasure, NULL);135 tmpMeasure = gfits_table_get_MeasureLoneos (ftable, Nmeasure, NULL); 136 136 measure = MeasureLoneosToInternal (tmpMeasure, *Nmeasure); 137 137 free (tmpMeasure); … … 141 141 if (!strcmp (extname, "DVO_MEASURE_PANSTARRS") || !strcmp (extname, "DVO_MEASURE_PMTEST")) { 142 142 MeasurePanstarrs *tmpMeasure; 143 tmpMeasure = fits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL);143 tmpMeasure = gfits_table_get_MeasurePanstarrs (ftable, Nmeasure, NULL); 144 144 measure = MeasurePanstarrsToInternal (tmpMeasure, *Nmeasure); 145 145 free (tmpMeasure); … … 163 163 switch (format) { 164 164 case DVO_FORMAT_INTERNAL: 165 fits_table_set_Measure (ftable, measure, Nmeasure);165 gfits_table_set_Measure (ftable, measure, Nmeasure); 166 166 break; 167 167 case DVO_FORMAT_ELIXIR: 168 168 tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure); 169 fits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure);169 gfits_table_set_MeasureElixir (ftable, tmpMeasureElixir, Nmeasure); 170 170 free (tmpMeasureElixir); 171 171 break; 172 172 case DVO_FORMAT_LONEOS: 173 173 tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure); 174 fits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure);174 gfits_table_set_MeasureLoneos (ftable, tmpMeasureLoneos, Nmeasure); 175 175 free (tmpMeasureLoneos); 176 176 break; … … 178 178 case DVO_FORMAT_PMTEST: 179 179 tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure); 180 fits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure);180 gfits_table_set_MeasurePanstarrs (ftable, tmpMeasurePanstarrs, Nmeasure); 181 181 free (tmpMeasurePanstarrs); 182 182 break; … … 196 196 197 197 /* convert to the internal format */ 198 if (! fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {198 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 199 199 fprintf (stderr, "EXTNAME missing for secfilt table\n"); 200 200 return (FALSE); 201 201 } 202 202 if (!strcmp (extname, "DVO_SECFILT")) { 203 secfilt = fits_table_get_SecFilt (ftable, Nsecfilt, NULL);203 secfilt = gfits_table_get_SecFilt (ftable, Nsecfilt, NULL); 204 204 *format = DVO_FORMAT_INTERNAL; 205 205 return (secfilt); … … 207 207 if (!strcmp (extname, "DVO_SECFILT_ELIXIR")) { 208 208 SecFiltElixir *tmpSecFilt; 209 tmpSecFilt = fits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL);209 tmpSecFilt = gfits_table_get_SecFiltElixir (ftable, Nsecfilt, NULL); 210 210 secfilt = SecFiltElixirToInternal (tmpSecFilt, *Nsecfilt); 211 211 free (tmpSecFilt); … … 215 215 if (!strcmp (extname, "DVO_SECFILT_LONEOS")) { 216 216 SecFiltLoneos *tmpSecFilt; 217 tmpSecFilt = fits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL);217 tmpSecFilt = gfits_table_get_SecFiltLoneos (ftable, Nsecfilt, NULL); 218 218 secfilt = SecFiltLoneosToInternal (tmpSecFilt, *Nsecfilt); 219 219 free (tmpSecFilt); … … 223 223 if (!strcmp (extname, "DVO_SECFILT_PANSTARRS") || !strcmp (extname, "DVO_SECFILT_PMTEST")) { 224 224 SecFiltPanstarrs *tmpSecFilt; 225 tmpSecFilt = fits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL);225 tmpSecFilt = gfits_table_get_SecFiltPanstarrs (ftable, Nsecfilt, NULL); 226 226 secfilt = SecFiltPanstarrsToInternal (tmpSecFilt, *Nsecfilt); 227 227 free (tmpSecFilt); … … 245 245 switch (format) { 246 246 case DVO_FORMAT_INTERNAL: 247 fits_table_set_SecFilt (ftable, secfilt, Nsecfilt);247 gfits_table_set_SecFilt (ftable, secfilt, Nsecfilt); 248 248 break; 249 249 case DVO_FORMAT_ELIXIR: 250 250 tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt); 251 fits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt);251 gfits_table_set_SecFiltElixir (ftable, tmpSecFiltElixir, Nsecfilt); 252 252 free (tmpSecFiltElixir); 253 253 break; 254 254 case DVO_FORMAT_LONEOS: 255 255 tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt); 256 fits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt);256 gfits_table_set_SecFiltLoneos (ftable, tmpSecFiltLoneos, Nsecfilt); 257 257 free (tmpSecFiltLoneos); 258 258 break; … … 260 260 case DVO_FORMAT_PMTEST: 261 261 tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt); 262 fits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt);262 gfits_table_set_SecFiltPanstarrs (ftable, tmpSecFiltPanstarrs, Nsecfilt); 263 263 free (tmpSecFiltPanstarrs); 264 264 break; … … 280 280 if (*format == DVO_FORMAT_ELIXIR) { 281 281 ImageElixir *tmpimage; 282 tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);282 tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL); 283 283 ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage); 284 284 free (tmpimage); … … 287 287 288 288 /* convert to the internal format */ 289 if (! fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) {289 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 290 290 fprintf (stderr, "EXTNAME missing for image table\n"); 291 291 return (FALSE); … … 293 293 if (!strcmp (extname, "DVO_IMAGE")) { 294 294 Image *image; 295 image = fits_table_get_Image (ftable, &Nimage, NULL);295 image = gfits_table_get_Image (ftable, &Nimage, NULL); 296 296 *format = DVO_FORMAT_INTERNAL; 297 297 return (TRUE); … … 300 300 ImageElixir *tmpimage; 301 301 *format = DVO_FORMAT_ELIXIR; 302 tmpimage = fits_table_get_ImageElixir (ftable, &Nimage, NULL);302 tmpimage = gfits_table_get_ImageElixir (ftable, &Nimage, NULL); 303 303 ftable[0].buffer = (char *) ImageElixirToInternal (tmpimage, Nimage); 304 304 free (tmpimage); … … 308 308 ImageLoneos *tmpimage; 309 309 *format = DVO_FORMAT_LONEOS; 310 tmpimage = fits_table_get_ImageLoneos (ftable, &Nimage, NULL);310 tmpimage = gfits_table_get_ImageLoneos (ftable, &Nimage, NULL); 311 311 ftable[0].buffer = (char *) ImageLoneosToInternal (tmpimage, Nimage); 312 312 free (tmpimage); … … 316 316 ImagePanstarrs *tmpimage; 317 317 *format = DVO_FORMAT_PANSTARRS; 318 tmpimage = fits_table_get_ImagePanstarrs (ftable, &Nimage, NULL);318 tmpimage = gfits_table_get_ImagePanstarrs (ftable, &Nimage, NULL); 319 319 ftable[0].buffer = (char *) ImagePanstarrsToInternal (tmpimage, Nimage); 320 320 free (tmpimage); … … 325 325 326 326 set_header: 327 fits_free_header (theader);328 fits_table_mkheader_Image (theader);329 fits_modify (theader, "NAXIS2", "%d", 1, Nimage);327 gfits_free_header (theader); 328 gfits_table_mkheader_Image (theader); 329 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); 330 330 theader[0].Naxis[1] = Nimage; 331 ftable[0].size = fits_matrix_size (theader);331 ftable[0].size = gfits_matrix_size (theader); 332 332 return (TRUE); 333 333 } … … 345 345 switch (format) { 346 346 case DVO_FORMAT_INTERNAL: 347 fits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage);347 gfits_convert_Image ((Image *) ftable[0].buffer, sizeof(Image), Nimage); 348 348 break; 349 349 case DVO_FORMAT_ELIXIR: 350 350 tmpImageElixir = ImageInternalToElixir ((Image *) ftable[0].buffer, Nimage); 351 351 free (ftable[0].buffer); 352 fits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage);352 gfits_table_set_ImageElixir (ftable, tmpImageElixir, Nimage); 353 353 free (tmpImageElixir); 354 354 break; … … 356 356 tmpImageLoneos = ImageInternalToLoneos ((Image *) ftable[0].buffer, Nimage); 357 357 free (ftable[0].buffer); 358 fits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage);358 gfits_table_set_ImageLoneos (ftable, tmpImageLoneos, Nimage); 359 359 free (tmpImageLoneos); 360 360 break; … … 363 363 tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) ftable[0].buffer, Nimage); 364 364 free (ftable[0].buffer); 365 fits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage);365 gfits_table_set_ImagePanstarrs (ftable, tmpImagePanstarrs, Nimage); 366 366 free (tmpImagePanstarrs); 367 367 break; … … 386 386 case DVO_FORMAT_INTERNAL: 387 387 for (i = 0; i < Nrow; i++) { 388 fits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1);388 gfits_convert_Image ((Image *) vtable[0].buffer[i], sizeof(Image), 1); 389 389 } 390 390 return (TRUE); … … 393 393 for (i = 0; i < Nrow; i++) { 394 394 tmpImageElixir = ImageInternalToElixir ((Image *) vtable[0].buffer[i], 1); 395 fits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1);395 gfits_convert_ImageElixir (tmpImageElixir, sizeof(ImageElixir), 1); 396 396 free (vtable[0].buffer[i]); 397 397 vtable[0].buffer[i] = (char *) tmpImageElixir; … … 399 399 400 400 /* convert header from old format to new format */ 401 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);402 403 fits_free_header (theader);404 fits_table_mkheader_ImageElixir (theader);405 406 fits_modify (theader, "NAXIS2", "%d", 1, Nimage);401 gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 402 403 gfits_free_header (theader); 404 gfits_table_mkheader_ImageElixir (theader); 405 406 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); 407 407 theader[0].Naxis[1] = Nimage; 408 vtable[0].size = fits_matrix_size (theader);408 vtable[0].size = gfits_matrix_size (theader); 409 409 return (TRUE); 410 410 case DVO_FORMAT_LONEOS: … … 412 412 for (i = 0; i < Nrow; i++) { 413 413 tmpImageLoneos = ImageInternalToLoneos ((Image *) vtable[0].buffer[i], 1); 414 fits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1);414 gfits_convert_ImageLoneos (tmpImageLoneos, sizeof(ImageLoneos), 1); 415 415 free (vtable[0].buffer[i]); 416 416 vtable[0].buffer[i] = (char *) tmpImageLoneos; … … 418 418 419 419 /* convert header from old format to new format */ 420 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);421 422 fits_free_header (theader);423 fits_table_mkheader_ImageLoneos (theader);424 425 fits_modify (theader, "NAXIS2", "%d", 1, Nimage);420 gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 421 422 gfits_free_header (theader); 423 gfits_table_mkheader_ImageLoneos (theader); 424 425 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); 426 426 theader[0].Naxis[1] = Nimage; 427 vtable[0].size = fits_matrix_size (theader);427 vtable[0].size = gfits_matrix_size (theader); 428 428 return (TRUE); 429 429 case DVO_FORMAT_PANSTARRS: … … 431 431 for (i = 0; i < Nrow; i++) { 432 432 tmpImagePanstarrs = ImageInternalToPanstarrs ((Image *) vtable[0].buffer[i], 1); 433 fits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1);433 gfits_convert_ImagePanstarrs (tmpImagePanstarrs, sizeof(ImagePanstarrs), 1); 434 434 free (vtable[0].buffer[i]); 435 435 vtable[0].buffer[i] = (char *) tmpImagePanstarrs; … … 437 437 438 438 /* convert header from old format to new format */ 439 fits_scan (theader, "NAXIS2", "%d", 1, &Nimage);440 fits_free_header (theader);441 fits_table_mkheader_ImagePanstarrs (theader);442 fits_modify (theader, "NAXIS2", "%d", 1, Nimage);439 gfits_scan (theader, "NAXIS2", "%d", 1, &Nimage); 440 gfits_free_header (theader); 441 gfits_table_mkheader_ImagePanstarrs (theader); 442 gfits_modify (theader, "NAXIS2", "%d", 1, Nimage); 443 443 theader[0].Naxis[1] = Nimage; 444 vtable[0].size = fits_matrix_size (theader);444 vtable[0].size = gfits_matrix_size (theader); 445 445 return (TRUE); 446 446 default: -
trunk/Ohana/src/libdvo/src/dvo_image.c
r6674 r7080 9 9 db[0].lockstate = lockstate; 10 10 db[0].timeout = timeout; 11 fits_db_init (db);11 gfits_db_init (db); 12 12 13 if (! fits_db_lock (db, filename)) {13 if (!gfits_db_lock (db, filename)) { 14 14 fprintf (stderr, "ERROR: can't lock image catalog\n"); 15 15 return (FALSE); … … 22 22 mode_t mode; 23 23 24 fits_db_close (db);24 gfits_db_close (db); 25 25 26 26 /* force permissions to 666 */ … … 63 63 case DVO_MODE_MEF: 64 64 if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_MEF)\n"); 65 status = fits_db_load (db);65 status = gfits_db_load (db); 66 66 break; 67 67 case DVO_MODE_RAW: … … 91 91 case DVO_MODE_MEF: 92 92 case DVO_MODE_SPLIT: 93 status = fits_db_save (db);93 status = gfits_db_save (db); 94 94 break; 95 95 case DVO_MODE_RAW: … … 109 109 /* adjust header */ 110 110 Nimages = 0; 111 fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);111 gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages); 112 112 Nimages += Nnew; 113 fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);113 gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages); 114 114 115 fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);116 fits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image));115 gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0); 116 gfits_vadd_rows (&db[0].vtable, (char *) new, Nnew, sizeof(Image)); 117 117 118 118 /* check that primary header and table header agree */ … … 137 137 case DVO_MODE_MEF: 138 138 case DVO_MODE_SPLIT: 139 status = fits_db_update (db);139 status = gfits_db_update (db); 140 140 break; 141 141 case DVO_MODE_RAW: -
trunk/Ohana/src/libdvo/src/dvo_image_raw.c
r6684 r7080 12 12 13 13 /* read fits header from file - return FALSE on error */ 14 if (! fits_fread_header (db[0].f, &db[0].header)) {14 if (!gfits_fread_header (db[0].f, &db[0].header)) { 15 15 fprintf (stderr, "can't read primary header\n"); 16 16 return (FALSE); … … 19 19 /* determine image table format */ 20 20 db[0].format = DVO_FORMAT_UNDEF; 21 if ( fits_scan (&db[0].header, "FORMAT", "%s", 1, format)) {21 if (gfits_scan (&db[0].header, "FORMAT", "%s", 1, format)) { 22 22 if (!strcmp (format, "INTERNAL")) db[0].format = DVO_FORMAT_INTERNAL; 23 23 if (!strcmp (format, "LONEOS")) db[0].format = DVO_FORMAT_LONEOS; … … 27 27 if (db[0].format != DVO_FORMAT_UNDEF) goto got_format; 28 28 } 29 if ( fits_scan (&db[0].header, "TELESCOP", "%s", 1, telescope)) {29 if (gfits_scan (&db[0].header, "TELESCOP", "%s", 1, telescope)) { 30 30 if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) { 31 31 db[0].format = DVO_FORMAT_LONEOS; … … 43 43 /* find number of images */ 44 44 Nimage = 0; 45 fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage);45 gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimage); 46 46 if (stat (db[0].filename, &filestatus) == -1) { 47 47 if (VERBOSE) fprintf (stderr, "ERROR: failed to get status of image catalog\n"); … … 68 68 /* create a dummy ftable, theader set for this data */ 69 69 /* (original table has NAXIS = 2, change to 0) */ 70 /* fits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */71 fits_create_matrix (&db[0].header, &db[0].matrix);70 /* gfits_modify (&db[0].header, "NAXIS", "%d", 1, 0); */ 71 gfits_create_matrix (&db[0].header, &db[0].matrix); 72 72 db[0].ftable.header = &db[0].theader; 73 73 74 if (db[0].format == DVO_FORMAT_INTERNAL) fits_table_mkheader_Image (&db[0].theader);75 if (db[0].format == DVO_FORMAT_LONEOS) fits_table_mkheader_ImageLoneos (&db[0].theader);76 if (db[0].format == DVO_FORMAT_ELIXIR) fits_table_mkheader_ImageElixir (&db[0].theader);77 if (db[0].format == DVO_FORMAT_PANSTARRS) fits_table_mkheader_ImagePanstarrs (&db[0].theader);74 if (db[0].format == DVO_FORMAT_INTERNAL) gfits_table_mkheader_Image (&db[0].theader); 75 if (db[0].format == DVO_FORMAT_LONEOS) gfits_table_mkheader_ImageLoneos (&db[0].theader); 76 if (db[0].format == DVO_FORMAT_ELIXIR) gfits_table_mkheader_ImageElixir (&db[0].theader); 77 if (db[0].format == DVO_FORMAT_PANSTARRS) gfits_table_mkheader_ImagePanstarrs (&db[0].theader); 78 78 79 79 /* read data from file */ … … 86 86 } 87 87 88 fits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage);88 gfits_modify (&db[0].theader, "NAXIS2", "%d", 1, Nimage); 89 89 db[0].theader.Naxis[1] = Nimage; 90 db[0].ftable.size = fits_matrix_size (&db[0].theader);90 db[0].ftable.size = gfits_matrix_size (&db[0].theader); 91 91 db[0].swapped = FALSE; /* table does not have internal byte-order */ 92 92 return (TRUE); … … 112 112 } 113 113 114 /** this code is identical to fits_fwrite_vtable, except without padding */114 /** this code is identical to gfits_fwrite_vtable, except without padding */ 115 115 Nrow = db[0].vtable.Nrow; 116 116 row = db[0].vtable.row; 117 fits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx);118 fits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny);117 gfits_scan (db[0].vtable.header, "NAXIS1", "%d", 1, &Nx); 118 gfits_scan (db[0].vtable.header, "NAXIS2", "%d", 1, &Ny); 119 119 120 120 /* file pointer is at beginning of desired table data */ … … 147 147 } 148 148 149 fits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx);150 fits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny);149 gfits_scan (db[0].ftable.header, "NAXIS1", "%d", 1, &Nx); 150 gfits_scan (db[0].ftable.header, "NAXIS2", "%d", 1, &Ny); 151 151 size = Nx * Ny; 152 152 Nbytes = fwrite (db[0].ftable.buffer, sizeof(char), size, db[0].f); -
trunk/Ohana/src/libdvo/src/fits_db.c
r6234 r7080 2 2 3 3 /* init the db structure */ 4 int fits_db_init (FITS_DB *db) {4 int gfits_db_init (FITS_DB *db) { 5 5 6 6 db[0].f = NULL; … … 19 19 20 20 /* create an empty db */ 21 int fits_db_create (FITS_DB *db) {22 fits_init_header (&db[0].header);21 int gfits_db_create (FITS_DB *db) { 22 gfits_init_header (&db[0].header); 23 23 db[0].header.extend = TRUE; 24 fits_create_header (&db[0].header);25 fits_create_matrix (&db[0].header, &db[0].matrix);26 fits_print (&db[0].header, "NEXTEND", "%d", 1, 1);24 gfits_create_header (&db[0].header); 25 gfits_create_matrix (&db[0].header, &db[0].matrix); 26 gfits_print (&db[0].header, "NEXTEND", "%d", 1, 1); 27 27 db[0].ftable.header = &db[0].theader; 28 28 return (TRUE); 29 29 } 30 30 31 int fits_db_lock (FITS_DB *db, char *filename) {31 int gfits_db_lock (FITS_DB *db, char *filename) { 32 32 33 33 /* database name must be set first */ … … 59 59 60 60 /* load the complete db table into memory - load first extension, do not validate EXTNAME */ 61 int fits_db_load (FITS_DB *db) {61 int gfits_db_load (FITS_DB *db) { 62 62 63 63 /* database name must be set first */ … … 68 68 69 69 /* init & load in FITS table data - return FALSE on error */ 70 if (! fits_fread_header (db[0].f, &db[0].header)) {70 if (!gfits_fread_header (db[0].f, &db[0].header)) { 71 71 fprintf (stderr, "can't read primary header\n"); 72 72 return (FALSE); 73 73 } 74 if (! fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {74 if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) { 75 75 fprintf (stderr, "can't read primary matrix"); 76 76 return (FALSE); 77 77 } 78 if (! fits_fread_header (db[0].f, &db[0].theader)) {78 if (!gfits_fread_header (db[0].f, &db[0].theader)) { 79 79 fprintf (stderr, "can't read table header"); 80 80 return (FALSE); 81 81 } 82 if (! fits_fread_ftable_data (db[0].f, &db[0].ftable)) {82 if (!gfits_fread_ftable_data (db[0].f, &db[0].ftable)) { 83 83 fprintf (stderr, "can't read table data"); 84 84 return (FALSE); … … 89 89 90 90 /* load the data from Nrows from table starting at start; load header, etc if needed */ 91 int fits_db_load_segment (FITS_DB *db, int start, int Nrows) {91 int gfits_db_load_segment (FITS_DB *db, int start, int Nrows) { 92 92 93 93 int Nskip; … … 110 110 /* load or skip header */ 111 111 if (db[0].header.buffer == NULL) { 112 if (! fits_fread_header (db[0].f, &db[0].header)) {112 if (!gfits_fread_header (db[0].f, &db[0].header)) { 113 113 fprintf (stderr, "can't read primary header\n"); 114 114 return (FALSE); … … 121 121 /* load or skip matrix */ 122 122 if (db[0].matrix.buffer == NULL) { 123 if (! fits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) {123 if (!gfits_fread_matrix (db[0].f, &db[0].matrix, &db[0].header)) { 124 124 fprintf (stderr, "can't read primary matrix"); 125 125 return (FALSE); 126 126 } 127 127 } else { 128 Nskip = fits_matrix_size (&db[0].header);128 Nskip = gfits_matrix_size (&db[0].header); 129 129 Fseek (db[0].f, Nskip, SEEK_CUR); 130 130 } … … 132 132 /* load or skip table header */ 133 133 if (db[0].theader.buffer == NULL) { 134 if (! fits_fread_header (db[0].f, &db[0].theader)) {134 if (!gfits_fread_header (db[0].f, &db[0].theader)) { 135 135 fprintf (stderr, "can't read table header"); 136 136 return (FALSE); … … 142 142 143 143 /* read table segment into vtable */ 144 if (! fits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) {144 if (!gfits_fread_vtable_range (db[0].f, &db[0].vtable, start, Nrows)) { 145 145 fprintf (stderr, "can't read table data"); 146 146 return (FALSE); … … 150 150 151 151 /* write complete db file */ 152 int fits_db_save (FITS_DB *db) {152 int gfits_db_save (FITS_DB *db) { 153 153 154 154 /* write all data to file */ … … 156 156 Fseek (db[0].f, 0, SEEK_SET); 157 157 158 if (! fits_fwrite_header (db[0].f, &db[0].header)) {158 if (!gfits_fwrite_header (db[0].f, &db[0].header)) { 159 159 fprintf (stderr, "can't write primary header"); 160 160 return (FALSE); 161 161 } 162 if (! fits_fwrite_matrix (db[0].f, &db[0].matrix)) {162 if (!gfits_fwrite_matrix (db[0].f, &db[0].matrix)) { 163 163 fprintf (stderr, "can't write primary matrix"); 164 164 return (FALSE); 165 165 } 166 if (! fits_fwrite_Theader (db[0].f, &db[0].theader)) {166 if (!gfits_fwrite_Theader (db[0].f, &db[0].theader)) { 167 167 fprintf (stderr, "can't write table header"); 168 168 return (FALSE); 169 169 } 170 if (! fits_fwrite_table (db[0].f, &db[0].ftable)) {170 if (!gfits_fwrite_table (db[0].f, &db[0].ftable)) { 171 171 fprintf (stderr, "can't write table data"); 172 172 return (FALSE); … … 176 176 177 177 /* write vtable to db file (also appends rows to the end of the table) */ 178 int fits_db_update (FITS_DB *db) {178 int gfits_db_update (FITS_DB *db) { 179 179 180 180 /* this section is not valid if we have changed the size of header, matrix, theader */ … … 185 185 186 186 /* do we revert to the old version if this fails? */ 187 if (! fits_fwrite_header (db[0].f, &db[0].header)) {187 if (!gfits_fwrite_header (db[0].f, &db[0].header)) { 188 188 fprintf (stderr, "can't update primary header"); 189 189 return (FALSE); 190 190 } 191 if (! fits_fwrite_matrix (db[0].f, &db[0].matrix)) {191 if (!gfits_fwrite_matrix (db[0].f, &db[0].matrix)) { 192 192 fprintf (stderr, "can't update primary matrix"); 193 193 return (FALSE); 194 194 } 195 if (! fits_fwrite_Theader (db[0].f, &db[0].theader)) {195 if (!gfits_fwrite_Theader (db[0].f, &db[0].theader)) { 196 196 fprintf (stderr, "can't update table header"); 197 197 return (FALSE); 198 198 } 199 if (! fits_fwrite_vtable (db[0].f, &db[0].vtable)) {199 if (!gfits_fwrite_vtable (db[0].f, &db[0].vtable)) { 200 200 fprintf (stderr, "can't update table data"); 201 201 return (FALSE); … … 205 205 206 206 /* free memory associated with db handle */ 207 int fits_db_free (FITS_DB *db) {208 fits_free_header (&db[0].header);209 fits_free_matrix (&db[0].matrix);210 fits_free_header (&db[0].theader);211 fits_free_table (&db[0].ftable);212 fits_free_vtable (&db[0].vtable);207 int gfits_db_free (FITS_DB *db) { 208 gfits_free_header (&db[0].header); 209 gfits_free_matrix (&db[0].matrix); 210 gfits_free_header (&db[0].theader); 211 gfits_free_table (&db[0].ftable); 212 gfits_free_vtable (&db[0].vtable); 213 213 if (db[0].filename != NULL) { 214 214 free (db[0].filename); … … 219 219 220 220 /* close the db files (close open file & unlock) */ 221 int fits_db_close (FITS_DB *db) {221 int gfits_db_close (FITS_DB *db) { 222 222 if (db[0].f == NULL) return (TRUE); 223 223 fclearlockfile (db[0].filename, db[0].f, db[0].lockstate, &db[0].dbstate); -
trunk/Ohana/src/libdvo/src/skyregion_gsc.c
r5945 r7080 33 33 /* load in table data */ 34 34 ftable.header = &theader; 35 if (! fits_fread_ftable (f, &ftable, "REGIONS")) {35 if (!gfits_fread_ftable (f, &ftable, "REGIONS")) { 36 36 if (VERBOSE) fprintf (stderr, "can't read GSC Region table\n"); 37 37 fclose (f); … … 39 39 } 40 40 41 fits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx);42 fits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny);43 44 fits_free_header (&theader);41 gfits_scan (ftable.header, "NAXIS1", "%d", 1, &Nx); 42 gfits_scan (ftable.header, "NAXIS2", "%d", 1, &Ny); 43 44 gfits_free_header (&theader); 45 45 46 46 /* build supporting level 0 and 1 regions */ -
trunk/Ohana/src/libdvo/src/skyregion_io.c
r6674 r7080 19 19 /* load in table data */ 20 20 ftable.header = &theader; 21 if (! fits_fread_header (f, &header)) {21 if (!gfits_fread_header (f, &header)) { 22 22 if (VERBOSE) fprintf (stderr, "can't read Sky Region header\n"); 23 23 fclose (f); 24 24 return (NULL); 25 25 } 26 if (! fits_fread_matrix (f, &matrix, &header)) {26 if (!gfits_fread_matrix (f, &matrix, &header)) { 27 27 if (VERBOSE) fprintf (stderr, "can't read Sky Region matrix\n"); 28 fits_free_header (&header);28 gfits_free_header (&header); 29 29 fclose (f); 30 30 return (NULL); 31 31 } 32 if (! fits_fread_ftable (f, &ftable, "SKY_REGION")) {32 if (!gfits_fread_ftable (f, &ftable, "SKY_REGION")) { 33 33 if (VERBOSE) fprintf (stderr, "can't read Sky Region table\n"); 34 fits_free_header (&header);35 fits_free_matrix (&matrix);34 gfits_free_header (&header); 35 gfits_free_matrix (&matrix); 36 36 fclose (f); 37 37 return (NULL); … … 39 39 40 40 ALLOCATE (skytable, SkyTable, 1); 41 skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL);41 skytable[0].regions = gfits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL); 42 42 ALLOCATE (skytable[0].filename, char *, skytable[0].Nregions); 43 43 for (i = 0; i < skytable[0].Nregions; i++) { … … 45 45 } 46 46 47 fits_free_header (&header);48 fits_free_matrix (&matrix);49 fits_free_header (&theader);47 gfits_free_header (&header); 48 gfits_free_matrix (&matrix); 49 gfits_free_header (&theader); 50 50 51 51 return (skytable); … … 62 62 /* make phu header (no matrix needed) */ 63 63 ftable.header = &theader; 64 fits_init_header (&header);64 gfits_init_header (&header); 65 65 header.extend = TRUE; 66 fits_create_header (&header);67 fits_create_matrix (&header, &matrix);66 gfits_create_header (&header); 67 gfits_create_matrix (&header, &matrix); 68 68 69 fits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions);69 gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions); 70 70 71 71 f = fopen (filename, "w"); … … 75 75 } 76 76 77 fits_fwrite_header (f, &header);78 fits_fwrite_matrix (f, &matrix);79 fits_fwrite_Theader (f, &theader);80 fits_fwrite_table (f, &ftable);77 gfits_fwrite_header (f, &header); 78 gfits_fwrite_matrix (f, &matrix); 79 gfits_fwrite_Theader (f, &theader); 80 gfits_fwrite_table (f, &ftable); 81 81 fclose (f); 82 82 … … 120 120 if (!SkyTableSave (sky, filename)) return NULL; 121 121 122 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);122 gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions); 123 123 return (sky); 124 124 … … 136 136 if (!SkyTableSave (sky, filename)) return NULL; 137 137 138 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);138 gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions); 139 139 return (sky); 140 140 } -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r6643 r7080 48 48 list[0].filename[0] = table[0].filename[No]; 49 49 list[0].Nregions = 1; 50 return (list); 51 } 52 53 /* find regions at all levels which match name */ 54 /* XXX : need to add support for selected level / populated level */ 55 SkyList *SkyListByName (SkyTable *table, char *name) { 56 57 int i, Nchar, N, NREGIONS; 58 SkyList *list; 59 SkyRegion *region; 60 61 N = 0; 62 NREGIONS = 10; 63 ALLOCATE (list, SkyList, 1); 64 ALLOCATE (list[0].regions, SkyRegion *, NREGIONS); 65 ALLOCATE (list[0].filename, char *, NREGIONS); 66 list[0].Nregions = N; 67 68 region = table[0].regions; 69 70 Nchar = strlen (name); 71 72 for (i = 0; i < table[0].Nregions; i++) { 73 if (strncasecmp (region[i].name, name, Nchar)) continue; 74 75 list[0].regions[N] = ®ion[i]; 76 list[0].filename[N] = table[0].filename[i]; 77 N++; 78 if (N >= NREGIONS) { 79 NREGIONS += 10; 80 REALLOCATE (list[0].regions, SkyRegion *, NREGIONS); 81 REALLOCATE (list[0].filename, char *, NREGIONS); 82 } 83 } 84 list[0].Nregions = N; 50 85 return (list); 51 86 }
Note:
See TracChangeset
for help on using the changeset viewer.
