Changeset 35263 for trunk/Ohana/src/libdvo
- Timestamp:
- Mar 7, 2013, 9:51:07 AM (13 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 6 edited
- 3 copied
-
. (modified) (1 prop)
-
src/libdvo/Makefile (modified) (1 diff)
-
src/libdvo/doc/image-searches.txt (copied) (copied from branches/eam_branches/ipp-20130306/Ohana/src/libdvo/doc/image-searches.txt )
-
src/libdvo/include/dvodb.h (modified) (3 diffs)
-
src/libdvo/src/ImageMetadata.c (copied) (copied from branches/eam_branches/ipp-20130306/Ohana/src/libdvo/src/ImageMetadata.c )
-
src/libdvo/src/ImageMetadataSelection.c (copied) (copied from branches/eam_branches/ipp-20130306/Ohana/src/libdvo/src/ImageMetadataSelection.c )
-
src/libdvo/src/ImageSelection.c (modified) (1 diff)
-
src/libdvo/src/dbExtractMeasures.c (modified) (6 diffs)
-
src/libdvo/src/dvosorts.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20130306/Ohana (added) merged: 35244-35246,35248-35259,35261-35262
- Property svn:mergeinfo changed
-
trunk/Ohana/src/libdvo/Makefile
r34260 r35263 98 98 $(SRC)/LoadImages.$(ARCH).o \ 99 99 $(SRC)/ImageSelection.$(ARCH).o \ 100 $(SRC)/ImageMetadataSelection.$(ARCH).o \ 101 $(SRC)/ImageMetadata.$(ARCH).o \ 100 102 $(SRC)/ImageOps.$(ARCH).o \ 101 103 $(SRC)/match_image.$(ARCH).o \ -
trunk/Ohana/src/libdvo/include/dvodb.h
r35237 r35263 298 298 } dbValue; 299 299 300 typedef struct { 301 double crval1; 302 double crval2; 303 unsigned int imageID; 304 unsigned int externID; 305 unsigned int expname; 306 float Mcal; 307 float secz; 308 float Xcenter; 309 float Ycenter; 310 } ImageMetadata; 311 300 312 Image *LoadImagesDVO PROTO((off_t *Nimage)); 301 313 void FreeImagesDVO PROTO((Image *images)); … … 346 358 int dbExtractMeasuresInitAve (void); 347 359 int dbExtractMeasuresInitMeas (void); 348 int dbExtractMeasuresInit ( void);360 int dbExtractMeasuresInit (int isRemoteClient); 349 361 350 362 int dbExtractAveragesInitTransform (CoordTransformSystem target); … … 363 375 #include "get_graphdata.h" 364 376 377 ImageMetadata *ImageMetadataLoad(char *filename, off_t *nimage); 378 int ImageMetadataSave(char *filename, Image *image, off_t Nimage); 379 380 int SetImageMetadataSelection (char *filename); 381 void FreeImageMetadataSelection (); 382 ImageMetadata *MatchImageMetadataDVO (unsigned int imageID); 383 Coords *MatchMosaicMetadata (unsigned int imageID); 384 off_t match_image_by_ID (ImageMetadata *image, off_t Nimage, unsigned int ID); 385 void sort_image_metadata (ImageMetadata *image, off_t Nimage); 386 365 387 # endif -
trunk/Ohana/src/libdvo/src/ImageSelection.c
r35260 r35263 68 68 } 69 69 70 Image *MatchImageDVO_old (unsigned int time, short int source, unsigned int imageID) { 71 72 int m = -1; 73 74 if ((imageID != 0) && (imageID < Nimage)) { 75 // imageID is in range for the array of images. If the table is still in order and 76 // no images have been deleted the index of the image we are looking for will be imageID - 1 77 // If this is the case, we have it. Otherwise we'll have to go search for it below 78 int guess = (int) imageID - 1; 79 if (image[guess].imageID == imageID) { 80 m = guess; 81 } 82 } 83 if (m == -1) { 84 m = match_image_subset (image, subset, Nsubset, time, source); 85 } 86 if (m == -1) return (NULL); 87 if (!FindMosaicForImage (image, Nimage, m)) return (NULL); 88 return (&image[m]); 89 } 90 70 91 Coords *MatchMosaic (unsigned int time, short int source) { 71 92 -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r35237 r35263 14 14 static CoordTransform *celestial_to_ecliptic = NULL; 15 15 16 static int REMOTE_CLIENT = FALSE; 17 16 18 static int haveGalacticAve = FALSE; 17 19 static double GLON_AVE = 0.0; … … 30 32 static double ELAT_MEAS = 0.0; 31 33 32 int dbExtractMeasuresInit () { 34 int dbExtractMeasuresInit (int isRemoteClient) { 35 REMOTE_CLIENT = isRemoteClient; 33 36 GetTimeFormat (&TimeReference, &TimeFormat); 34 37 return (TRUE); … … 335 338 break; 336 339 case MEAS_MEAN_AIRMASS: /* OK */ 337 { 340 if (REMOTE_CLIENT) { 341 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); 342 if (image == NULL) break; 343 value.Flt = image[0].secz; 344 } else { 338 345 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 339 346 if (image == NULL) break; 340 347 value.Flt = image[0].secz; 341 break; 342 }348 } 349 break; 343 350 case MEAS_AZ: /* OK */ 344 351 value.Flt = measure[0].az; … … 461 468 ra = average[0].R - measure[0].dR / 3600.0; 462 469 dec = average[0].D - measure[0].dD / 3600.0; 463 mosaic = MatchMosaic (measure[0].t, measure[0].photcode);470 mosaic = MatchMosaicMetadata (measure[0].imageID); 464 471 if (mosaic == NULL) break; 465 472 RD_to_XY (&x, &y, ra, dec, mosaic); … … 515 522 break; 516 523 case MEAS_EXTERN_ID: /* OK */ 517 { 518 Image *image; 519 image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 524 if (REMOTE_CLIENT) { 525 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); 520 526 if (image == NULL) break; 521 527 value.Int = image->externID; 528 } else { 529 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 530 if (image == NULL) break; 531 value.Int = image[0].externID; 522 532 } 523 533 break; 524 534 525 535 case MEAS_EXPNAME_AS_INT: 526 { 527 Image *image; 528 image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 536 if (REMOTE_CLIENT) { 537 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); 538 if (image == NULL) break; 539 value.Int = image->expname; 540 } else { 541 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 529 542 if (image == NULL) break; 530 543 // XXX very crude: if this matches oNNNNgNNNNo, then convert to an int … … 544 557 case MEAS_FLAT: /* OK */ 545 558 // flat = measure.Mcal - image.Mcal 546 { 547 Image *image; 548 image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 559 if (REMOTE_CLIENT) { 560 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); 549 561 if (image == NULL) break; 550 562 value.Flt = measure[0].Mcal - image[0].Mcal; 551 } 552 break; 553 563 } else { 564 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 565 if (image == NULL) break; 566 value.Flt = measure[0].Mcal - image[0].Mcal; 567 } 568 break; 569 570 // we have measure[0].Xccd,Yccd and image[0].NX,NY. Find the distance to the center 554 571 case MEAS_CENTER_OFFSET: /* OK */ 555 { 556 Image *image; 557 image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 558 if (image == NULL) break; 559 560 // we have measure[0].Xccd,Yccd and image[0].NX,NY. Find the distance to the center 561 572 if (REMOTE_CLIENT) { 573 ImageMetadata *image = MatchImageMetadataDVO (measure[0].imageID); 574 if (image == NULL) break; 575 float Xcenter = image[0].Xcenter; 576 float Ycenter = image[0].Ycenter; 577 float distance = hypot (measure[0].Xccd - Xcenter, measure[0].Yccd - Ycenter); 578 value.Flt = distance; 579 } else { 580 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 581 if (image == NULL) break; 562 582 // XXX we may hypotetically have images with -NX to +NX here (eg, projection center), but 563 583 // we do not get a detection from that type of image -
trunk/Ohana/src/libdvo/src/dvosorts.c
r27817 r35263 23 23 24 24 OHANA_SORT (N, COMPARE, SWAPFUNC); 25 26 # undef SWAPFUNC 27 # undef COMPARE 28 29 } 30 31 /* sort ImageMetadata array by image[i].imageID */ 32 void sort_image_metadata (ImageMetadata *image, off_t Nimage) { 33 34 # define SWAPFUNC(A,B){ ImageMetadata tmp; tmp = image[A]; image[A] = image[B]; image[B] = tmp; } 35 # define COMPARE(A,B)(image[A].imageID < image[B].imageID) 36 37 OHANA_SORT (Nimage, COMPARE, SWAPFUNC); 25 38 26 39 # undef SWAPFUNC
Note:
See TracChangeset
for help on using the changeset viewer.
