Index: trunk/ppTranslate/src/ppMopsDetections.c
===================================================================
--- trunk/ppTranslate/src/ppMopsDetections.c	(revision 30660)
+++ trunk/ppTranslate/src/ppMopsDetections.c	(revision 32406)
@@ -8,7 +8,9 @@
 static void mopsDetectionsFree(ppMopsDetections *det)
 {
+    psFree(det->component);
     psFree(det->raBoresight);
     psFree(det->decBoresight);
     psFree(det->filter);
+    psFree(det->table);
     psFree(det->x);
     psFree(det->y);
@@ -17,62 +19,13 @@
     psFree(det->raErr);
     psFree(det->decErr);
-    psFree(det->mag);
-    psFree(det->magErr);
-    psFree(det->chi2);
-    psFree(det->dof);
-    psFree(det->cr);
-    psFree(det->extended);
-    psFree(det->psfMajor);
-    psFree(det->psfMinor);
-    psFree(det->psfTheta);
-    psFree(det->quality);
-    psFree(det->numPix);
-    psFree(det->xxMoment);
-    psFree(det->xyMoment);
-    psFree(det->yyMoment);
-    psFree(det->flags);
-    psFree(det->diffSkyfileId);
-    psFree(det->naxis1);
-    psFree(det->naxis2);
     psFree(det->mask);
-    psFree(det->nPos);
-    psFree(det->fPos);
-    psFree(det->nRatioBad);
-    psFree(det->nRatioMask);
-    psFree(det->nRatioAll);
-    psFree(det->psfInstFlux);
-    psFree(det->psfInstFluxSig);
-    psFree(det->apMag);
-    psFree(det->apMagRadius);
-    psFree(det->apMagRaw);
-    psFree(det->apFlux);
-    psFree(det->apFluxSig);
-    psFree(det->peakFluxAsMag);
-    psFree(det->calPsfMag);
-    psFree(det->calPsfMagSig);
-    psFree(det->sky);
-    psFree(det->skySig);
-    psFree(det->qualityPerfect);
-    psFree(det->momentsR1);
-    psFree(det->momentsRH);
-    psFree(det->kronFlux);
-    psFree(det->kronFluxErr);
-    psFree(det->kronFluxInner);
-    psFree(det->kronFluxOuter);
-    psFree(det->diffRP);
-    psFree(det->diffSnP);
-    psFree(det->diffRM);
-    psFree(det->diffSnM);
-    psFree(det->flags2);
-    psFree(det->ippIdet);
-    psFree(det->nFrames);
-    psFree(det->padding);
     return;
 }
 
-ppMopsDetections *ppMopsDetectionsAlloc(long num)
+ppMopsDetections *ppMopsDetectionsAlloc()
 {
     ppMopsDetections *det = psAlloc(sizeof(ppMopsDetections)); // Detections, to return
     psMemSetDeallocator(det, (psFreeFunc)mopsDetectionsFree);
+    det->component = NULL;
     det->raBoresight = NULL;
     det->decBoresight = NULL;
@@ -86,396 +39,13 @@
     det->seeing = NAN;
     det->num = 0;
-    det->x = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->y = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->ra = psVectorAllocEmpty(num, PS_TYPE_F64);
-    det->dec = psVectorAllocEmpty(num, PS_TYPE_F64);
-    det->raErr = psVectorAllocEmpty(num, PS_TYPE_F64);
-    det->decErr = psVectorAllocEmpty(num, PS_TYPE_F64);
-    det->mag = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->magErr = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->chi2 = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->dof = psVectorAllocEmpty(num, PS_TYPE_S32);
-    det->cr = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->extended = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->psfMajor = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->psfMinor = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->psfTheta = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->quality = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->numPix = psVectorAllocEmpty(num, PS_TYPE_S32);
-    det->xxMoment = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->xyMoment = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->yyMoment = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->flags = psVectorAllocEmpty(num, PS_TYPE_U32);
-    det->diffSkyfileId = psVectorAllocEmpty(num, PS_TYPE_S64);
-    det->naxis1 = psVectorAllocEmpty(num, PS_TYPE_S32);
-    det->naxis2 = psVectorAllocEmpty(num, PS_TYPE_S32);
-    det->mask = psVectorAllocEmpty(num, PS_TYPE_U8);
-    det->nPos = psVectorAllocEmpty(num, PS_TYPE_S32);
-    det->fPos = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->nRatioBad = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->nRatioMask = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->nRatioAll = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->psfInstFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->psfInstFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->apMag = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->apMagRadius  = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->apMagRaw = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->apFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->apFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->peakFluxAsMag = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->calPsfMag = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->calPsfMagSig = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->sky = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->skySig = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->qualityPerfect = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->momentsR1 = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->momentsRH = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->kronFlux = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->kronFluxErr = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->kronFluxInner = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->kronFluxOuter = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->diffRP = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->diffSnP = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->diffRM = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->diffSnM = psVectorAllocEmpty(num, PS_TYPE_F32);
-    det->flags2 = psVectorAllocEmpty(num, PS_TYPE_U32);
-    det->ippIdet = psVectorAllocEmpty(num, PS_TYPE_U32);
-    det->nFrames = psVectorAllocEmpty(num, PS_TYPE_U16);
-    det->padding = psVectorAllocEmpty(num, PS_TYPE_S16);
+    det->table = NULL;
+    det->x = NULL;
+    det->y = NULL;
+    det->ra = NULL;
+    det->dec = NULL;
+    det->raErr = NULL;
+    det->decErr = NULL;
+    det->mask = NULL;
+    det->diffSkyfileId = 0;
     return det;
 }
