IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 24, 2016, 3:29:05 PM (10 years ago)
Author:
eugene
Message:

merging changes from trunk

Location:
branches/czw_branch/20160809
Files:
21 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/czw_branch/20160809

  • branches/czw_branch/20160809/Ohana

  • branches/czw_branch/20160809/Ohana/src/delstar/Makefile

    r35758 r39719  
    3131$(SRC)/delete_duplicate_images.$(ARCH).o \
    3232$(SRC)/delete_duplicate_measures.$(ARCH).o \
     33$(SRC)/delete_measures_by_match.$(ARCH).o \
    3334$(SRC)/delete_fix_LAP.$(ARCH).o \
    3435$(SRC)/delete_fix_LAP_edges.$(ARCH).o \
     
    5657$(SRC)/delete_duplicate_images.$(ARCH).o \
    5758$(SRC)/delete_duplicate_measures.$(ARCH).o \
     59$(SRC)/delete_measures_by_match.$(ARCH).o \
    5860$(SRC)/delete_fix_LAP.$(ARCH).o \
    5961$(SRC)/delete_fix_LAP_edges.$(ARCH).o \
  • branches/czw_branch/20160809/Ohana/src/delstar/include/delstar.h

    r39717 r39719  
    9393
    9494int   SAVE_DUPLICATES;
     95int   SAVE_DELETES;
    9596int   SKIP_IMAGES;
    9697char *BACKUP_EXTNAME;
     
    104105
    105106int    MODE;
    106 enum {MODE_NONE, MODE_IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED, MODE_PHOTCODES, MODE_DUP_IMAGES, MODE_DUP_MEASURES, MODE_FIX_LAP, MODE_FIX_LAP_STATS, MODE_FIX_LAP_EDGES, MODE_FIX_LAP_EDGES_DELETE};
     107enum {MODE_NONE, MODE_IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED, MODE_PHOTCODES, MODE_DUP_IMAGES, MODE_DUP_MEASURES, MODE_DELETE_MEASURES_BY_MATCH, MODE_FIX_LAP, MODE_FIX_LAP_STATS, MODE_FIX_LAP_EDGES, MODE_FIX_LAP_EDGES_DELETE};
    107108
    108109char DateKeyword[64], DateMode[64], UTKeyword[64], MJDKeyword[64], JDKeyword[64];
     
    185186int ImageIDSave(char *filename, IndexArray *imageID);
    186187
     188int delete_measures_by_match ();
     189int delete_measures_by_match_parallel (SkyList *sky);
     190DeleteMeasureResult delete_measures_by_match_catalog (Catalog *catalog);
     191
    187192int delete_duplicate_measures ();
    188193int delete_duplicate_measures_parallel (SkyList *sky);
  • branches/czw_branch/20160809/Ohana/src/delstar/src/args.c

    r39717 r39719  
    1212  fprintf (stderr, "  delstar -dup-images : delete duplicate images (by externID)\n\n");
    1313  fprintf (stderr, "  delstar -dup-measures : delete duplicate measures (by imageID + detID)\n\n");
     14  fprintf (stderr, "  delstar -delete-measures-by-match : delete duplicate measures by imageID, photcode, time constratins\n\n");
    1415  fprintf (stderr, "  optional flags:\n");
    1516  fprintf (stderr, "  -v               : verbose mode\n");
     
    194195    SKIP_IMAGES = TRUE; // we do not need to load the images for -dup-measures
    195196  }
     197  if ((N = get_argument (argc, argv, "-delete-measures-by-match"))) {
     198    if (MODE != MODE_NONE) usage();
     199    MODE = MODE_DELETE_MEASURES_BY_MATCH;
     200    remove_argument (N, &argc, argv);
     201    SKIP_IMAGES = TRUE; // we do not need to load the images for -dup-measures
     202  }
    196203
    197204  DELETE_MIN_DET_ID = 0;
     
    222229    remove_argument (N, &argc, argv);
    223230  }
     231
    224232  BACKUP_EXTNAME = NULL;
    225233  if ((N = get_argument (argc, argv, "-backup-extname"))) {
     
    229237  }
    230238  if (!BACKUP_EXTNAME) BACKUP_EXTNAME = strcreate (".bck");
     239
     240  SAVE_DELETES = FALSE;
     241  if ((N = get_argument (argc, argv, "-save-deletes"))) {
     242    SAVE_DELETES = TRUE;
     243    remove_argument (N, &argc, argv);
     244  }
    231245
    232246  if ((N = get_argument (argc, argv, "-fix-LAP"))) {
  • branches/czw_branch/20160809/Ohana/src/delstar/src/delete_duplicate_measures.c

    r39717 r39719  
    373373  }
    374374   
    375 # if (0)
     375# if (1)
    376376  FILE *fsave = NULL;
    377377  if (SAVE_DUPLICATES) {
     
    408408    off_t N = measure[j].averef;
    409409    if (VERBOSE) fprintf (stderr, "0x%08x 0x%08x %8.4f %8.4f %5d\n", measure[j].imageID, measure[j].detID, average[N].R, average[N].D, measure[j].photcode);
    410 //  if (fsave) {
    411 //    fprintf (fsave, "0x%08x 0x%08x %8.4f %8.4f %5d\n", measure[j].imageID, measure[j].detID, average[N].R, average[N].D, measure[j].photcode);
    412 //  }
     410    if (fsave) {
     411      fprintf (fsave, "0x%08x 0x%08x %8.4f %8.4f %5d\n", measure[j].imageID, measure[j].detID, average[N].R, average[N].D, measure[j].photcode);
     412    }
    413413    if (isGPC1chip(measure[j].photcode)) {
    414414      result.NdelChip ++;
     
    426426  }
    427427 
    428   // if (fsave) fclose (fsave);
     428  if (fsave) fclose (fsave);
    429429
    430430  // set up the measure sequence lists
  • branches/czw_branch/20160809/Ohana/src/delstar/src/delstar.c

    r39579 r39719  
    2727    case MODE_DUP_MEASURES:
    2828      if (!delete_duplicate_measures ()) exit (1);
     29      delstar_args_free ();
     30      ohana_memcheck (TRUE);
     31      ohana_memdump (TRUE);
     32      exit (0);
     33      break;
     34    case MODE_DELETE_MEASURES_BY_MATCH:
     35      if (!delete_measures_by_match ()) exit (1);
    2936      delstar_args_free ();
    3037      ohana_memcheck (TRUE);
  • branches/czw_branch/20160809/Ohana/src/delstar/src/delstar_client.c

    r39579 r39719  
    3131      if (!delete_duplicate_measures ()) exit (1);
    3232      delstar_client_args_free ();
     33      ohana_memcheck (TRUE);
     34      ohana_memdump (TRUE);
     35      exit (0);
     36      break;
     37    case MODE_DELETE_MEASURES_BY_MATCH:
     38      if (!delete_measures_by_match ()) exit (1);
     39      delstar_args_free ();
    3340      ohana_memcheck (TRUE);
    3441      ohana_memdump (TRUE);
  • branches/czw_branch/20160809/Ohana/src/kapa2/src/Graphs.c

    r38986 r39719  
    2626    graph[0].axis[i].fMinor = 5.0;
    2727  }   
    28   graph[0].data.ticktextPad = NAN;
    2928
    30   graph[0].data.labelPadXm = NAN;
    31   graph[0].data.labelPadXp = NAN;
    32   graph[0].data.labelPadYm = NAN;
    33   graph[0].data.labelPadYp = NAN;
    34 
    35   graph[0].data.padXm = NAN;
    36   graph[0].data.padXp = NAN;
    37   graph[0].data.padYm = NAN;
    38   graph[0].data.padYp = NAN;
    39 
    40   graph[0].data.fLabelRangeXm = 1.0;
    41   graph[0].data.fLabelRangeXp = 1.0;
    42   graph[0].data.fLabelRangeYm = 1.0;
    43   graph[0].data.fLabelRangeYp = 1.0;
    44 
    45   graph[0].data.fMinorXm = 5.0;
    46   graph[0].data.fMinorXp = 5.0;
    47   graph[0].data.fMinorYm = 5.0;
    48   graph[0].data.fMinorYp = 5.0;
     29  KapaInitGraph (&graph[0].data);
    4930
    5031  for (i = 0; i < 8; i++) {
    5132    strcpy (graph[0].label[i].text, "");
    5233  }
    53 
    54   graph[0].data.xmin = 0.0;
    55   graph[0].data.xmax = 1.0;
    56   graph[0].data.ymin = 0.0;
    57   graph[0].data.ymax = 1.0;
    58 
    59   graph[0].data.style   = 2;            // points
    60   graph[0].data.ptype   = 2;            // + for points
    61   graph[0].data.ltype   = 0;            // solid line
    62   graph[0].data.etype   = 0;            // no error bars
    63   graph[0].data.ebar    = 0;            // no cross bar
    64   graph[0].data.color   = 0;            // black
    65   graph[0].data.lweight = 0.5;          // line weight of 0.5
    66   graph[0].data.size    = 1.0;          // point size of 1.0
    67 
    68   graph[0].data.flipeast = TRUE;        // +East  = -X by default
    69   graph[0].data.flipnorth = FALSE;      // +North = +Y by default
    70 
    71   InitCoords (&graph[0].data.coords, "DEC--LIN");
    72   strcpy (graph[0].data.axis, "2222");
    73   strcpy (graph[0].data.ticks, "2222");
    74   strcpy (graph[0].data.labels, "2222");
    7534
    7635  graph[0].Nobjects = 0;
  • branches/czw_branch/20160809/Ohana/src/libdvo/include/dvo.h

    r39637 r39719  
    921921float PhotFluxCatErr (Measure *measure, dvoMagClassType class);
    922922float PhotFluxAveErr (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source);
     923float PhotFluxSysErr (Measure *measure, Average *average, SecFilt *secfilt, dvoMagClassType class);
     924float PhotFluxRelErr (Measure *measure, Average *average, SecFilt *secfilt, dvoMagClassType class);
    923925
    924926float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt);
  • branches/czw_branch/20160809/Ohana/src/libdvo/src/dbExtractMeasures.c

    r39633 r39719  
    228228              break;
    229229            case MAG_LEVEL_SYS:
     230              value.Flt = PhotFluxSysErr (measure, average, secfilt, field->magClass);
     231              break;
    230232            case MAG_LEVEL_REL:
     233              value.Flt = PhotFluxRelErr (measure, average, secfilt, field->magClass);
     234              break;
    231235            case MAG_LEVEL_CAL:
    232               // value.Flt = PhotFluxErr (measure, field->magClass); 
     236              // XXX not defined
    233237              break;
    234238            case MAG_LEVEL_AVE:
     239              value.Flt = PhotFluxAveErr (equiv, average, secfilt, field->magClass, field->magSource); 
     240              break;
    235241            case MAG_LEVEL_REF:
    236               // value.Flt = PhotFluxAveErr (equiv, average, secfilt, field->magClass, field->magSource); 
     242              // XXX not defined
    237243              break;
    238244            case MAG_LEVEL_NONE:
  • branches/czw_branch/20160809/Ohana/src/libdvo/src/dvo_photcode_ops.c

    r39633 r39719  
    15071507  }
    15081508  return (dFcat);
     1509}
     1510
     1511float PhotFluxSysErr (Measure *measure, Average *average, SecFilt *secfilt, dvoMagClassType class) {
     1512
     1513  int Np = photcodes[0].hashcode[measure[0].photcode];
     1514  if (Np == -1) return (NAN);
     1515  PhotCode *code = &photcodes[0].code[Np];
     1516
     1517  // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
     1518  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C;
     1519  float Moff = Mcal - ZERO_POINT + 8.9;
     1520  float Foff = 3630.8 * MagToFlux(Mcal);
     1521
     1522  // use dFlux if we can, but use dMag if we must:
     1523  // dFlux = Flux * dMag
     1524
     1525  float dFcat = NAN;
     1526  switch (class) {
     1527    case MAG_CLASS_PSF:
     1528      if (isnan (measure[0].dFluxPSF)) {
     1529        float Finst = MagToFlux(measure[0].M + Moff);
     1530        dFcat = measure[0].dM * Finst;
     1531      } else {
     1532        dFcat = measure[0].dFluxPSF * Foff;
     1533      }
     1534      break;
     1535    case MAG_CLASS_KRON:
     1536      if (isnan (measure[0].dFluxKron)) {
     1537        float Finst = MagToFlux(measure[0].Mkron + Moff);
     1538        dFcat = measure[0].dMkron * Finst;
     1539      } else {
     1540        dFcat = measure[0].dFluxKron * Foff;
     1541      }
     1542      break;
     1543    case MAG_CLASS_APER:
     1544      if (isnan (measure[0].dFluxAp)) {
     1545        float Finst = MagToFlux(measure[0].Map + Moff);
     1546        dFcat = measure[0].dMap * Finst;
     1547      } else {
     1548        dFcat = measure[0].dFluxAp * Foff;
     1549      }
     1550      break;
     1551    default:
     1552      break;
     1553  }
     1554
     1555  /* color correction */
     1556  float mc = PhotColorForCode (average, secfilt, NULL, code);
     1557  if (isnan(mc)) return (dFcat);
     1558  mc -= SCALE*code[0].dX;
     1559
     1560  double Mc = mc;
     1561  float Mcol = 0;
     1562  int i = 0;
     1563  for (i = 0; i < code[0].Nc; i++) {
     1564    Mcol += code[0].X[i]*Mc;
     1565    Mc *= mc;
     1566  }
     1567  float Fcol = MagToFlux (Mcol);
     1568
     1569  float dFsys = dFcat * Fcol;
     1570
     1571  return (dFsys);
     1572}
     1573
     1574float PhotFluxRelErr (Measure *measure, Average *average, SecFilt *secfilt, dvoMagClassType class) {
     1575
     1576  int Np = photcodes[0].hashcode[measure[0].photcode];
     1577  if (Np == -1) return (NAN);
     1578  PhotCode *code = &photcodes[0].code[Np];
     1579
     1580  // measure.M has the static ZERO_POINT (25.0) applied, but not measure.Flux
     1581  float Mflat = isfinite(measure[0].Mflat) ? measure[0].Mflat : 0.0;
     1582  float Mcal = code[0].K*(measure[0].airmass - 1.000) + SCALE*code[0].C - measure[0].Mcal - Mflat;
     1583  float Moff = Mcal - ZERO_POINT + 8.9;
     1584  float Foff = 3630.8 * MagToFlux(Mcal);
     1585
     1586  // use dFlux if we can, but use dMag if we must:
     1587  // dFlux = Flux * dMag
     1588
     1589  float dFcat = NAN;
     1590  switch (class) {
     1591    case MAG_CLASS_PSF:
     1592      if (isnan (measure[0].dFluxPSF)) {
     1593        float Finst = MagToFlux(measure[0].M + Moff);
     1594        dFcat = measure[0].dM * Finst;
     1595      } else {
     1596        dFcat = measure[0].dFluxPSF * Foff;
     1597      }
     1598      break;
     1599    case MAG_CLASS_KRON:
     1600      if (isnan (measure[0].dFluxKron)) {
     1601        float Finst = MagToFlux(measure[0].Mkron + Moff);
     1602        dFcat = measure[0].dMkron * Finst;
     1603      } else {
     1604        dFcat = measure[0].dFluxKron * Foff;
     1605      }
     1606      break;
     1607    case MAG_CLASS_APER:
     1608      if (isnan (measure[0].dFluxAp)) {
     1609        float Finst = MagToFlux(measure[0].Map + Moff);
     1610        dFcat = measure[0].dMap * Finst;
     1611      } else {
     1612        dFcat = measure[0].dFluxAp * Foff;
     1613      }
     1614      break;
     1615    default:
     1616      break;
     1617  }
     1618
     1619  /* color correction */
     1620  float mc = PhotColorForCode (average, secfilt, NULL, code);
     1621  if (isnan(mc)) return (dFcat);
     1622  mc -= SCALE*code[0].dX;
     1623
     1624  double Mc = mc;
     1625  float Mcol = 0;
     1626  int i = 0;
     1627  for (i = 0; i < code[0].Nc; i++) {
     1628    Mcol += code[0].X[i]*Mc;
     1629    Mc *= mc;
     1630  }
     1631  float Fcol = MagToFlux (Mcol);
     1632
     1633  float dFrel = dFcat * Fcol;
     1634
     1635  return (dFrel);
    15091636}
    15101637
  • branches/czw_branch/20160809/Ohana/src/libkapa/src/KapaWindow.c

    r38986 r39719  
    9393  graphdata[0].xmin = graphdata[0].ymin = 0.0;
    9494  graphdata[0].xmax = graphdata[0].ymax = 1.0;
    95   graphdata[0].style = graphdata[0].ptype = 0;
     95
     96  graphdata[0].style = graphdata[0].ptype = 2;
    9697  graphdata[0].ltype = graphdata[0].color = 0;
    9798  graphdata[0].etype = graphdata[0].ebar = 0;
     
    117118  graphdata[0].padYm = NAN;
    118119  graphdata[0].padYp = NAN;
     120
     121  graphdata[0].fLabelRangeXm = 1.0;
     122  graphdata[0].fLabelRangeXp = 1.0;
     123  graphdata[0].fLabelRangeYm = 1.0;
     124  graphdata[0].fLabelRangeYp = 1.0;
     125
     126  graphdata[0].fMinorXm = 5.0;
     127  graphdata[0].fMinorXp = 5.0;
     128  graphdata[0].fMinorYm = 5.0;
     129  graphdata[0].fMinorYp = 5.0;
    119130
    120131  return (TRUE);
  • branches/czw_branch/20160809/Ohana/src/relastro/Makefile

    r39619 r39719  
    2626RELASTRO = \
    2727$(SRC)/CheckMeasureToImage.$(ARCH).o \
     28$(SRC)/RepairObjectIDs.$(ARCH).o \
     29$(SRC)/RepairStacks.$(ARCH).o \
    2830$(SRC)/RepairStackMeasures.$(ARCH).o \
    2931$(SRC)/StackImageMaps.$(ARCH).o \
     
    114116RELASTRO_CLIENT = \
    115117$(SRC)/CheckMeasureToImage.$(ARCH).o \
     118$(SRC)/RepairObjectIDs.$(ARCH).o \
     119$(SRC)/RepairStacks.$(ARCH).o \
    116120$(SRC)/RepairStackMeasures.$(ARCH).o \
    117121$(SRC)/StackImageMaps.$(ARCH).o \
  • branches/czw_branch/20160809/Ohana/src/relastro/include/relastro.h

    r39619 r39719  
    3131typedef enum {FIT_NONE, FIT_AVERAGE, FIT_PM_ONLY, FIT_PAR_ONLY, FIT_PM_AND_PAR} FitMode;
    3232
    33 typedef enum {OP_NONE, OP_IMAGES, OP_HIGH_SPEED, OP_MERGE_SOURCE, OP_UPDATE_OBJECTS, OP_UPDATE_OFFSETS, OP_LOAD_OBJECTS, OP_HPM, OP_PARALLEL_REGIONS, OP_PARALLEL_IMAGES, OP_REPAIR_WARPS} RelastroOp;
     33typedef enum {OP_NONE, OP_IMAGES, OP_HIGH_SPEED, OP_MERGE_SOURCE, OP_UPDATE_OBJECTS, OP_UPDATE_OFFSETS, OP_LOAD_OBJECTS, OP_HPM, OP_PARALLEL_REGIONS, OP_PARALLEL_IMAGES, OP_REPAIR_STACKS, OP_REPAIR_WARPS, OP_REPAIR_OBJECT_ID} RelastroOp;
    3434
    3535typedef enum {TARGET_NONE, TARGET_SIMPLE, TARGET_CHIPS, TARGET_MOSAICS} FitTarget;
     
    864864uint64_t CreatePSPSDetectionID(double tobs, int ccdid, int detID);
    865865
     866int RepairStacks (SkyList *skylist, int hostID, char *hostpath);
     867
     868int RepairObjectIDs (SkyList *skylist, int hostID, char *hostpath);
     869
    866870void sort_by_ra (double *R, double *D, int *I, int *S, int N);
    867871void FreeStackGroups (void);
  • branches/czw_branch/20160809/Ohana/src/relastro/src

  • branches/czw_branch/20160809/Ohana/src/relastro/src/StackImageMaps.c

    r39619 r39719  
    8787  // we have the stack centers; find all stacks within 0.3 degrees of this point
    8888  Rstk = ohana_normalize_angle (Rstk);
    89   double dD = 0.3;
     89  double dD = 0.4;
    9090  double dR = dD / cos(RAD_DEG*Dstk);
    9191  double Rmin = Rstk - dR;
     
    9393  double Dmin = Dstk - dD;
    9494  double Dmax = Dstk + dD;
     95
     96  // for the north pole, just test the whole circle
     97  if (Dstk > 88) {
     98    Rmin = 0.0;
     99    Rmax = 360.0;
     100  }
    95101
    96102  double dPosMin = NAN;
  • branches/czw_branch/20160809/Ohana/src/relastro/src/UpdateObjectOffsets.c

    r39623 r39719  
    194194    if (USE_FIXED_PIXCOORDS) strextend (&command, "-D USE_FIXED_PIXCOORDS 1");
    195195
    196     if (REPAIR_STACKS)          strextend (&command, "-repair-stacks");
     196    if (REPAIR_STACKS)          strextend (&command, "-repair-stacks-on-update");
    197197    if (CHECK_MEASURE_TO_IMAGE) strextend (&command, "-check-measures");
    198198
     
    324324    if (ExcludeBogus)    strextend (&command, "-exclude-bogus %f", ExcludeBogusRadius);
    325325   
     326    if (USE_ALL_IMAGES)      strextend (&command, "-use-all-images");
    326327    if (USE_FIXED_PIXCOORDS) strextend (&command, "-D USE_FIXED_PIXCOORDS 1");
    327328
    328     if (REPAIR_STACKS)          strextend (&command, "-repair-stacks");
     329    if (REPAIR_STACKS)          strextend (&command, "-repair-stacks-on-update");
    329330    if (CHECK_MEASURE_TO_IMAGE) strextend (&command, "-check-measures");
    330331
  • branches/czw_branch/20160809/Ohana/src/relastro/src/args.c

    r39619 r39719  
    5353  }
    5454
     55  if ((N = get_argument (argc, argv, "-repair-stacks"))) {
     56    remove_argument (N, &argc, argv);
     57    RELASTRO_OP = OP_REPAIR_STACKS;
     58  }
     59  if ((N = get_argument (argc, argv, "-repair-object-id"))) {
     60    remove_argument (N, &argc, argv);
     61    RELASTRO_OP = OP_REPAIR_OBJECT_ID;
     62  }
     63
    5564  if ((N = get_argument (argc, argv, "-repair-warps"))) {
    5665    remove_argument (N, &argc, argv);
     
    5968
    6069  REPAIR_STACKS = FALSE;
    61   if ((N = get_argument (argc, argv, "-repair-stacks"))) {
     70  if ((N = get_argument (argc, argv, "-repair-stacks-on-update"))) {
    6271    remove_argument (N, &argc, argv);
    6372    REPAIR_STACKS = TRUE;
     
    691700  }
    692701
     702  if ((N = get_argument (argc, argv, "-repair-stacks"))) {
     703    remove_argument (N, &argc, argv);
     704    RELASTRO_OP = OP_REPAIR_STACKS;
     705  }
     706
     707  if ((N = get_argument (argc, argv, "-repair-object-id"))) {
     708    remove_argument (N, &argc, argv);
     709    RELASTRO_OP = OP_REPAIR_OBJECT_ID;
     710  }
     711
    693712  if ((N = get_argument (argc, argv, "-repair-warps"))) {
    694713    remove_argument (N, &argc, argv);
     
    697716
    698717  REPAIR_STACKS = FALSE;
    699   if ((N = get_argument (argc, argv, "-repair-stacks"))) {
     718  if ((N = get_argument (argc, argv, "-repair-stacks-on-update"))) {
    700719    remove_argument (N, &argc, argv);
    701720    REPAIR_STACKS = TRUE;
  • branches/czw_branch/20160809/Ohana/src/relastro/src/relastro.c

    r39619 r39719  
    104104    }
    105105
     106    case OP_REPAIR_STACKS: {
     107      FITS_DB db;
     108      if (!PARALLEL) {
     109     
     110        set_db (&db);
     111        gfits_db_init (&db);
     112
     113        /* lock and load the image db table */
     114        int status = dvo_image_lock (&db, ImageCat, 60.0, LCK_SOFT);
     115        if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
     116        if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
     117        if (!dvo_image_load (&db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db.filename);
     118        // the raw FITS data is freed by dvo_image_load, leaving only the Image structure data
     119
     120        /* load regions and images based on specified sky patch (default depth) */
     121        load_images (&db, skylist, FALSE, USE_ALL_IMAGES);
     122      }
     123
     124      // iterate over catalogs to make detection coordinates consistant
     125      RepairStacks (skylist, 0, NULL);
     126
     127      if (!PARALLEL) {
     128        freeImages (db.ftable.buffer);
     129        gfits_db_free (&db);
     130        freeMosaics ();
     131      }
     132
     133      relastro_free (sky, skylist);
     134      exit (0);
     135    }
     136
     137    case OP_REPAIR_OBJECT_ID: {
     138
     139      // iterate over catalogs to make detection coordinates consistant
     140      RepairObjectIDs (skylist, 0, NULL);
     141
     142      relastro_free (sky, skylist);
     143      exit (0);
     144    }
     145
    106146    case OP_HIGH_SPEED:
    107147      /* high-speed is a 2pt cross-correlation process for linking moving objects (high PM) */
  • branches/czw_branch/20160809/Ohana/src/relastro/src/relastro_client.c

    r39619 r39719  
    104104    }
    105105
     106    case OP_REPAIR_OBJECT_ID: {
     107
     108      // iterate over catalogs to make detection coordinates consistant
     109      RepairObjectIDs (skylist, HOST_ID, HOSTDIR);
     110
     111      relastro_free (sky, skylist);
     112      exit (0);
     113    }
     114
     115      // XXX loading the images is fairly costly -- see if we can do an image subset?
     116    case OP_REPAIR_STACKS: {
     117      FITS_DB db;
     118     
     119      set_db (&db);
     120      gfits_db_init (&db);
     121
     122      /* lock and load the image db table */
     123      int status = dvo_image_lock (&db, ImageCat, 60.0, LCK_SOFT);
     124      if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
     125      if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
     126      if (!dvo_image_load (&db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db.filename);
     127      // the raw FITS data is freed by dvo_image_load, leaving only the Image structure data
     128
     129      /* load regions and images based on specified sky patch (default depth) */
     130      load_images (&db, skylist, FALSE, USE_ALL_IMAGES);
     131
     132      RepairStacks (skylist, HOST_ID, HOSTDIR);
     133     
     134      freeImages (db.ftable.buffer);
     135      gfits_db_free (&db);
     136      freeMosaics ();
     137
     138      relastro_client_free (sky, skylist);
     139      break;
     140    }
     141
    106142      // XXX loading the images is fairly costly -- see if we can do an image subset?
    107143    case OP_REPAIR_WARPS: {
Note: See TracChangeset for help on using the changeset viewer.