IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38994 for trunk


Ignore:
Timestamp:
Oct 28, 2015, 5:03:34 PM (11 years ago)
Author:
watersc1
Message:

Populate a deteff table. I've set this to operate on stacks and when
the output is (not a stack && not a forcedwarp) to make sure that
chip/camera smfs have the table as well.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/addstar/src/mkcmf.c

    r38971 r38994  
    7272  if ((N = get_argument (argc, argv, "-forcedwarp"))) {
    7373    remove_argument (N, &argc, argv);
    74     WriteXSRC = WriteXFIT = WriteXRAD = WriteDETF = TRUE;
     74    WriteXSRC = WriteXFIT = WriteXRAD = TRUE;
    7575    isForcedWarp = TRUE;
    7676  }
    7777
     78  if (!isStack && !isForcedWarp) {
     79    WriteDETF = TRUE;
     80  }
     81 
    7882  static char *photcode = "SIMTEST.r.Chip";
    7983  if ((N = get_argument (argc, argv, "-photcode"))) {
     
    16271631
    16281632int WriteDETFtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) {
     1633
     1634  int i;
     1635 
     1636  Header header;
     1637  FTable ftable;
     1638
     1639  char extdata[80];
     1640  snprintf(extdata, 80, "%s.deteff", extroot);
     1641
     1642  int Nbins = 13;
     1643  float OFFSET[13] = {-2.0, -1.0, -0.5, -0.25, -0.1, -0.05, 0.0, 0.05, 0.1, 0.25, 0.5, 1.0, 2.0};
     1644
     1645  {
     1646    gfits_create_table_header(&header, "BINTABLE", extdata);
     1647
     1648    gfits_define_bintable_column(&header, "1E", "OFFSET"      , "label for field   1", NULL, 1.0, 0.0);
     1649    gfits_define_bintable_column(&header, "1J", "COUNTS"      , "label for field   2", NULL, 1.0, FT_BZERO_INT32);
     1650    gfits_define_bintable_column(&header, "1E", "DIFF.MEAN"   , "label for field   3", NULL, 1.0, 0.0);
     1651    gfits_define_bintable_column(&header, "1E", "DIFF.STDEV"  , "label for field   4", NULL, 1.0, 0.0);
     1652    gfits_define_bintable_column(&header, "1E", "ERR.MEAN"    , "label for field   5", NULL, 1.0, 0.0);
     1653
     1654    gfits_create_table(&header, &ftable);
     1655
     1656    int   *COUNTS;     ALLOCATE(COUNTS, int, Nbins);
     1657    float *DIFF_MEAN;  ALLOCATE(DIFF_MEAN, float, Nbins);
     1658    float *DIFF_STDEV; ALLOCATE(DIFF_STDEV, float, Nbins);
     1659    float *ERR_MEAN;   ALLOCATE(ERR_MEAN, float, Nbins);
     1660
     1661    float rate = 2.0 + 0.2 * (drand48() - 0.5);
     1662   
     1663    for (i = 0; i < Nbins; i++) {
     1664      COUNTS[i] = (int) floor(460.0 / (1.0 + exp(rate * OFFSET[i])));
     1665      DIFF_MEAN[i] = (drand48() - 0.5) / 100.0;
     1666      if (OFFSET[i] > 0) {
     1667        DIFF_MEAN[i] += -0.5 * OFFSET[i];
     1668      }
     1669      DIFF_STDEV[i] = sqrt(2) * fabs(DIFF_MEAN[i]);
     1670      ERR_MEAN[i] = ((rate - 2.0) + (OFFSET[i] + 2.0)/16.0);
     1671    }
     1672
     1673    gfits_set_bintable_column(&header, &ftable, "OFFSET", OFFSET, Nbins);
     1674    gfits_set_bintable_column(&header, &ftable, "COUNTS", COUNTS, Nbins);
     1675    gfits_set_bintable_column(&header, &ftable, "DIFF.MEAN", DIFF_MEAN, Nbins);
     1676    gfits_set_bintable_column(&header, &ftable, "DIFF.STDEV", DIFF_STDEV, Nbins);
     1677    gfits_set_bintable_column(&header, &ftable, "ERR.MEAN", ERR_MEAN, Nbins);
     1678   
     1679    gfits_modify(&header, "HIERARCH DETEFF.MAGREF", "%f", 1, -6.806806);
     1680    gfits_modify(&header, "HIERARCH DETEFF.NUM", "%d", 1, 500);
     1681  }
     1682
     1683  gfits_fwrite_Theader(fits, &header);
     1684  gfits_fwrite_table(fits, &ftable);
     1685  gfits_free_header(&header);
     1686  gfits_free_table(&ftable);
     1687 
    16291688  return TRUE;
    16301689}
Note: See TracChangeset for help on using the changeset viewer.