Changeset 39489
- Timestamp:
- Mar 28, 2016, 11:03:49 AM (10 years ago)
- Location:
- trunk/Ohana/src/dvolens
- Files:
-
- 1 added
- 6 edited
-
Makefile (modified) (2 diffs)
-
include/dvolens.h (modified) (3 diffs)
-
src/WarpImageMaps.c (modified) (3 diffs)
-
src/myIndex.c (modified) (1 diff)
-
src/mySequence.c (added)
-
src/select_images.c (modified) (1 diff)
-
src/update_objects_catalog.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/dvolens/Makefile
r39487 r39489 33 33 $(SRC)/initialize.$(ARCH).o \ 34 34 $(SRC)/myIndex.$(ARCH).o \ 35 $(SRC)/mySequence.$(ARCH).o \ 35 36 $(SRC)/update_objects.$(ARCH).o \ 36 37 $(SRC)/update_objects_catalog.$(ARCH).o \ … … 52 53 $(SRC)/initialize.$(ARCH).o \ 53 54 $(SRC)/myIndex.$(ARCH).o \ 55 $(SRC)/mySequence.$(ARCH).o \ 54 56 $(SRC)/update_objects.$(ARCH).o \ 55 57 $(SRC)/update_objects_catalog.$(ARCH).o \ -
trunk/Ohana/src/dvolens/include/dvolens.h
r39487 r39489 16 16 int NINDEX; 17 17 } myIndexType; 18 19 // a structure to define a sequence lookup 20 typedef struct { 21 int minID; 22 int maxID; 23 int *value; 24 int *sequence; 25 int Nsequence; 26 int NSEQUENCE; 27 } mySequenceType; 18 28 19 29 typedef enum { … … 87 97 88 98 int FindWarpGroups (void); 89 int RecoverLensingIndex (Average *average, my IndexType *measureIndex, Lensing *lensing);99 int RecoverLensingIndex (Average *average, mySequenceType *measureSeq, Lensing *lensing); 90 100 void FreeWarpGroups (void); 91 101 … … 99 109 off_t getImageByID (off_t ID); 100 110 111 mySequenceType *mySequenceAlloc (); 112 int mySequenceFree (mySequenceType *mySequence); 113 int mySequenceSetSize (mySequenceType *mySequence, int Nmax); 114 int mySequenceSetValue (mySequenceType *mySequence, int value, int entry); 115 int mySequenceSort (mySequenceType *mySequence); 116 int mySequenceGetEntry (mySequenceType *mySequence, int value); -
trunk/Ohana/src/dvolens/src/WarpImageMaps.c
r39488 r39489 204 204 } 205 205 206 int RecoverLensingIndex (Average *average, my IndexType *measureIndex, Lensing *lensing) {206 int RecoverLensingIndex (Average *average, mySequenceType *measureSeq, Lensing *lensing) { 207 207 208 208 // Although the imageID is wrong (no matching measures), the image should be one of the … … 240 240 int N = warpgroup[seq].warps[i]; 241 241 242 int Mj = my IndexGetEntry (measureIndex, image[N].imageID);242 int Mj = mySequenceGetEntry (measureSeq, image[N].imageID); 243 243 if (Mj < 0) continue; 244 244 … … 258 258 for (int i = 0; i < Nwarpgroup; i++) { 259 259 free (warpgroup[i].warps); 260 //free (warpgroup[i].Rmin);261 //free (warpgroup[i].Rmax);262 //free (warpgroup[i].Dmin);263 //free (warpgroup[i].Dmax);264 //free (warpgroup[i].onBoundary);260 free (warpgroup[i].Rmin); 261 free (warpgroup[i].Rmax); 262 free (warpgroup[i].Dmin); 263 free (warpgroup[i].Dmax); 264 free (warpgroup[i].onBoundary); 265 265 } 266 266 -
trunk/Ohana/src/dvolens/src/myIndex.c
r39488 r39489 18 18 int myIndexFree (myIndexType *myIndex) { 19 19 20 if (!myIndex) return TRUE; 20 21 free (myIndex->index); 21 22 free (myIndex); -
trunk/Ohana/src/dvolens/src/select_images.c
r39488 r39489 44 44 45 45 // I need to ensure we get the images from any skycells in a warp 46 double dD = 2.0;46 double dD = 4.0; 47 47 double dR = dD / cos(RAD_DEG*DminSkyRegion); 48 48 RminSkyRegion -= dR; -
trunk/Ohana/src/dvolens/src/update_objects_catalog.c
r39488 r39489 35 35 int Nlensobj = 0; 36 36 37 my IndexType *measureIndex = myIndexAlloc();37 mySequenceType *measureSeq = mySequenceAlloc(); 38 38 39 39 int Nfixed = 0; … … 41 41 42 42 INITTIME; 43 44 43 double time1 = 0.0; 45 44 double time2 = 0.0; … … 49 48 for (i = 0; i < catalog->Naverage; i++) { 50 49 51 if (i % 1000 == 0) {52 MARKTIME ("done with %d aves: %f sec (%f %f %f %f)\n", (int) i, dtime, time1, time2, time3, time4);53 time1 = 0.0;54 time2 = 0.0;55 time3 = 0.0;56 time4 = 0.0;57 gettimeofday (&startTimer, NULL);58 }59 60 50 Average *average = &catalog->average[i]; 61 51 if (average->Nlensing == 0) continue; … … 82 72 // I could make an index measureSeq[imageID-imageIDmin] 83 73 84 myIndexInit (measureIndex); 74 TIMESTAMP (time1); 75 76 mySequenceSetSize (measureSeq, average->Nmeasure); 85 77 86 78 // generate an index for these measure entries (based on Mj and imageID) 87 79 for (Mj = 0; Mj < average->Nmeasure; Mj++) { 88 my IndexUpdateLimits (measureIndex, catalog->measure[Moff + Mj].imageID);80 mySequenceSetValue (measureSeq, catalog->measure[Moff + Mj].imageID, Mj); 89 81 } 90 82 91 TIMESTAMP (time1);92 myIndexSetRange (measureIndex); 83 mySequenceSort (measureSeq); 84 93 85 TIMESTAMP (time2); 94 95 for (Mj = 0; Mj < average->Nmeasure; Mj++) {96 // if there are duplicates (multiple measures from the same image),97 // myIndexSetEntry will only select one98 myIndexSetEntry (measureIndex, catalog->measure[Moff + Mj].imageID, Mj);99 }100 86 101 87 // loop over the lensing measurements. for each one, I need to find the corresponding measurement (make an index in lensing?) … … 112 98 // XX ALT myAssert (measure->imageID == lensing->imageID, "oops, deux"); 113 99 114 Mj = my IndexGetEntry (measureIndex, lensing->imageID);100 Mj = mySequenceGetEntry (measureSeq, lensing->imageID); 115 101 116 102 // if we are unable to find a match in the measure table, we may have the wrong … … 121 107 if (Mj < 0) { 122 108 if (REPAIR_LENSING_IDS) { 123 Mj = RecoverLensingIndex (average, measure Index, lensing);109 Mj = RecoverLensingIndex (average, measureSeq, lensing); 124 110 if (Mj == -1) { 111 fprintf (stderr, "failed %f %f : %d\n", average->R, average->D, lensing->imageID); 125 112 Nfailed ++; 126 113 continue; … … 331 318 free (N7); 332 319 333 myIndexFree (measureIndex); 320 mySequenceFree (measureSeq); 321 322 fprintf (stderr, "done with %d aves (%f %f %f %f)\n", (int) catalog->Naverage, time1, time2, time3, time4); 334 323 335 324 fprintf (stderr, "corrected %d lensing IDs, failed on %d lensing IDs\n", Nfixed, Nfailed);
Note:
See TracChangeset
for help on using the changeset viewer.
