Changeset 4993
- Timestamp:
- Sep 11, 2005, 1:25:42 PM (21 years ago)
- Location:
- trunk/Ohana/src/libohana
- Files:
-
- 3 edited
-
include/dvo.h (modified) (1 diff)
-
src/dvo_convert.c (modified) (1 diff)
-
src/dvo_image.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libohana/include/dvo.h
r4865 r4993 9 9 10 10 /*** named data values (convert all to enums?) ***/ 11 12 /* DVO table modes */ 13 enum {DVO_MODE_RAW, DVO_MODE_MEF, DVO_MODE_SPLIT, DVO_MODE_MYSQL} DVOTableMode; 14 15 /* DVO table formats */ 16 enum {DVO_FORMAT_UNDEF, DVO_FORMAT_ELIXIR, DVO_FORMAT_LONEOS, DVO_FORMAT_PANSTARRS} DVOTableFormat; 11 17 12 18 /* image data modes in RegImage */ -
trunk/Ohana/src/libohana/src/dvo_convert.c
r4864 r4993 391 391 return (FALSE); 392 392 } 393 394 /*** Image Conversions ***/ 395 396 Image *FtableToImage (FTable *ftable, int *format) { 397 398 int Nimage; 399 Image *image; 400 char extname[80]; 401 402 /* extname may be set from outside if the source is RAW not MEF */ 403 if (*format == DVO_FORMAT_ELIXIR) { 404 Imagelixir *tmpimage; 405 tmpimage = fits_table_get_AverageElixir (ftable, &Nimage, NULL); 406 image = ImageElixirToInternal (tmpimage, Nimage); 407 free (tmpimage); 408 return (image); 409 } 410 411 /* convert to the internal format */ 412 if (!fits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 413 fprintf (stderr, "EXTNAME missing for average table\n"); 414 return (NULL); 415 } 416 if (!strcmp (extname, "DVO_IMAGE")) { 417 image = fits_table_get_Image (ftable, Nimage, NULL); 418 *format = DVO_FORMAT_INTERNAL; 419 return (image); 420 } 421 if (!strcmp (extname, "DVO_IMAGE_ELIXIR")) { 422 ImageElixir *tmpimage; 423 tmpimage = fits_table_get_ImageElixir (ftable, Nimage, NULL); 424 image = ImageElixirToInternal (tmpimage, Nimage); 425 free (tmpimage); 426 *format = DVO_FORMAT_ELIXIR; 427 return (image); 428 } 429 if (!strcmp (extname, "DVO_IMAGE_LONEOS")) { 430 ImageLoneos *tmpimage; 431 tmpimage = fits_table_get_ImageLoneos (ftable, Nimage, NULL); 432 image = ImageLoneosToInternal (tmpimage, Nimage); 433 free (tmpimage); 434 *format = DVO_FORMAT_LONEOS; 435 return (image); 436 } 437 if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) { 438 ImagePanstarrs *tmpimage; 439 tmpimage = fits_table_get_ImagePanstarrs (ftable, Nimage, NULL); 440 image = ImagePanstarrsToInternal (tmpimage, Nimage); 441 free (tmpimage); 442 *format = DVO_FORMAT_PANSTARRS; 443 return (image); 444 } 445 446 fprintf (stderr, "table format unknown: %s\n", extname); 447 448 *Nimage = 0; 449 return (NULL); 450 } 451 452 int ImageToFtable (FTable *ftable, Image *image, int Nimage, int format) { 453 454 /* convert from the internal format */ 455 if (!strcmp (extname, "DVO_IMAGE")) { 456 fits_table_set_Image (ftable, image, Nimage); 457 return (TRUE); 458 } 459 if (!strcmp (extname, "DVO_IMAGE_ELIXIR")) { 460 ImageElixir *tmpimage; 461 tmpimage = ImageInternalToElixir (image, Nimage); 462 fits_table_set_ImageElixir (ftable, tmpimage, Nimage); 463 free (tmpimage); 464 return (TRUE); 465 } 466 if (!strcmp (extname, "DVO_IMAGE_LONEOS")) { 467 ImageLoneos *tmpimage; 468 tmpimage = ImageInternalToLoneos (image, Nimage); 469 fits_table_set_ImageLoneos (ftable, tmpimage, Nimage); 470 free (tmpimage); 471 return (TRUE); 472 } 473 if (!strcmp (extname, "DVO_IMAGE_PANSTARRS")) { 474 ImagePanstarrs *tmpimage; 475 tmpimage = ImageInternalToPanstarrs (image, Nimage); 476 fits_table_set_ImagePanstarrs (ftable, tmpimage, Nimage); 477 free (tmpimage); 478 return (TRUE); 479 } 480 fprintf (stderr, "table format unknown: %s\n", extname); 481 return (FALSE); 482 } 483 -
trunk/Ohana/src/libohana/src/dvo_image.c
r4864 r4993 2 2 # include <dvo.h> 3 3 4 enum {FITS, RAW};5 6 4 /* determine db mode (raw/fits) and read the complete table */ 7 5 int dvo_image_load (FITS_DB *db, int VERBOSE, int FORCE_READ) { 8 6 9 int Naxis, Nr ow, Nread, mode, status;7 int Naxis, Nread, status; 10 8 char buffer[241]; 11 9 … … 14 12 if (db[0].f == NULL) return (FALSE); 15 13 16 fseek (db[0].f, 0, SEEK_SET);17 18 14 /* test for NAXIS == 2 in line 3 */ 19 15 bzero (buffer, 241); 16 fseek (db[0].f, 0, SEEK_SET); 20 17 Nread = fread (buffer, 1, 240, db[0].f); 21 18 if (Nread != 240) { … … 30 27 fseek (db[0].f, 0, SEEK_SET); 31 28 32 mode = FITS; 33 if (Naxis == 2) mode = RAW; 34 if (VERBOSE) { 35 switch (mode) { 36 case FITS: 37 fprintf (stderr, "reading images (mode FITS)\n"); 38 break; 39 case RAW: 40 fprintf (stderr, "reading images (mode RAW)\n"); 41 break; 42 default: 43 fprintf (stderr, "error getting image mode\n"); 44 exit (2); 45 } 46 } 47 48 /* read data in appropriate mode */ 49 if (mode == FITS) { 50 status = fits_db_load (db); 51 } else { 52 status = dvo_image_load_raw (db, VERBOSE, FORCE_READ); 53 } 54 /* byteswap table data */ 55 Nrow = db[0].theader.Naxis[1]; 56 fits_convert_Image ((Image *) db[0].ftable.buffer, sizeof(Image), Nrow); 57 db[0].swapped = TRUE; 58 29 /* image table can only be RAW or MEF */ 30 db[0].mode = DVO_MODE_MEF; 31 if (Naxis == 2) db[0].mode = DVO_MODE_RAW; 32 switch (db[0].mode) { 33 case DVO_MODE_MEF: 34 if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_MEF)\n"); 35 status = fits_db_load (db); 36 db[0].format = UNDEF; 37 break; 38 case DVO_MODE_RAW: 39 if (VERBOSE) fprintf (stderr, "reading images (mode DVO_MODE_RAW)\n"); 40 status = dvo_image_load_raw (db, VERBOSE, FORCE_READ); 41 db[0].format = ELIXIR; 42 break; 43 default: 44 fprintf (stderr, "error getting image mode\n"); 45 exit (2); 46 } 47 /* convert from external to internal format */ 48 /**** this is confused: where does the converted image table go? 49 back in db[0].ftable.buffer? 50 keep the db[0].ftable.header? 51 sync with the correct format?? 52 dvo_image_load_raw creates a new theader for Image 53 - should be ImageElixir 54 FtableToImage should create a new theader for Image 55 ImageToFtable should create a new theader for ImageFOO 56 ****/ 57 image = FtableToImage (db[0].ftable, &db[0].format); 58 db[0].swapped = FALSE; 59 59 return (TRUE); 60 60 } … … 68 68 if (db[0].header.Naxes == 2) mode = RAW; 69 69 70 /* convert from external to internal format */ 71 FtableToImage (db[0].ftable, db[0].format); 72 db[0].swapped = FALSE; 73 70 74 /* byteswap table data */ 71 75 Nrow = db[0].theader.Naxis[1];
Note:
See TracChangeset
for help on using the changeset viewer.
