Changeset 24489
- Timestamp:
- Jun 18, 2009, 2:59:07 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSourceIO_MatchedRefs.c
r24025 r24489 49 49 pmCell *cell = NULL; 50 50 pmReadout *readout = NULL; 51 pmFPAview *view = pmFPAviewAlloc (0);52 51 53 52 // first, check if there are any matches to be written … … 57 56 psMetadata *recipe = psMetadataLookupMetadata(&status, config->recipes, "PSASTRO"); 58 57 if (!status) { 59 psError(PS_ERR_UNKNOWN, true, "missing recipe PSASTRO in config data");60 return false;58 psError(PS_ERR_UNKNOWN, true, "missing recipe PSASTRO in config data"); 59 return false; 61 60 } 62 61 … … 65 64 66 65 psArray *table = psArrayAllocEmpty (0x1000); 66 pmFPAview *view = pmFPAviewAlloc (0); 67 67 68 68 // this loop selects the matched stars for all chips … … 70 70 psTrace ("psastro", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process); 71 71 if (!chip->process || !chip->file_exists) continue; 72 73 char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME");74 72 75 while ((cell = pmFPAviewNextCell (view, fpa, 1)) != NULL) { 73 char *chipName = psMetadataLookupStr(NULL, chip->concepts, "CHIP.NAME"); 74 75 while ((cell = pmFPAviewNextCell (view, fpa, 1)) != NULL) { 76 76 psTrace ("psastro", 4, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process); 77 77 if (!cell->process || !cell->file_exists) continue; 78 78 79 // process each of the readouts80 // XXX there can only be one readout per chip, right?81 while ((readout = pmFPAviewNextReadout (view, fpa, 1)) != NULL) {82 if (! readout->data_exists) continue;79 // process each of the readouts 80 // XXX there can only be one readout per chip, right? 81 while ((readout = pmFPAviewNextReadout (view, fpa, 1)) != NULL) { 82 if (! readout->data_exists) continue; 83 83 84 // select the raw objects for this readout85 psArray *rawstars = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.RAWSTARS");86 if (rawstars == NULL) continue;84 // select the raw objects for this readout 85 psArray *rawstars = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.RAWSTARS"); 86 if (rawstars == NULL) continue; 87 87 88 // select the raw objects for this readout89 psArray *refstars = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.REFSTARS");90 if (refstars == NULL) continue;91 psTrace ("psastro", 4, "Trying %ld refstars\n", refstars->n);88 // select the raw objects for this readout 89 psArray *refstars = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.REFSTARS"); 90 if (refstars == NULL) continue; 91 psTrace ("psastro", 4, "Trying %ld refstars\n", refstars->n); 92 92 93 psArray *matches = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.MATCH");94 if (matches == NULL) continue;93 psArray *matches = psMetadataLookupPtr (NULL, readout->analysis, "PSASTRO.MATCH"); 94 if (matches == NULL) continue; 95 95 96 for (int i = 0; i < matches->n; i++) {97 pmAstromMatch *match = matches->data[i];96 for (int i = 0; i < matches->n; i++) { 97 pmAstromMatch *match = matches->data[i]; 98 98 99 pmAstromObj *raw = rawstars->data[match->raw];100 pmAstromObj *ref = refstars->data[match->ref];99 pmAstromObj *raw = rawstars->data[match->raw]; 100 pmAstromObj *ref = refstars->data[match->ref]; 101 101 102 psMetadata *row = psMetadataAlloc ();103 psMetadataAdd (row, PS_LIST_TAIL, "RA", PS_DATA_F64, "right ascension (deg, J2000)", PM_DEG_RAD*ref->sky->r);104 psMetadataAdd (row, PS_LIST_TAIL, "DEC", PS_DATA_F64, "declination (deg, J2000)", PM_DEG_RAD*ref->sky->d);105 psMetadataAdd (row, PS_LIST_TAIL, "X_CHIP", PS_DATA_F32, "x coord on chip",raw->chip->x);106 psMetadataAdd (row, PS_LIST_TAIL, "Y_CHIP", PS_DATA_F32, "y coord on chip", raw->chip->y); 107 psMetadataAdd (row, PS_LIST_TAIL, "X_FPA", PS_DATA_F32, "x coord on focal plane", raw->FP->x);108 psMetadataAdd (row, PS_LIST_TAIL, "Y_FPA", PS_DATA_F32, "y coord on focal plane", raw->FP->y);109 psMetadataAdd (row, PS_LIST_TAIL, "MAG_INST", PS_DATA_F32, "instrumental magnitude", raw->Mag);110 psMetadataAdd (row, PS_LIST_TAIL, "MAG_REF", PS_DATA_F32, "reference star magnitude", ref->Mag);111 psMetadataAdd (row, PS_LIST_TAIL, "COLOR_REF",PS_DATA_F32, "reference star color", ref->Color);112 psMetadataAdd (row, PS_LIST_TAIL, "CHIP_ID", PS_DATA_STRING, "chip identifier", chipName);113 // XXX need to add the reference color, but this needs getstar / dvo.photcodes for the reference to be refined.102 psMetadata *row = psMetadataAlloc (); 103 psMetadataAdd (row, PS_LIST_TAIL, "RA", PS_DATA_F64, "right ascension (deg, J2000)", PM_DEG_RAD*ref->sky->r); 104 psMetadataAdd (row, PS_LIST_TAIL, "DEC", PS_DATA_F64, "declination (deg, J2000)", PM_DEG_RAD*ref->sky->d); 105 psMetadataAdd (row, PS_LIST_TAIL, "X_CHIP", PS_DATA_F32, "x coord on chip", raw->chip->x); 106 psMetadataAdd (row, PS_LIST_TAIL, "Y_CHIP", PS_DATA_F32, "y coord on chip", raw->chip->y); 107 psMetadataAdd (row, PS_LIST_TAIL, "X_FPA", PS_DATA_F32, "x coord on focal plane", raw->FP->x); 108 psMetadataAdd (row, PS_LIST_TAIL, "Y_FPA", PS_DATA_F32, "y coord on focal plane", raw->FP->y); 109 psMetadataAdd (row, PS_LIST_TAIL, "MAG_INST", PS_DATA_F32, "instrumental magnitude", raw->Mag); 110 psMetadataAdd (row, PS_LIST_TAIL, "MAG_REF", PS_DATA_F32, "reference star magnitude", ref->Mag); 111 psMetadataAdd (row, PS_LIST_TAIL, "COLOR_REF",PS_DATA_F32, "reference star color", ref->Color); 112 psMetadataAdd (row, PS_LIST_TAIL, "CHIP_ID", PS_DATA_STRING, "chip identifier", chipName); 113 // XXX need to add the reference color, but this needs getstar / dvo.photcodes for the reference to be refined. 114 114 115 psArrayAdd (table, 100, row);116 psFree (row);117 }118 }119 }115 psArrayAdd (table, 100, row); 116 psFree (row); 117 } 118 } 119 } 120 120 } 121 121 psFree (view); 122 122 123 123 if (table->n == 0) { 124 psFree(table);125 return true;124 psFree(table); 125 return true; 126 126 } 127 127
Note:
See TracChangeset
for help on using the changeset viewer.
