- Timestamp:
- Jul 17, 2014, 12:32:26 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-ops-20130712/Ohana
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/libdvo/src/dvo_convert.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-ops-20130712/Ohana
- Property svn:mergeinfo deleted
-
branches/eam_branches/ipp-ops-20130712/Ohana/src/libdvo/src/dvo_convert.c
r35172 r37067 41 41 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V3", PS1_V3); 42 42 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V4", PS1_V4); 43 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5", PS1_V5); 43 44 CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF", PS1_REF); 44 45 # undef CONVERT_FORMAT … … 63 64 fprintf (stderr, "EXTNAME missing for average table\n"); 64 65 return (FALSE); 66 } 67 68 // block to convert broken tables (PS1_V4 made before the Xfix addition) 69 if (!strcmp (extname, "DVO_AVERAGE_PS1_V4") && (ftable[0].header[0].Naxis[0] == 120)) { 70 Average_PS1_V4alt *tmpAverage; 71 tmpAverage = gfits_table_get_Average_PS1_V4alt (ftable, Naverage, NULL); 72 if (!tmpAverage) { 73 fprintf (stderr, "ERROR: failed to read averages\n"); 74 exit (2); 75 } 76 average = Average_PS1_V4alt_ToInternal (tmpAverage, *Naverage); 77 free (tmpAverage); 78 *format = DVO_FORMAT_PS1_V4; 79 return (average); 65 80 } 66 81 … … 98 113 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V3", PS1_V3, PS1_V3); 99 114 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V4", PS1_V4, PS1_V4); 115 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V5", PS1_V5, PS1_V5); 100 116 CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF", PS1_REF, PS1_REF); 101 117 # undef CONVERT_FORMAT … … 133 149 FORMAT_CASE (PS1_V3, PS1_V3); 134 150 FORMAT_CASE (PS1_V4, PS1_V4); 151 FORMAT_CASE (PS1_V5, PS1_V5); 135 152 FORMAT_CASE (PS1_REF, PS1_REF); 136 153 # undef FORMAT_CASE … … 145 162 /*** Measure / FTable conversion functions ***/ 146 163 147 Measure *FtableToMeasure (FTable *ftable, off_t *Nmeasure, char *format) { 164 // FtableToMeasure needs the Average since old formats stored measure.dR,dD only 165 Measure *FtableToMeasure (FTable *ftable, Average *average, off_t *Nmeasure, char *format) { 148 166 149 167 Measure *measure; … … 156 174 } 157 175 158 # define CONVERT_FORMAT(NAME, FORMAT, TYPE) \ 159 if (!strcmp (extname, NAME)) { \ 160 Measure_##TYPE *tmpMeasure; \ 176 // block to convert broken tables (PS1_V4 made before the Xfix addition) 177 if (!strcmp (extname, "DVO_MEASURE_PS1_V4") && (ftable[0].header[0].Naxis[0] == 176)) { 178 fprintf (stderr, "reading alt PS1_V4 format\n"); 179 Measure_PS1_V4alt *tmpMeasure; 180 tmpMeasure = gfits_table_get_Measure_PS1_V4alt (ftable, Nmeasure, NULL); 181 if (!tmpMeasure) { 182 fprintf (stderr, "ERROR: failed to read measures\n"); 183 exit (2); 184 } 185 myAssert (average, "conversion to internal needs average table"); 186 measure = Measure_PS1_V4alt_ToInternal (average, tmpMeasure, *Nmeasure); 187 free (tmpMeasure); 188 *format = DVO_FORMAT_PS1_V4; 189 return (measure); 190 } 191 192 # define CONVERT_FORMAT(NAME, FORMAT, TYPE, ABS_COORDS) \ 193 if (!strcmp (extname, NAME)) { \ 194 Measure_##TYPE *tmpMeasure; \ 161 195 tmpMeasure = gfits_table_get_Measure_##TYPE (ftable, Nmeasure, NULL); \ 162 if (!tmpMeasure) { \ 163 fprintf (stderr, "ERROR: failed to read measures\n"); \ 164 exit (2); \ 165 } \ 166 measure = Measure_##TYPE##_ToInternal (tmpMeasure, *Nmeasure); \ 167 free (tmpMeasure); \ 168 *format = DVO_FORMAT_##FORMAT; \ 196 if (!tmpMeasure) { \ 197 fprintf (stderr, "ERROR: failed to read measures\n"); \ 198 exit (2); \ 199 } \ 200 myAssert (ABS_COORDS || average, "conversion to internal needs average table"); \ 201 measure = Measure_##TYPE##_ToInternal (average, tmpMeasure, *Nmeasure); \ 202 free (tmpMeasure); \ 203 *format = DVO_FORMAT_##FORMAT; \ 169 204 return (measure); } 170 205 … … 179 214 } 180 215 181 CONVERT_FORMAT ("DVO_MEASURE_ELIXIR", ELIXIR, Elixir); 182 CONVERT_FORMAT ("DVO_MEASURE_LONEOS", LONEOS, Loneos); 183 CONVERT_FORMAT ("DVO_MEASURE_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0); 184 CONVERT_FORMAT ("DVO_MEASURE_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1); 185 CONVERT_FORMAT ("DVO_MEASURE_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1); 186 CONVERT_FORMAT ("DVO_MEASURE_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2); 187 CONVERT_FORMAT ("DVO_MEASURE_PS1_V1", PS1_V1, PS1_V1); 188 CONVERT_FORMAT ("DVO_MEASURE_PS1_V2", PS1_V2, PS1_V2); 189 CONVERT_FORMAT ("DVO_MEASURE_PS1_V3", PS1_V3, PS1_V3); 190 CONVERT_FORMAT ("DVO_MEASURE_PS1_V4", PS1_V4, PS1_V4); 191 CONVERT_FORMAT ("DVO_MEASURE_PS1_REF", PS1_REF, PS1_REF); 216 CONVERT_FORMAT ("DVO_MEASURE_ELIXIR", ELIXIR, Elixir, FALSE); 217 CONVERT_FORMAT ("DVO_MEASURE_LONEOS", LONEOS, Loneos, FALSE); 218 CONVERT_FORMAT ("DVO_MEASURE_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0, FALSE); 219 CONVERT_FORMAT ("DVO_MEASURE_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1, FALSE); 220 CONVERT_FORMAT ("DVO_MEASURE_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1, FALSE); 221 CONVERT_FORMAT ("DVO_MEASURE_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2, FALSE); 222 CONVERT_FORMAT ("DVO_MEASURE_PS1_V1", PS1_V1, PS1_V1, FALSE); 223 CONVERT_FORMAT ("DVO_MEASURE_PS1_V2", PS1_V2, PS1_V2, FALSE); 224 CONVERT_FORMAT ("DVO_MEASURE_PS1_V3", PS1_V3, PS1_V3, FALSE); 225 CONVERT_FORMAT ("DVO_MEASURE_PS1_V4", PS1_V4, PS1_V4, FALSE); 226 CONVERT_FORMAT ("DVO_MEASURE_PS1_V5", PS1_V5, PS1_V5, TRUE); 227 CONVERT_FORMAT ("DVO_MEASURE_PS1_REF", PS1_REF, PS1_REF, FALSE); 192 228 # undef CONVERT_FORMAT 193 229 … … 198 234 } 199 235 200 int MeasureToFtable (FTable *ftable, Measure *measure, off_t Nmeasure, char format) { 201 202 # define FORMAT_CASE(FORMAT, TYPE) \ 236 // MeasureToFtable needs the Average since old formats stored measure.dR,dD only 237 int MeasureToFtable (FTable *ftable, Average *average, Measure *measure, off_t Nmeasure, char format) { 238 239 # define FORMAT_CASE(FORMAT, TYPE, ABS_COORDS) \ 203 240 case DVO_FORMAT_##FORMAT: { \ 204 241 Measure_##TYPE *tmpMeasure; \ 205 tmpMeasure = MeasureInternalTo_##TYPE (measure, Nmeasure); \ 242 myAssert (ABS_COORDS || average, "conversion to internal needs average table"); \ 243 tmpMeasure = MeasureInternalTo_##TYPE (average, measure, Nmeasure); \ 206 244 gfits_table_set_Measure_##TYPE (ftable, tmpMeasure, Nmeasure); \ 207 245 free (tmpMeasure); \ … … 214 252 break; } 215 253 216 FORMAT_CASE (ELIXIR, Elixir); 217 FORMAT_CASE (LONEOS, Loneos); 218 FORMAT_CASE (PANSTARRS_DEV_0, Panstarrs_DEV_0); 219 FORMAT_CASE (PANSTARRS_DEV_1, Panstarrs_DEV_1); 220 FORMAT_CASE (PS1_DEV_1, PS1_DEV_1); 221 FORMAT_CASE (PS1_DEV_2, PS1_DEV_2); 222 FORMAT_CASE (PS1_V1, PS1_V1); 223 FORMAT_CASE (PS1_V2, PS1_V2); 224 FORMAT_CASE (PS1_V3, PS1_V3); 225 FORMAT_CASE (PS1_V4, PS1_V4); 226 FORMAT_CASE (PS1_REF, PS1_REF); 254 FORMAT_CASE (ELIXIR, Elixir, FALSE); 255 FORMAT_CASE (LONEOS, Loneos, FALSE); 256 FORMAT_CASE (PANSTARRS_DEV_0, Panstarrs_DEV_0, FALSE); 257 FORMAT_CASE (PANSTARRS_DEV_1, Panstarrs_DEV_1, FALSE); 258 FORMAT_CASE (PS1_DEV_1, PS1_DEV_1, FALSE); 259 FORMAT_CASE (PS1_DEV_2, PS1_DEV_2, FALSE); 260 FORMAT_CASE (PS1_V1, PS1_V1, FALSE); 261 FORMAT_CASE (PS1_V2, PS1_V2, FALSE); 262 FORMAT_CASE (PS1_V3, PS1_V3, FALSE); 263 FORMAT_CASE (PS1_V4, PS1_V4, FALSE); 264 FORMAT_CASE (PS1_V5, PS1_V5, TRUE); 265 FORMAT_CASE (PS1_REF, PS1_REF, FALSE); 227 266 # undef FORMAT_CASE 228 267 … … 280 319 CONVERT_FORMAT ("DVO_SECFILT_PS1_V3", PS1_V3, PS1_V3); 281 320 CONVERT_FORMAT ("DVO_SECFILT_PS1_V4", PS1_V4, PS1_V4); 321 CONVERT_FORMAT ("DVO_SECFILT_PS1_V5", PS1_V5, PS1_V5); 282 322 CONVERT_FORMAT ("DVO_SECFILT_PS1_REF", PS1_REF, PS1_REF); 283 323 # undef CONVERT_FORMAT … … 315 355 FORMAT_CASE (PS1_V3, PS1_V3); 316 356 FORMAT_CASE (PS1_V4, PS1_V4); 357 FORMAT_CASE (PS1_V5, PS1_V5); 317 358 FORMAT_CASE (PS1_REF, PS1_REF); 318 359 # undef FORMAT_CASE … … 320 361 default: 321 362 fprintf (stderr, "table format unknown (secfilt)\n"); 363 return (FALSE); 364 } 365 return (TRUE); 366 } 367 368 /*** Lensing / FTable conversion functions ***/ 369 370 Lensing *FtableToLensing (FTable *ftable, off_t *Nlensing, char *format) { 371 372 Lensing *lensing; 373 char extname[80]; 374 375 /* convert to the internal format */ 376 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 377 fprintf (stderr, "EXTNAME missing for lensing table\n"); 378 return (FALSE); 379 } 380 381 # define CONVERT_FORMAT(NAME, FORMAT, TYPE) \ 382 if (!strcmp (extname, NAME)) { \ 383 Lensing_##TYPE *tmpLensing; \ 384 tmpLensing = gfits_table_get_Lensing_##TYPE (ftable, Nlensing, NULL); \ 385 if (!tmpLensing) { \ 386 fprintf (stderr, "ERROR: failed to read lensings\n"); \ 387 exit (2); \ 388 } \ 389 lensing = Lensing_##TYPE##_ToInternal (tmpLensing, *Nlensing); \ 390 free (tmpLensing); \ 391 *format = DVO_FORMAT_##FORMAT; \ 392 return (lensing); } 393 394 if (!strcmp (extname, "DVO_LENSING")) { 395 lensing = gfits_table_get_Lensing (ftable, Nlensing, NULL); 396 if (!lensing) { 397 fprintf (stderr, "ERROR: failed to read lensings\n"); 398 exit (2); 399 } 400 *format = DVO_FORMAT_INTERNAL; 401 return (lensing); 402 } 403 404 // CONVERT_FORMAT ("DVO_LENSING_PS1_REF", PS1_REF, PS1_REF); 405 // CONVERT_FORMAT ("DVO_LENSING_ELIXIR", ELIXIR, Elixir); 406 // CONVERT_FORMAT ("DVO_LENSING_LONEOS", LONEOS, Loneos); 407 // CONVERT_FORMAT ("DVO_LENSING_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0); 408 // CONVERT_FORMAT ("DVO_LENSING_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1); 409 // CONVERT_FORMAT ("DVO_LENSING_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1); 410 // CONVERT_FORMAT ("DVO_LENSING_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2); 411 // CONVERT_FORMAT ("DVO_LENSING_PS1_V1", PS1_V1, PS1_V1); 412 // CONVERT_FORMAT ("DVO_LENSING_PS1_V2", PS1_V2, PS1_V2); 413 // CONVERT_FORMAT ("DVO_LENSING_PS1_V3", PS1_V3, PS1_V3); 414 // CONVERT_FORMAT ("DVO_LENSING_PS1_V4", PS1_V4, PS1_V4); 415 CONVERT_FORMAT ("DVO_LENSING_PS1_V5", PS1_V5, PS1_V5); 416 # undef CONVERT_FORMAT 417 418 fprintf (stderr, "table format unknown: %s\n", extname); 419 420 *Nlensing = 0; 421 return (NULL); 422 } 423 424 // LensingToFtable needs the Average since old formats stored lensing.dR,dD only 425 int LensingToFtable (FTable *ftable, Lensing *lensing, off_t Nlensing, char format) { 426 427 # define FORMAT_CASE(FORMAT, TYPE) \ 428 case DVO_FORMAT_##FORMAT: { \ 429 Lensing_##TYPE *tmpLensing; \ 430 tmpLensing = LensingInternalTo_##TYPE (lensing, Nlensing); \ 431 gfits_table_set_Lensing_##TYPE (ftable, tmpLensing, Nlensing); \ 432 free (tmpLensing); \ 433 break; } 434 435 /* convert from the internal format */ 436 switch (format) { 437 case DVO_FORMAT_INTERNAL: { 438 gfits_table_set_Lensing (ftable, lensing, Nlensing); 439 break; } 440 441 // FORMAT_CASE (PS1_REF, PS1_REF); 442 // FORMAT_CASE (ELIXIR, Elixir); 443 // FORMAT_CASE (LONEOS, Loneos); 444 // FORMAT_CASE (PANSTARRS_DEV_0, Panstarrs_DEV_0); 445 // FORMAT_CASE (PANSTARRS_DEV_1, Panstarrs_DEV_1); 446 // FORMAT_CASE (PS1_DEV_1, PS1_DEV_1); 447 // FORMAT_CASE (PS1_DEV_2, PS1_DEV_2); 448 // FORMAT_CASE (PS1_V1, PS1_V1); 449 // FORMAT_CASE (PS1_V2, PS1_V2); 450 // FORMAT_CASE (PS1_V3, PS1_V3); 451 // FORMAT_CASE (PS1_V4, PS1_V4); 452 FORMAT_CASE (PS1_V5, PS1_V5); 453 # undef FORMAT_CASE 454 455 default: 456 fprintf (stderr, "table format unknown (lensing)\n"); 457 return (FALSE); 458 } 459 return (TRUE); 460 } 461 462 /*** Lensobj / FTable conversion functions ***/ 463 464 Lensobj *FtableToLensobj (FTable *ftable, off_t *Nlensobj, char *format) { 465 466 Lensobj *lensobj; 467 char extname[80]; 468 469 /* convert to the internal format */ 470 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 471 fprintf (stderr, "EXTNAME missing for lensobj table\n"); 472 return (FALSE); 473 } 474 475 # define CONVERT_FORMAT(NAME, FORMAT, TYPE) \ 476 if (!strcmp (extname, NAME)) { \ 477 Lensobj_##TYPE *tmpLensobj; \ 478 tmpLensobj = gfits_table_get_Lensobj_##TYPE (ftable, Nlensobj, NULL); \ 479 if (!tmpLensobj) { \ 480 fprintf (stderr, "ERROR: failed to read lensobjs\n"); \ 481 exit (2); \ 482 } \ 483 lensobj = Lensobj_##TYPE##_ToInternal (tmpLensobj, *Nlensobj); \ 484 free (tmpLensobj); \ 485 *format = DVO_FORMAT_##FORMAT; \ 486 return (lensobj); } 487 488 if (!strcmp (extname, "DVO_LENSOBJ")) { 489 lensobj = gfits_table_get_Lensobj (ftable, Nlensobj, NULL); 490 if (!lensobj) { 491 fprintf (stderr, "ERROR: failed to read lensobjs\n"); 492 exit (2); 493 } 494 *format = DVO_FORMAT_INTERNAL; 495 return (lensobj); 496 } 497 498 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_REF", PS1_REF, PS1_REF); 499 // CONVERT_FORMAT ("DVO_LENSOBJ_ELIXIR", ELIXIR, Elixir); 500 // CONVERT_FORMAT ("DVO_LENSOBJ_LONEOS", LONEOS, Loneos); 501 // CONVERT_FORMAT ("DVO_LENSOBJ_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0); 502 // CONVERT_FORMAT ("DVO_LENSOBJ_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1); 503 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1); 504 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2); 505 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_V1", PS1_V1, PS1_V1); 506 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_V2", PS1_V2, PS1_V2); 507 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_V3", PS1_V3, PS1_V3); 508 // CONVERT_FORMAT ("DVO_LENSOBJ_PS1_V4", PS1_V4, PS1_V4); 509 CONVERT_FORMAT ("DVO_LENSOBJ_PS1_V5", PS1_V5, PS1_V5); 510 # undef CONVERT_FORMAT 511 512 fprintf (stderr, "table format unknown: %s\n", extname); 513 514 *Nlensobj = 0; 515 return (NULL); 516 } 517 518 // LensobjToFtable needs the Average since old formats stored lensobj.dR,dD only 519 int LensobjToFtable (FTable *ftable, Lensobj *lensobj, off_t Nlensobj, char format) { 520 521 # define FORMAT_CASE(FORMAT, TYPE) \ 522 case DVO_FORMAT_##FORMAT: { \ 523 Lensobj_##TYPE *tmpLensobj; \ 524 tmpLensobj = LensobjInternalTo_##TYPE (lensobj, Nlensobj); \ 525 gfits_table_set_Lensobj_##TYPE (ftable, tmpLensobj, Nlensobj); \ 526 free (tmpLensobj); \ 527 break; } 528 529 /* convert from the internal format */ 530 switch (format) { 531 case DVO_FORMAT_INTERNAL: { 532 gfits_table_set_Lensobj (ftable, lensobj, Nlensobj); 533 break; } 534 535 // FORMAT_CASE (PS1_REF, PS1_REF); 536 // FORMAT_CASE (ELIXIR, Elixir); 537 // FORMAT_CASE (LONEOS, Loneos); 538 // FORMAT_CASE (PANSTARRS_DEV_0, Panstarrs_DEV_0); 539 // FORMAT_CASE (PANSTARRS_DEV_1, Panstarrs_DEV_1); 540 // FORMAT_CASE (PS1_DEV_1, PS1_DEV_1); 541 // FORMAT_CASE (PS1_DEV_2, PS1_DEV_2); 542 // FORMAT_CASE (PS1_V1, PS1_V1); 543 // FORMAT_CASE (PS1_V2, PS1_V2); 544 // FORMAT_CASE (PS1_V3, PS1_V3); 545 // FORMAT_CASE (PS1_V4, PS1_V4); 546 FORMAT_CASE (PS1_V5, PS1_V5); 547 # undef FORMAT_CASE 548 549 default: 550 fprintf (stderr, "table format unknown (lensobj)\n"); 322 551 return (FALSE); 323 552 } … … 399 628 CONVERT_FORMAT ("DVO_IMAGE_PS1_V3", PS1_V3, PS1_V3); 400 629 CONVERT_FORMAT ("DVO_IMAGE_PS1_V4", PS1_V4, PS1_V4); 630 CONVERT_FORMAT ("DVO_IMAGE_PS1_V5", PS1_V5, PS1_V5); 401 631 CONVERT_FORMAT ("DVO_IMAGE_PS1_REF", PS1_REF, PS1_REF); 402 632 … … 438 668 FORMAT_CASE (PS1_V3, PS1_V3); 439 669 FORMAT_CASE (PS1_V4, PS1_V4); 670 FORMAT_CASE (PS1_V5, PS1_V5); 440 671 FORMAT_CASE (PS1_REF, PS1_REF); 441 672 … … 493 724 FORMAT_CASE (PS1_V3, PS1_V3); 494 725 FORMAT_CASE (PS1_V4, PS1_V4); 726 FORMAT_CASE (PS1_V5, PS1_V5); 495 727 FORMAT_CASE (PS1_REF, PS1_REF); 496 728
Note:
See TracChangeset
for help on using the changeset viewer.
