IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24807


Ignore:
Timestamp:
Jul 15, 2009, 2:36:31 PM (17 years ago)
Author:
eugene
Message:

add options to allow for (1st and 2nd order) dark current trend with temperature

Location:
trunk/ppSim/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppSim/src/ppSimArguments.c

    r24574 r24807  
    3636    psMetadataAddF32(arguments,  PS_LIST_TAIL, "-biaslevel", 0, "Bias level (e)", NAN);
    3737    psMetadataAddF32(arguments,  PS_LIST_TAIL, "-biasrange", 0, "Bias range (e)", NAN);
     38    psMetadataAddF32(arguments,  PS_LIST_TAIL, "-dettemp", 0, "Detector Temperature (C)", NAN);
    3839    psMetadataAddF32(arguments,  PS_LIST_TAIL, "-darkrate", 0, "Dark rate (e/s)", NAN);
    3940    psMetadataAddF32(arguments,  PS_LIST_TAIL, "-flatsigma", 0, "Flat sigma", NAN);
     
    189190    ppSimArgToRecipeF32(&status,  options, "BIAS.RANGE",    arguments, "-biasrange");
    190191    ppSimArgToRecipeF32(&status,  options, "DARK.RATE",     arguments, "-darkrate");
     192    ppSimArgToRecipeF32(&status,  options, "DET.TEMP",      arguments, "-dettemp");
    191193    ppSimArgToRecipeF32(&status,  options, "FLAT.SIGMA",    arguments, "-flatsigma");
    192194    ppSimArgToRecipeF32(&status,  options, "FLAT.RATE",     arguments, "-flatrate");
  • trunk/ppSim/src/ppSimMakeDark.c

    r21365 r24807  
    2020    }
    2121
     22    float detTemp   = psMetadataLookupF32(&mdok, recipe, "DET.TEMP"); // Detector Temperature
     23    float darkTemp  = psMetadataLookupF32(&mdok, recipe, "DARK.TEMP"); // Dark temperature trend
     24    float darkTemp2 = psMetadataLookupF32(&mdok, recipe, "DARK.TEMP2"); // Dark temperature trend 2nd order term
     25    if (!isfinite(detTemp)) detTemp = 0.0;
     26    if (!isfinite(darkTemp)) darkTemp = 0.0;
     27    if (!isfinite(darkTemp2)) darkTemp2 = 0.0;
     28
    2229    float expTime  = psMetadataLookupF32(&mdok, recipe, "EXPTIME"); // Exposure time
    2330    if (isnan(expTime)) {
     
    2633    }
    2734
    28     psTrace("ppSim", 6, "darkRate: %f, expTime: %f\n", darkRate, expTime);
     35    // Dark current
     36    float darkCurrent = (darkRate + darkTemp*detTemp + darkTemp2*PS_SQR(detTemp)) * expTime; // Dark current accumulated
     37   
     38    psTrace("ppSim", 6, "dark current: %f, darkRate: %f, darkTempTrend: %f, darkTempSecondOrder: %f, detTemp: %f, expTime: %f\n", darkCurrent, darkRate, darkTemp, darkTemp2, detTemp, expTime);
    2939
    3040    for (int y = 0; y < signal->numRows; y++) {
    3141        for (int x = 0; x < signal->numCols; x++) {
    32 
    33             // Dark current
    34             float darkCurrent = darkRate * expTime; // Dark current accumulated
    3542            signal->data.F32[y][x] += darkCurrent;
    3643            variance->data.F32[y][x] += darkCurrent;
  • trunk/ppSim/src/ppSimUtils.c

    r24575 r24807  
    127127
    128128    float expTime = psMetadataLookupF32(NULL, recipe, "EXPTIME"); // Exposure time
     129    float detTemp = psMetadataLookupF32(NULL, recipe, "DET.TEMP"); // Detector Temperature
    129130
    130131    const char *filter = psMetadataLookupStr(NULL, recipe, "FILTER"); // Filter name
     
    136137    char *obs_mode = psMetadataLookupStr(NULL, recipe, "OBS_MODE");
    137138
    138     psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.OBSTYPE", PS_META_REPLACE, "Observation type", typeStr);
    139     psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.OBJECT", PS_META_REPLACE, "Observation name", typeStr);
     139    psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.OBSTYPE",  PS_META_REPLACE, "Observation type", typeStr);
     140    psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.OBJECT",   PS_META_REPLACE, "Observation name", typeStr);
    140141    psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.OBS.MODE", PS_META_REPLACE, "Observation mode", obs_mode);
    141142    psMetadataAddF32(fpa->concepts, PS_LIST_TAIL, "FPA.EXPOSURE", PS_META_REPLACE, "Exposure time (sec)", expTime);
     143    psMetadataAddF32(fpa->concepts, PS_LIST_TAIL, "FPA.TEMP",     PS_META_REPLACE, "Detector Temperature (C)", detTemp);
    142144    psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.FILTERID", PS_META_REPLACE, "Filter name", filter);
    143     psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.FILTER", PS_META_REPLACE, "Filter name", filter);
    144     psMetadataAddF32(fpa->concepts, PS_LIST_TAIL, "FPA.AIRMASS", PS_META_REPLACE, "airmass (dummy value)", 1.0);
     145    psMetadataAddStr(fpa->concepts, PS_LIST_TAIL, "FPA.FILTER",   PS_META_REPLACE, "Filter name", filter);
     146    psMetadataAddF32(fpa->concepts, PS_LIST_TAIL, "FPA.AIRMASS",  PS_META_REPLACE, "airmass (dummy value)", 1.0);
    145147
    146148    return true;
Note: See TracChangeset for help on using the changeset viewer.