-
-ppMopsDetections *ppMopsDetectionsRealloc(ppMopsDetections *det, long num)
-{
-    det->x = psVectorRealloc(det->x, num);
-    det->y = psVectorRealloc(det->y, num);
-    det->ra = psVectorRealloc(det->ra, num);
-    det->dec = psVectorRealloc(det->dec, num);
-    det->raErr = psVectorRealloc(det->raErr, num);
-    det->decErr = psVectorRealloc(det->decErr, num);
-    det->mag = psVectorRealloc(det->mag, num);
-    det->magErr = psVectorRealloc(det->magErr, num);
-    det->chi2 = psVectorRealloc(det->chi2, num);
-    det->dof = psVectorRealloc(det->dof, num);
-    det->cr = psVectorRealloc(det->cr, num);
-    det->extended = psVectorRealloc(det->extended, num);
-    det->psfMajor = psVectorRealloc(det->psfMajor, num);
-    det->psfMinor = psVectorRealloc(det->psfMinor, num);
-    det->psfTheta = psVectorRealloc(det->psfTheta, num);
-    det->quality = psVectorRealloc(det->quality, num);
-    det->numPix = psVectorRealloc(det->numPix, num);
-    det->xxMoment = psVectorRealloc(det->xxMoment, num);
-    det->xyMoment = psVectorRealloc(det->xyMoment, num);
-    det->yyMoment = psVectorRealloc(det->yyMoment, num);
-    det->flags = psVectorRealloc(det->flags, num);
-    det->diffSkyfileId = psVectorRealloc(det->diffSkyfileId, num);
-    det->naxis1 = psVectorRealloc(det->naxis1, num);
-    det->naxis2 = psVectorRealloc(det->naxis2, num);
-    det->mask = psVectorRealloc(det->mask, num);
-    det->nPos = psVectorRealloc(det->nPos, num);
-    det->fPos = psVectorRealloc(det->fPos, num);
-    det->nRatioBad = psVectorRealloc(det->nRatioBad, num);
-    det->nRatioMask = psVectorRealloc(det->nRatioMask, num);
-    det->nRatioAll = psVectorRealloc(det->nRatioAll, num);
-    det->psfInstFlux = psVectorRealloc(det->psfInstFlux, num);
-    det->psfInstFluxSig = psVectorRealloc(det->psfInstFluxSig, num);
-    det->apMag = psVectorRealloc(det->apMag, num);
-    det->apMagRadius = psVectorRealloc(det->apMagRadius, num);
-    det->apMagRaw = psVectorRealloc(det->apMagRadius, num);
-    det->apFlux = psVectorRealloc(det->apFlux, num);
-    det->apFluxSig = psVectorRealloc(det->apFluxSig, num);
-    det->peakFluxAsMag = psVectorRealloc(det->peakFluxAsMag, num);
-    det->calPsfMag = psVectorRealloc(det->calPsfMag, num);
-    det->calPsfMagSig = psVectorRealloc(det->calPsfMagSig, num);
-    det->sky = psVectorRealloc(det->sky, num);
-    det->skySig = psVectorRealloc(det->skySig, num);
-    det->qualityPerfect = psVectorRealloc(det->qualityPerfect, num);
-    det->momentsR1 = psVectorRealloc(det->momentsR1, num);
-    det->momentsRH = psVectorRealloc(det->momentsRH, num);
-    det->kronFlux = psVectorRealloc(det->kronFlux, num);
-    det->kronFluxErr = psVectorRealloc(det->kronFluxErr, num);
-    det->kronFluxInner = psVectorRealloc(det->kronFluxInner, num);
-    det->kronFluxOuter = psVectorRealloc(det->kronFluxOuter, num);
-    det->diffRP = psVectorRealloc(det->diffRP, num);
-    det->diffSnP = psVectorRealloc(det->diffSnP, num);
-    det->diffRM = psVectorRealloc(det->diffRM, num);
-    det->diffSnM = psVectorRealloc(det->diffSnM, num);
-    det->flags2 = psVectorRealloc(det->flags2, num);
-    det->ippIdet = psVectorRealloc(det->ippIdet, num);
-    det->nFrames = psVectorRealloc(det->nFrames, num);
-    det->padding = psVectorRealloc(det->padding, num);
-    return det;
-}
-
-bool ppMopsDetectionsAdd(ppMopsDetections *det, float x, float y, double ra, double dec,
-                         double raErr, double decErr, float mag, float magErr,
-                         float chi2, int dof, float cr, float extended, float psfMajor,
-                         float psfMinor, float psfTheta, float quality, int numPix,
-                         float xxMoment, float xyMoment, float yyMoment,
-                         psU32 flags, psS64 diffSkyfileId, int naxis1, int naxis2,
-                         int nPos, float fPos, float nRatioBad, float nRatioMask, float nRatioAll,
-			 float psfInstFlux, float psfInstFluxSig,
-			 float apMag, float apMagRadius, float apMagRaw, float apFlux, float apFluxSig,
-			 float peakFluxAsMag, float calPsfMag, float calPsfMagSig,
-			 float sky, float skySig, float qualityPerfect,
-			 float momentsR1, float momentsRH,
-			 float kronFlux, float kronFluxErr, float kronFluxInner, float kronFluxOuter,
-			 float diffRP, float diffSnP, float diffRM, float diffSnM,
-			 psU32 flags2, psU32 ippIdet, psU16 nFrames, psS16 padding)
-{
-    psVectorAppend(det->x, x);
-    psVectorAppend(det->y, y);
-    psVectorAppend(det->ra, ra);
-    psVectorAppend(det->dec, dec);
-    psVectorAppend(det->raErr, raErr);
-    psVectorAppend(det->decErr, decErr);
-    psVectorAppend(det->mag, mag);
-    psVectorAppend(det->magErr, magErr);
-    psVectorAppend(det->chi2, chi2);
-    psVectorAppend(det->dof, dof);
-    psVectorAppend(det->cr, cr);
-    psVectorAppend(det->extended, extended);
-    psVectorAppend(det->psfMajor, psfMajor);
-    psVectorAppend(det->psfMinor, psfMinor);
-    psVectorAppend(det->psfTheta, psfTheta);
-    psVectorAppend(det->quality, quality);
-    psVectorAppend(det->numPix, numPix);
-    psVectorAppend(det->xxMoment, xxMoment);
-    psVectorAppend(det->xyMoment, xyMoment);
-    psVectorAppend(det->yyMoment, yyMoment);
-    psVectorAppend(det->flags, flags);
-    psVectorAppend(det->diffSkyfileId, diffSkyfileId);
-    psVectorAppend(det->naxis1, naxis1);
-    psVectorAppend(det->naxis2, naxis2);
-    psVectorAppend(det->mask, 0);
-    psVectorAppend(det->nPos, nPos);
-    psVectorAppend(det->fPos, fPos);
-    psVectorAppend(det->nRatioBad, nRatioBad);
-    psVectorAppend(det->nRatioMask, nRatioMask);
-    psVectorAppend(det->nRatioAll, nRatioAll);
-    psVectorAppend(det->psfInstFlux, psfInstFlux);
-    psVectorAppend(det->psfInstFluxSig, psfInstFluxSig);
-    psVectorAppend(det->apMag, apMag);
-    psVectorAppend(det->apMagRadius, apMagRadius);
-    psVectorAppend(det->apMagRaw, apMagRaw);
-    psVectorAppend(det->apFlux, apFlux);
-    psVectorAppend(det->apFluxSig, apFluxSig);
-    psVectorAppend(det->peakFluxAsMag, peakFluxAsMag);
-    psVectorAppend(det->calPsfMag, calPsfMag);
-    psVectorAppend(det->calPsfMagSig, calPsfMagSig);
-    psVectorAppend(det->sky, sky);
-    psVectorAppend(det->skySig, skySig);
-    psVectorAppend(det->qualityPerfect, qualityPerfect);
-    psVectorAppend(det->momentsR1, momentsR1);
-    psVectorAppend(det->momentsRH, momentsRH);
-    psVectorAppend(det->kronFlux, kronFlux);
-    psVectorAppend(det->kronFluxErr, kronFluxErr);
-    psVectorAppend(det->kronFluxInner, kronFluxInner);
-    psVectorAppend(det->kronFluxOuter, kronFluxOuter);
-    psVectorAppend(det->diffRP, diffRP);
-    psVectorAppend(det->diffSnP, diffSnP);
-    psVectorAppend(det->diffRM, diffRM);
-    psVectorAppend(det->diffSnM, diffSnM);
-    psVectorAppend(det->flags2, flags2);
-    psVectorAppend(det->ippIdet, ippIdet);
-    psVectorAppend(det->nFrames, nFrames);
-    psVectorAppend(det->padding, padding);
-    return true;
-}
-
-bool ppMopsDetectionsCopySingle(ppMopsDetections *target, const ppMopsDetections *source, long index)
-{
-    psVectorAppend(target->x, source->x->data.F32[index]);
-    psVectorAppend(target->y, source->y->data.F32[index]);
-    psVectorAppend(target->ra, source->ra->data.F64[index]);
-    psVectorAppend(target->dec, source->dec->data.F64[index]);
-    psVectorAppend(target->raErr, source->raErr->data.F64[index]);
-    psVectorAppend(target->decErr, source->decErr->data.F64[index]);
-    psVectorAppend(target->mag, source->mag->data.F32[index]);
-    psVectorAppend(target->magErr, source->magErr->data.F32[index]);
-    psVectorAppend(target->chi2, source->chi2->data.F32[index]);
-    psVectorAppend(target->dof, source->dof->data.S32[index]);
-    psVectorAppend(target->cr, source->cr->data.F32[index]);
-    psVectorAppend(target->extended, source->extended->data.F32[index]);
-    psVectorAppend(target->psfMajor, source->psfMajor->data.F32[index]);
-    psVectorAppend(target->psfMinor, source->psfMinor->data.F32[index]);
-    psVectorAppend(target->psfTheta, source->psfTheta->data.F32[index]);
-    psVectorAppend(target->quality, source->quality->data.F32[index]);
-    psVectorAppend(target->numPix, source->numPix->data.S32[index]);
-    psVectorAppend(target->xxMoment, source->xxMoment->data.F32[index]);
-    psVectorAppend(target->xyMoment, source->xyMoment->data.F32[index]);
-    psVectorAppend(target->yyMoment, source->yyMoment->data.F32[index]);
-    psVectorAppend(target->flags, source->flags->data.U32[index]);
-    psVectorAppend(target->diffSkyfileId, source->diffSkyfileId->data.S64[index]);
-    psVectorAppend(target->naxis1, source->naxis1->data.S32[index]);
-    psVectorAppend(target->naxis2, source->naxis2->data.S32[index]);
-    psVectorAppend(target->mask, 0);
-    psVectorAppend(target->nPos, source->nPos->data.S32[index]);
-    psVectorAppend(target->fPos, source->fPos->data.F32[index]);
-    psVectorAppend(target->nRatioBad, source->nRatioBad->data.F32[index]);
-    psVectorAppend(target->nRatioMask, source->nRatioMask->data.F32[index]);
-    psVectorAppend(target->nRatioAll, source->nRatioAll->data.F32[index]);
-    psVectorAppend(target->psfInstFlux, source->psfInstFlux->data.F32[index]);
-    psVectorAppend(target->psfInstFluxSig, source->psfInstFluxSig->data.F32[index]);
-    psVectorAppend(target->apMag, source->apMag->data.F32[index]);
-    psVectorAppend(target->apMagRadius, source->apMagRadius->data.F32[index]);
-    psVectorAppend(target->apMagRaw, source->apMagRaw->data.F32[index]);
-    psVectorAppend(target->apFlux, source->apFlux->data.F32[index]);
-    psVectorAppend(target->apFluxSig, source->apFluxSig->data.F32[index]);
-    psVectorAppend(target->peakFluxAsMag, source->peakFluxAsMag->data.F32[index]);
-    psVectorAppend(target->calPsfMag, source->calPsfMag->data.F32[index]);
-    psVectorAppend(target->calPsfMagSig, source->calPsfMagSig->data.F32[index]);
-    psVectorAppend(target->sky, source->sky->data.F32[index]);
-    psVectorAppend(target->skySig, source->skySig->data.F32[index]);
-    psVectorAppend(target->qualityPerfect, source->qualityPerfect->data.F32[index]);
-    psVectorAppend(target->momentsR1, source->momentsR1->data.F32[index]);
-    psVectorAppend(target->momentsRH, source->momentsRH->data.F32[index]);
-    psVectorAppend(target->kronFlux, source->kronFlux->data.F32[index]);
-    psVectorAppend(target->kronFluxErr, source->kronFluxErr->data.F32[index]);
-    psVectorAppend(target->kronFluxInner, source->kronFluxInner->data.F32[index]);
-    psVectorAppend(target->kronFluxOuter, source->kronFluxOuter->data.F32[index]);
-    psVectorAppend(target->diffRP, source->diffRP->data.F32[index]);
-    psVectorAppend(target->diffSnP, source->diffSnP->data.F32[index]);
-    psVectorAppend(target->diffRM, source->diffRM->data.F32[index]);
-    psVectorAppend(target->diffSnM, source->diffSnM->data.F32[index]);
-    psVectorAppend(target->flags2, source->flags2->data.U32[index]);
-    psVectorAppend(target->ippIdet, source->ippIdet->data.U32[index]);
-    psVectorAppend(target->nFrames, source->nFrames->data.U16[index]);
-    psVectorAppend(target->padding, source->padding->data.S16[index]);
-
-    target->num++;
-
-    return true;
-}
-
-
-bool ppMopsDetectionsPurge(ppMopsDetections *det)
-{
-    long num = 0;
-    for (long i = 0; i < det->num; i++) {
-        if (!det->mask->data.U8[i]) {
-            if (i == num) {
-                // No need to copy
-                num++;
-                continue;
-            }
-            det->x->data.F32[num] = det->x->data.F32[i];
-            det->y->data.F32[num] = det->y->data.F32[i];
-            det->ra->data.F64[num] = det->ra->data.F64[i];
-            det->dec->data.F64[num] = det->dec->data.F64[i];
-            det->raErr->data.F64[num] = det->raErr->data.F64[i];
-            det->decErr->data.F64[num] = det->decErr->data.F64[i];
-            det->mag->data.F32[num] = det->mag->data.F32[i];
-            det->magErr->data.F32[num] = det->magErr->data.F32[i];
-            det->chi2->data.F32[num] = det->chi2->data.F32[i];
-            det->dof->data.S32[num] = det->dof->data.S32[i];
-            det->cr->data.F32[num] = det->cr->data.F32[i];
-            det->extended->data.F32[num] = det->extended->data.F32[i];
-            det->psfMajor->data.F32[num] = det->psfMajor->data.F32[i];
-            det->psfMinor->data.F32[num] = det->psfMinor->data.F32[i];
-            det->psfTheta->data.F32[num] = det->psfTheta->data.F32[i];
-            det->quality->data.F32[num] = det->quality->data.F32[i];
-            det->numPix->data.S32[num] = det->numPix->data.S32[i];
-            det->xxMoment->data.F32[num] = det->xxMoment->data.F32[i];
-            det->xyMoment->data.F32[num] = det->xyMoment->data.F32[i];
-            det->yyMoment->data.F32[num] = det->yyMoment->data.F32[i];
-            det->flags->data.U32[num] = det->flags->data.U32[i];
-            det->diffSkyfileId->data.S64[num] = det->diffSkyfileId->data.S64[i];
-            det->naxis1->data.S32[num] = det->naxis1->data.S32[i];
-            det->naxis2->data.S32[num] = det->naxis2->data.S32[i];
-            det->mask->data.U8[num] = 0;
-            det->nPos->data.S32[num] = det->nPos->data.S32[i];
-            det->fPos->data.F32[num] = det->fPos->data.F32[i];
-            det->nRatioBad->data.F32[num] = det->nRatioBad->data.F32[i];
-            det->nRatioMask->data.F32[num] = det->nRatioMask->data.F32[i];
-            det->nRatioAll->data.F32[num] = det->nRatioAll->data.F32[i];
-            det->psfInstFlux->data.F32[num] = det->psfInstFlux->data.F32[i];
-            det->psfInstFluxSig->data.F32[num] = det->psfInstFluxSig->data.F32[i];
-            det->apMag->data.F32[num] = det->apMag->data.F32[i];
-            det->apMagRadius->data.F32[num] = det->apMagRadius->data.F32[i];
-            det->apMagRaw->data.F32[num] = det->apMagRaw->data.F32[i];
-            det->apFlux->data.F32[num] = det->apFlux->data.F32[i];
-            det->apFluxSig->data.F32[num] = det->apFluxSig->data.F32[i];
-            det->peakFluxAsMag->data.F32[num] = det->peakFluxAsMag->data.F32[i];
-            det->calPsfMag->data.F32[num] = det->calPsfMag->data.F32[i];
-            det->calPsfMagSig->data.F32[num] = det->calPsfMagSig->data.F32[i];
-            det->sky->data.F32[num] = det->sky->data.F32[i];
-            det->skySig->data.F32[num] = det->skySig->data.F32[i];
-            det->qualityPerfect->data.F32[num] = det->qualityPerfect->data.F32[i];
-            det->momentsR1->data.F32[num] = det->momentsR1->data.F32[i];
-            det->momentsRH->data.F32[num] = det->momentsRH->data.F32[i];
-	    det->kronFlux->data.F32[num] = det->kronFlux->data.F32[i];
-	    det->kronFluxErr->data.F32[num] = det->kronFluxErr->data.F32[i];
-	    det->kronFluxInner->data.F32[num] = det->kronFluxInner->data.F32[i];
-	    det->kronFluxOuter->data.F32[num] = det->kronFluxOuter->data.F32[i];
-	    det->diffRP->data.F32[num] = det->diffRP->data.F32[i];
-	    det->diffSnP->data.F32[num] = det->diffSnP->data.F32[i];
-	    det->diffRM->data.F32[num] = det->diffRM->data.F32[i];
-	    det->diffSnM->data.F32[num] = det->diffSnM->data.F32[i];
-	    det->flags2->data.U32[num] = det->flags2->data.U32[i];
-	    det->ippIdet->data.U32[num] = det->ippIdet->data.U32[i];
-	    det->nFrames->data.U16[num] = det->nFrames->data.U16[i];
-	    det->padding->data.S16[num] = det->padding->data.S16[i];
-            num++;
-        }
-    }
-    det->x->n = num;
-    det->y->n = num;
-    det->ra->n = num;
-    det->dec->n = num;
-    det->raErr->n = num;
-    det->decErr->n = num;
-    det->mag->n = num;
-    det->magErr->n = num;
-    det->chi2->n = num;
-    det->dof->n = num;
-    det->cr->n = num;
-    det->extended->n = num;
-    det->psfMajor->n = num;
-    det->psfMinor->n = num;
-    det->psfTheta->n = num;
-    det->quality->n = num;
-    det->numPix->n = num;
-    det->xxMoment->n = num;
-    det->xyMoment->n = num;
-    det->yyMoment->n = num;
-    det->flags->n = num;
-    det->diffSkyfileId->n = num;
-    det->naxis1->n = num;
-    det->naxis2->n = num;
-    det->mask->n = num;
-    det->num = num;
-    det->nPos->n = num;
-    det->fPos->n = num;
-    det->nRatioBad->n = num;
-    det->nRatioMask->n = num;
-    det->nRatioAll->n = num;
-    det->psfInstFlux->n = num;
-    det->psfInstFluxSig->n = num;
-    det->apMag->n = num;
-    det->apMagRadius->n = num;
-    det->apMagRaw->n = num;
-    det->apFlux->n = num;
-    det->apFluxSig->n = num;
-    det->peakFluxAsMag->n = num;
-    det->calPsfMag->n = num;
-    det->calPsfMagSig->n = num;
-    det->sky->n = num;
-    det->skySig->n = num;
-    det->qualityPerfect->n = num;
-    det->momentsR1->n = num;
-    det->momentsRH->n = num;
-    det->kronFlux->n = num;
-    det->kronFluxErr->n = num;
-    det->kronFluxInner->n = num;
-    det->kronFluxOuter->n = num;
-    det->diffRP->n = num;
-    det->diffSnP->n = num;
-    det->diffRM->n = num;
-    det->diffSnM->n = num;
-    det->flags2->n = num;
-    det->ippIdet->n = num;
-    det->nFrames->n = num;
-    det->padding->n = num;
-    return true;
-}
