IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36633 for trunk


Ignore:
Timestamp:
Apr 2, 2014, 10:50:14 AM (12 years ago)
Author:
bills
Message:

Merge with ipp-20140401 (The staticsky tag)

Location:
trunk
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/ippScripts/scripts/dist_defineruns.pl

    r32701 r36633  
    8888    push @stages, $stage;
    8989} else {
    90     @stages = qw(chip chip_bg camera fake warp warp_bg diff stack SSdiff sky skysingle);
     90    @stages = qw(chip chip_bg camera fake warp warp_bg diff stack SSdiff sky skysingle ff);
    9191}
    9292
  • trunk/ippScripts/scripts/dist_make_fileset.pl

    r35975 r36633  
    223223    my $dbname = shift;
    224224
    225     if (($stage eq 'stack') or ($stage eq 'diff') or ($stage eq 'SSdiff') or $stage eq 'sky' or $stage eq 'skycal') {
     225    if (($stage eq 'stack') or ($stage eq 'diff') or ($stage eq 'SSdiff') or $stage eq 'sky' or $stage eq 'skycal' or $stage eq "ff") {
    226226        return "";
    227227    }
  • trunk/ippScripts/scripts/ipp_apply_burntool_single.pl

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • trunk/ippScripts/scripts/psphot_fullforce_summary.pl

    r36441 r36633  
    7979my ($listFile, $listName) = tempfile("/tmp/fullforce.summary.list.XXXX", UNLINK => !$save_temps );
    8080
     81my $cff_file;
     82
    8183{
    8284    my $mdcParser = PS::IPP::Metadata::Config->new;
     
    107109        &my_die("Couldn't find input cmf: $cmf", $ff_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($cmf);
    108110        print $listFile "SOURCES STR $cmf\n";
     111        if (!$cff_file) {
     112            $cff_file = $ipprc->filename('PSPHOT.OUTPUT.CFF', $result->{sources_path_base});
     113            &my_die("Couldn't find input cff: $cff_file", $ff_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($cff_file);
     114        }
    109115    }
    110116    close $listFile;
    111117}
     118
     119&my_die("No CFF found in results: $cff_file", $ff_id, $PS_EXIT_PROG_ERROR) unless $cff_file;
     120
    112121
    113122# Recipes to use based on reduction class
     
    141150    my $command = "$psphotFullForceSummary $outroot";
    142151    $command .= " -input $listName";
     152    $command .= " -cff $cff_file";
    143153    $command .= " -threads $threads" if defined $threads;
    144154    if ($dump_config) {
  • trunk/ippScripts/scripts/publish_file.pl

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • trunk/ippTasks/dist.pro

    r35956 r36633  
    3232list DIST_STAGE -add "sky"
    3333list DIST_STAGE -add "skycal"
     34list DIST_STAGE -add "ff"
    3435
    3536$currentStage = 0
  • trunk/ippTools/share/fftool_definebyquery_select_warps.sql

    r36441 r36633  
    55    JOIN chipRun USING(chip_id)
    66    JOIN rawExp USING(exp_id)
     7    JOIN skycell ON skycell.tess_id = warpSkyfile.tess_id AND skycell.skycell_id = warpSkyfile.skycell_id
    78WHERE warpRun.tess_id = '%s' AND warpSkyfile.skycell_id = '%s' AND rawExp.filter = '%s'
    89    AND warpRun.state = 'full' AND warpSkyfile.quality = 0 and warpSkyfile.fault = 0
  • trunk/ippTools/share/fftool_result.sql

    r36555 r36633  
    66    fullForceRun.skycal_id,
    77    fullForceRun.workdir,
     8    fullForceRun.sources_path_base,
    89    CONCAT_WS('.', warp_id, skycell_id) AS dist_component,
    910    stackRun.tess_id,
  • trunk/ippTools/share/fftool_summary.sql

    r36555 r36633  
    66    fullForceRun.skycal_id,
    77    fullForceRun.workdir,
     8    fullForceRun.sources_path_base,
    89    'summary' AS dist_component,
    910    stackRun.tess_id,
  • trunk/ippTools/share/fftool_toadvance.sql

    r36441 r36633  
    1515    JOIN rawExp USING(exp_id)
    1616    LEFT JOIN fullForceResult USING(ff_id, warp_id)
    17 WHERE fullForceRun.state = 'new'
     17    LEFT JOIN fullForceSummary USING(ff_id)
     18WHERE fullForceRun.state = 'new' AND fullForceSummary.ff_id IS NULL
    1819    -- WHERE hook %s
    1920    GROUP BY ff_id
  • trunk/ippTools/src/fftool.c

    r36623 r36633  
    139139
    140140    psMetadata *warpWhereMD = psMetadataAlloc();
    141     pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label",     "fullForceRun.label",           "LIKE");
    142     pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","fullForceRun.data_group",      "LIKE");
    143     PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id",        "fullForceRun.warp_id",         "==");
     141    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label",     "warpRun.label",           "LIKE");
     142    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","warpRun.data_group",      "LIKE");
     143    PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id",        "warpRun.warp_id",         "==");
    144144    if (!psListLength(warpWhereMD->list)) {
    145145        psError(PXTOOLS_ERR_CONFIG, false, "warp search parameters are required");
     
    148148        return false;
    149149    }
    150     if (!psListLength(warpWhereMD->list)) {
    151         psError(PXTOOLS_ERR_CONFIG, false, "skycal search parameters are required");
    152         psFree(skycalWhereMD);
    153         psFree(warpWhereMD);
    154         return false;
    155     }
    156 
    157     PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id",       "fullForceRun.tess_id",         "==");
    158     pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter",        "fullForceRun.filter",          "LIKE");
    159     if (!pxskycellAddWhere(config, warpWhereMD)) {
    160         psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
    161         psFree(skycalWhereMD);
    162         psFree(warpWhereMD);
    163         return false;
    164     }
    165 
     150    PXOPT_COPY_F32(config->args, warpWhereMD, "-select_good_frac_min",  "warpSkyfile.good_frac",   ">=");
     151    PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id",       "warpRun.tess_id",         "==");
     152    pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter",        "rawExp.filter",          "LIKE");
    166153
    167154    PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false);
     
    186173    psString joinHook = NULL;
    187174    if (!rerun) {
    188         psStringAppend(&joinHook, "\nLEFT JOIN fullForceRun ON fullForceRun.skycal_id = fullForceRun.skycal_id");
     175        psStringAppend(&joinHook, "\nLEFT JOIN fullForceRun ON fullForceRun.skycal_id = skycalRun.skycal_id");
    189176        psStringAppend(&joinHook, "\n %s\nAND fullForceRun.label = '%s'", where, label);
    190177        psStringAppend(&select, "\nAND ff_id IS NULL");
     
    502489    psMetadata *where = psMetadataAlloc();
    503490    PXOPT_COPY_S64(config->args, where, "-ff_id",      "fullForceRun.ff_id", "==");
    504     PXOPT_COPY_S64(config->args, where, "-warp_id",    "fullForceRun.warp_id", "==");
     491    PXOPT_COPY_S64(config->args, where, "-warp_id",    "fullForceResult.warp_id", "==");
    505492    PXOPT_COPY_S64(config->args, where, "-skycal_id",  "fullForceRun.skycal_id", "==");
    506493    PXOPT_COPY_S64(config->args, where, "-stack_id",   "stackRun.stack_id", "==");
     
    510497    PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE");
    511498    PXOPT_COPY_STR(config->args, where, "-filter",      "stackRun.filter", "LIKE");
    512     PXOPT_COPY_S16(config->args, where, "-fault",      "staticskyResult.fault", "==");
     499    PXOPT_COPY_S16(config->args, where, "-fault",      "fullForceResult.fault", "==");
    513500    pxskycellAddWhere(config, where);
    514501
  • trunk/ippTools/src/fftoolConfig.c

    r36555 r36633  
    5858    psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_tess_id", 0, "search for tess_id", NULL);
    5959    psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL);
     60    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_good_frac_min", 0, "mimimum good_frac in warp", 0.0);
    6061
    6162    pxskycellAddArguments(definebyqueryArgs);
  • trunk/ippTools/src/staticskytool.c

    r35960 r36633  
    10451045    PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id",    "stackRun.skycell_id",       "==");
    10461046    PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id",       "stackRun.tess_id",          "==");
     1047    pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
    10471048    PXOPT_COPY_F32(config->args, whereMD, "-select_good_frac_min", "stackSumSkyfile.good_frac", ">=");
    10481049    pxAddLabelSearchArgs(config, whereMD, "-select_label",         "staticskyRun.label",            "LIKE");
    10491050    pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "staticskyRun.data_group",       "LIKE");
    1050     pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
    10511051    if (!pxskycellAddWhere(config, whereMD)) {
    10521052        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
  • trunk/ippconfig/recipes/ppSub.config

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • trunk/ippconfig/recipes/psphot.config

    r36454 r36633  
    195195
    196196EXT.NSIGMA.LIMIT.USE                BOOL  TRUE
     197
     198EXT_MODEL_TYPE_FOR_CFF              STR   BEST
    197199
    198200# Limits on extended source fits by galactic coordinates
     
    440442GALAXY_SHAPES_STYLE                 STR   R_MAJ_R_MIN
    441443
    442 GALAXY_SHAPES_FR_MAJOR_MIN          F32   0.5
    443 GALAXY_SHAPES_FR_MAJOR_MAX          F32   2.00
     444GALAXY_SHAPES_FR_MAJOR_MIN          F32   0.8
     445GALAXY_SHAPES_FR_MAJOR_MAX          F32   1.60
    444446GALAXY_SHAPES_FR_MAJOR_DEL          F32   0.05
    445 GALAXY_SHAPES_FR_MINOR_MIN          F32   0.5
    446 GALAXY_SHAPES_FR_MINOR_MAX          F32   2.00
     447GALAXY_SHAPES_FR_MINOR_MIN          F32   0.8
     448GALAXY_SHAPES_FR_MINOR_MAX          F32   1.60
    447449GALAXY_SHAPES_FR_MINOR_DEL          F32   0.05
    448450
     
    489491  PEAKS_NMAX_TOTAL                    S32   0 # set this to limit the allowed number of peaks - Yields fault instead of avoid memory explosion
    490492
     493  EXT_MODEL_TYPE_FOR_CFF              STR   PS_MODEL_DEV
    491494
    492495  SAVE.RESID                          BOOL  TRUE
  • trunk/ippconfig/recipes/reductionClasses.mdc

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • trunk/psModules/src/objects/pmSourceIO_CFF.c

    r36623 r36633  
    126126        pmModel *model = pmModelAlloc (modelType);
    127127        source->modelPSF  = model;
    128         source->type = PM_SOURCE_TYPE_STAR; // XXX this should be added to the flags
     128//        RoughClass wants source type to be unknown
     129//        source->type = PM_SOURCE_TYPE_STAR; // XXX this should be added to the flags
     130        source->type = PM_SOURCE_TYPE_UNKNOWN;
    129131
    130132        // XXX we can set this in general, but for a specific image, we need to weed out SATSTARS and
     
    178180        source->moments->My = Y;
    179181        source->moments->Mrf = kronRadius * 0.4; // kronRadius is 2.5 * first radial moment
    180         source->tmpFlags |= PM_SOURCE_TMPF_MOMENTS_MEASURED;
    181         // XXX does the above cause a problem with pmSourceMoments (do we run it? yes we do)
     182
     183        // Don't mark the moments as measured because that causes many fields to be left blank.
     184        // The moments code knows not to change the position or the Mrf for external sources
     185        // source->tmpFlags |= PM_SOURCE_TMPF_MOMENTS_MEASURED;
    182186
    183187        if (isfinite(petRadius)) {
     
    246250
    247251    pmModelType sersicModelType = pmModelClassGetType("PS_MODEL_SERSIC");
     252
     253    psString modelToChoose = psMetadataLookupStr(&mdok, recipe, "EXT_MODEL_TYPE_FOR_CFF");
     254    pmModelType selectedModelType = -1;
     255    if (mdok && modelToChoose != NULL) {
     256        if (strcmp(modelToChoose, "BEST")) {
     257            selectedModelType = pmModelClassGetType(modelToChoose);
     258        }
     259    }
    248260
    249261    for (int i = 0; i < sources->n; i++) {
     
    273285            theta = 0;
    274286        } else {
    275             // Choose the extended model to use for this source.
    276             // For now we use the one set as the modelEXT for this source which had the best fit.
    277             // XXX: make this controllable by recipe
    278             //   use best (as implemented here)
    279             //   choose specific type
     287            //   Find the model with the selected type. If selected type is -1 choose the one selected ad
     288            //   modelEXT which was the best
    280289            int iModel = -1;
    281290            if (source->modelEXT) {
    282                 pmModelType ext_model_type = source->modelEXT->type;
     291                pmModelType ext_model_type =  selectedModelType != -1  ? selectedModelType : source->modelEXT->type;
    283292                for (int j=0; j<source->modelFits->n; j++) {
    284293                    pmModel *aModel = source->modelFits->data[j];
  • trunk/psphot/src

  • trunk/psphot/src/psphotFullForce.SourceStats.c

    r36375 r36633  
    8585    psAssert (markVal, "missing MARK.PSPHOT");
    8686
    87     psArray *sources = detections->allSources;
     87    // psArray *sources = detections->allSources;
     88    psArray *sources = detections->newSources ? detections->newSources : detections->allSources;
    8889
    8990    // generate the array of sources, define the associated pixel
  • trunk/psphot/src/psphotFullForceReadout.c

    r36630 r36633  
    5252    psphotLoadExtSources (config, view, filerule);
    5353
     54#ifdef notmoved
     55    // XXX: moved down below
    5456    // merge the newly selected sources into the existing list (detections->allSources)
    5557    // NOTE: merge OLD and NEW
    5658    psphotMergeSources (config, view, filerule);
     59#endif
    5760
    5861    // construct sources and measure moments and other basic stats (saved on detections->allSources)
     
    6366        return psphotReadoutCleanup (config, view, filerule);
    6467    }
     68   
     69    // classify sources based on moments, brightness.  if a PSF model has been loaded, the PSF
     70    // clump defined for it is used not measured (detections->newSources)
     71    if (!psphotRoughClass (config, view, filerule)) { // pass 1
     72        psError (PSPHOT_ERR_UNKNOWN, false, "failed to determine rough classifications");
     73        return psphotReadoutCleanup (config, view, filerule);
     74    }
     75
     76    // merge the newly selected sources into the existing list (detections->allSources)
     77    // NOTE: merge OLD and NEW
     78    psphotMergeSources (config, view, filerule);
     79
    6580
    6681    // generate a psf model for any readouts which need one
  • trunk/psphot/src/psphotFullForceSummary.c

    r36441 r36633  
    7878        usage();
    7979    }
     80    if ((N = psArgumentGet(argc, argv, "-cff"))) {
     81        if (argc <= N+1) {
     82          psErrorStackPrint(stderr, "Expected to see 1 more argument; saw %d", argc - 1);
     83          usage();
     84        }
     85        psArgumentRemove(N, &argc, argv);
     86
     87        // We read CFF file as table not as sources. All we want are the nominal parameters input to psphotFullForce
     88        psMetadataAddStr(config->arguments, PS_LIST_TAIL, "CFF_FILE", 0, "CFF file with nominal parameters", argv[N]);
     89        psArgumentRemove(N, &argc, argv);
     90    } else {
     91        psErrorStackPrint(stderr, "-cff must be supplied.");
     92        usage();
     93    }
    8094 
    8195    if (argc < 2) {
     
    148162    }
    149163    output->save = true;
     164
     165    // We read cff file as a table not as sources
     166    psString cffName = psMetadataLookupStr(NULL, config->arguments, "CFF_FILE");
     167    if (!cffName) {
     168        psError(PSPHOT_ERR_CONFIG, true, "CFF_FILE is missing from arguments");
     169        return false;
     170    }
     171    psString resolvedName = pmConfigConvertFilename(cffName, config, false, false);
     172    if (!resolvedName) {
     173        psError(PSPHOT_ERR_CONFIG, false, "failed to resolve CFF_FILE %s", cffName);
     174        return false;
     175    }
     176    psFits *fits = psFitsOpen(resolvedName, "r");
     177    if (!fits) {
     178        psError(PSPHOT_ERR_CONFIG, false, "failed to open fits CFF_FILE %s", resolvedName);
     179        return false;
     180    }
     181    psArray *inTable = psFitsReadTable(fits);
     182    if (!inTable) {
     183        psError(PSPHOT_ERR_CONFIG, false, "failed to read cff fits table from CFF_FILE %s", resolvedName);
     184        return false;
     185    }
     186    psFitsClose(fits);
     187
     188    // Convert to an array indexed by ID
     189    psArray *sortedTable = psArrayAlloc(4*inTable->n);
     190    for (int i=0; i<inTable->n; i++) {
     191        psMetadata *row = inTable->data[i];
     192        psS32 ID = psMetadataLookupS32(&status, row, "ID");
     193        if (ID >= sortedTable->n) {
     194            sortedTable = psArrayRealloc(sortedTable, 2*ID);
     195        }
     196        if (sortedTable->data[ID]) {
     197            psError(PSPHOT_ERR_CONFIG, true, "Duplicate row with ID %d", ID);
     198            return false;
     199        }
     200        sortedTable->data[ID] = psMemIncrRefCounter(row);
     201    }
     202    psMetadataAddArray(config->arguments, PS_LIST_TAIL, "CFF_TABLE", PS_META_REPLACE, "cff table", sortedTable);
     203    psFree(inTable);
     204    psFree(sortedTable);
    150205
    151206    return true;
  • trunk/psphot/src/psphotFullForceSummaryReadout.c

    r36441 r36633  
    1414    psArray *zeroPt;
    1515    psArray *exptime;
     16    psArray *cffTable;
    1617} galaxyShapeOptions;
    1718
     
    6970            if (!setOptions(&options, readout, recipe, true)) {
    7071                psError (PS_ERR_UNKNOWN, false, "problem determining galaxy shape options.");
     72                return false;
     73            }
     74            options.cffTable = psMetadataLookupPtr(NULL, config->arguments, "CFF_TABLE");
     75            if (!options.cffTable) {
     76                psError (PS_ERR_UNKNOWN, true, "Cannot find cff table in arguments.");
    7177                return false;
    7278            }
     
    309315                // copy the best fit params to the model
    310316                psEllipseAxes axes = pmPSF_ModelToAxes(outSrc->modelEXT->params->data.F32, outSrc->modelEXT->type);
    311                 axes.major *= options->rMajor->data.F32[min_j];
    312                 axes.minor *= options->rMinor->data.F32[min_j];
     317                if (outSrc->seq >= options->cffTable->n) {
     318                    psError(PS_ERR_PROGRAMMING, true, "object sequence number %d is larger than cff table length %ld",
     319                        outSrc->seq, options->cffTable->n);
     320                    return NULL;
     321                }
     322                psMetadata *row = options->cffTable->data[outSrc->seq];
     323                if (!row) {
     324                    psError (PS_ERR_PROGRAMMING, true, "NO cff data for object %d", outSrc->seq);
     325                    psFree(outSrc);
     326                    return NULL;
     327                }
     328                bool mdok;
     329                psF32 rMajor = psMetadataLookupF32(&mdok, row, "R_MAJOR");
     330                if (!mdok) {
     331                    psError (PS_ERR_PROGRAMMING, true, "can't find R_MAJOR for object %d", outSrc->seq);
     332                    psFree(outSrc);
     333                    return NULL;
     334                }
     335                psF32 rMinor = psMetadataLookupF32(&mdok, row, "R_MINOR");
     336                if (!mdok) {
     337                    psError (PS_ERR_PROGRAMMING, true, "can't find R_MINOR for object %d", outSrc->seq);
     338                    psFree(outSrc);
     339                    return NULL;
     340                }
     341                axes.major = rMajor * options->rMajor->data.F32[min_j];
     342                axes.minor = rMinor * options->rMinor->data.F32[min_j];
    313343                pmPSF_AxesToModel (outSrc->modelEXT->params->data.F32, axes, outSrc->modelEXT->type);
    314344                outSrc->modelEXT->chisq = minChisq;
  • trunk/psphot/src/psphotGalaxyShape.c

    r36441 r36633  
    205205        if (!(source->tmpFlags & PM_SOURCE_TMPF_MOMENTS_MEASURED)) continue;
    206206        if (source->mode & PM_SOURCE_MODE_MOMENTS_FAILURE) continue;
     207        if (!source->modelPSF) continue;
    207208
    208209        // psphotSetRadiusMomentsExact sets the radius based on Mrf
     
    274275
    275276            int i = source->galaxyFits->chisq->n - 1;
    276             float thisChisq = source->galaxyFits->chisq->data.F32[i];
    277             if (isfinite(thisChisq) && (!isfinite(chisqBest) || thisChisq < chisqBest)) {
    278                 chisqBest = thisChisq;
    279                 fRmajorBest = fRmajor;
    280                 fRminorBest = fRminor;
     277            float flux = source->galaxyFits->Flux->data.F32[i];
     278            if (isfinite(flux)) {
     279                float thisChisq = source->galaxyFits->chisq->data.F32[i];
     280                if (isfinite(thisChisq) && isfinite(flux) && (!isfinite(chisqBest) || thisChisq < chisqBest)) {
     281                    chisqBest = thisChisq;
     282                    fRmajorBest = fRmajor;
     283                    fRminorBest = fRminor;
     284                }
    281285            }
     286            // reset I0 to avoid potential problems on the next iteration
     287            PAR[PM_PAR_I0] = 1.0;
    282288        }
    283289    }
    284290
     291#define SAVE_BEST_MODEL
    285292#ifdef SAVE_BEST_MODEL
    286293    // Save model with smallest chisq
     
    301308        psphotGalaxyShapeSource (pcm, source, maskVal, psfSize, false);
    302309
    303         // Replace modelEXT with this model
    304         // XXX: only do this if the model is good
    305         psFree (source->modelEXT);
    306 
    307         source->modelEXT = psMemIncrRefCounter (pcm->modelConv);
    308         source->type = PM_SOURCE_TYPE_EXTENDED;
    309         source->mode |= PM_SOURCE_MODE_EXTMODEL;
    310         source->mode |= PM_SOURCE_MODE_NONLINEAR_FIT;
    311 
    312         // cache the model flux
    313         pmPCMCacheModel (source, maskVal, psfSize, fitOptions->nsigma);
     310        // Replace modelEXT with this model, if the model is good
     311        if (isfinite(PAR[PM_PAR_I0])) {
     312            psFree (source->modelEXT);
     313
     314            source->modelEXT = psMemIncrRefCounter (pcm->modelConv);
     315            source->type = PM_SOURCE_TYPE_EXTENDED;
     316            source->mode |= PM_SOURCE_MODE_EXTMODEL;
     317            source->mode |= PM_SOURCE_MODE_NONLINEAR_FIT;
     318
     319            // cache the model flux
     320            pmPCMCacheModel (source, maskVal, psfSize, fitOptions->nsigma);
     321        }
    314322    }
    315323
  • trunk/psphot/src/psphotStackImageLoop.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
Note: See TracChangeset for help on using the changeset viewer.