IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 10, 2013, 11:32:35 AM (14 years ago)
Author:
eugene
Message:

fix relastro using Xfix,Yfix; add sorts and masks to gstar

Location:
branches/eam_branches/ipp-20121219/Ohana/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20121219/Ohana/src/opihi/dvo/gstar.c

    r34887 r34901  
    11# include "dvoshell.h"
     2
     3typedef enum {
     4  GSTAR_BY_SEQ,
     5  GSTAR_BY_TIME,
     6  GSTAR_BY_PHOTCODE,
     7} GSTAR_SORT_CODES;
    28
    39typedef enum {
     
    2329void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type);
    2430
     31void sort_index_float (float *X, int *IDX, int N) {
     32
     33# define SWAPFUNC(A,B){ float tmp; int itmp;    \
     34  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
     35  itmp = IDX[A]; IDX[A] = IDX[B]; IDX[B] = itmp; \
     36}
     37# define COMPARE(A,B)(X[A] < X[B])
     38
     39  OHANA_SORT (N, COMPARE, SWAPFUNC);
     40
     41# undef SWAPFUNC
     42# undef COMPARE
     43
     44}
     45
    2546int gstar (int argc, char **argv) {
    2647 
     
    3152  off_t i, Nstars, *N1;
    3253  off_t j, k, m, N, Nlo, Nhi;
    33   int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, STACK_OUTPUT, INST;
     54  int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, STACK_OUTPUT, INST, SHOW_MASKS;
    3455  int found, GetMeasures;
    3556  int SaveVectors;
     
    4465  Nsecfilt = GetPhotcodeNsecfilt ();
    4566
     67  GSTAR_SORT_CODES sortCode = GSTAR_BY_SEQ;
     68  if ((N = get_argument (argc, argv, "-sort"))) {
     69    remove_argument (N, &argc, argv);
     70    if (!strcasecmp (argv[N], "time")) {
     71      sortCode = GSTAR_BY_TIME;
     72    }
     73    if (!strcasecmp (argv[N], "photcode")) {
     74      sortCode = GSTAR_BY_PHOTCODE;
     75    }
     76    remove_argument (N, &argc, argv);
     77  }
     78
    4679  QUIET = FALSE;
    4780  if ((N = get_argument (argc, argv, "-q"))) {
     
    5386  if ((N = get_argument (argc, argv, "-inst"))) {
    5487    INST = TRUE;
     88    remove_argument (N, &argc, argv);
     89  }
     90
     91  SHOW_MASKS = FALSE;
     92  if ((N = get_argument (argc, argv, "-masks"))) {
     93    SHOW_MASKS = TRUE;
    5594    remove_argument (N, &argc, argv);
    5695  }
     
    305344      }
    306345      if (GetMeasures || SaveVectors) {
     346
     347        if (catalog.average[k].Nmeasure == 0) continue;
     348
    307349        m = catalog.average[k].measureOffset;
     350
     351        int *index = NULL;
     352        float *value = NULL;
     353        ALLOCATE (index, int, catalog.average[k].Nmeasure);
     354        ALLOCATE (value, float, catalog.average[k].Nmeasure);
     355        for (j = 0; j < catalog.average[k].Nmeasure; j++) {
     356          index[j] = j + m;
     357          switch (sortCode) {
     358            case GSTAR_BY_SEQ:
     359              value[j] = j + m;
     360              break;
     361            case GSTAR_BY_PHOTCODE:
     362              value[j] = catalog.measure[j + m].photcode;
     363              break;
     364            case GSTAR_BY_TIME:
     365              value[j] = catalog.measure[j + m].t;
     366              break;
     367          }
     368        }
     369
     370        sort_index_float (value, index, catalog.average[k].Nmeasure);
     371
    308372        for (j = 0; j < catalog.average[k].Nmeasure; j++, m++) {
    309373
    310           Mcat = PhotCat (&catalog.measure[m]);
     374          int Nv = index[j];
     375
     376          Mcat = PhotCat (&catalog.measure[Nv]);
    311377          if (INST) {
    312             Mrel = PhotInst (&catalog.measure[m]);
     378            Mrel = PhotInst (&catalog.measure[Nv]);
    313379          } else {
    314             Mrel = PhotRel (&catalog.measure[m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);
     380            Mrel = PhotRel (&catalog.measure[Nv], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);
    315381          }
    316382
    317383          if (GetMeasures && !QUIET) {
    318             date = ohana_sec_to_date (catalog.measure[m].t);
     384            date = ohana_sec_to_date (catalog.measure[Nv].t);
    319385            gprint (GP_LOG, "%6.3f ",  Mcat);
    320386            gprint (GP_LOG, "%6.3f ",  Mrel);
    321             gprint (GP_LOG, "%5.3f  ", catalog.measure[m].dM);
     387            gprint (GP_LOG, "%6.3f  ", catalog.measure[Nv].dM);
    322388            gprint (GP_LOG, "%20s  ",  date);
    323             gprint (GP_LOG, "%7.4f ",  catalog.measure[m].dR);
    324             gprint (GP_LOG, "%7.4f ",  catalog.measure[m].dD);
    325             gprint (GP_LOG, "0x%08x ", catalog.measure[m].photFlags);
    326             gprint (GP_LOG, "0x%08x ", catalog.measure[m].dbFlags);
    327             gprint (GP_LOG, "%5d ",    catalog.measure[m].photcode);
    328             gprint (GP_LOG, "%-20s ",  GetPhotcodeNamebyCode (catalog.measure[m].photcode));
    329             gprint (GP_LOG, "%5.2f ",  FromShortPixels(catalog.measure[m].FWx));
    330             gprint (GP_LOG, "%5.2f ",  FromShortPixels(catalog.measure[m].FWy));
     389            gprint (GP_LOG, "%7.4f ",  catalog.measure[Nv].dR);
     390            gprint (GP_LOG, "%7.4f ",  catalog.measure[Nv].dD);
     391            gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].photFlags);
     392            gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].dbFlags);
     393            if (SHOW_MASKS) {
     394              gprint (GP_LOG, "%5d ",    catalog.measure[Nv].photcode);
     395              PhotCode *code = GetPhotcodebyCode (catalog.measure[Nv].photcode);
     396              int badMask = 0;
     397              int poorMask = 0;
     398              if (code) {
     399                badMask = catalog.measure[Nv].photFlags & code->photomBadMask;
     400                poorMask = catalog.measure[Nv].photFlags & code->photomPoorMask;
     401              }
     402              gprint (GP_LOG, "0x%08x ", poorMask);
     403              gprint (GP_LOG, "0x%08x ", badMask);
     404            }
     405            gprint (GP_LOG, "%5d ",    catalog.measure[Nv].photcode);
     406            gprint (GP_LOG, "%-20s ",  GetPhotcodeNamebyCode (catalog.measure[Nv].photcode));
     407            gprint (GP_LOG, "%5.2f ",  FromShortPixels(catalog.measure[Nv].FWx));
     408            gprint (GP_LOG, "%5.2f ",  FromShortPixels(catalog.measure[Nv].FWy));
    331409
    332410            if (FULL_OUTPUT) {
    333                 gprint (GP_LOG, "%6.3f ", catalog.measure[m].Mcal);
    334                 gprint (GP_LOG, "%6.3f ", catalog.measure[m].Map);
    335                 gprint (GP_LOG, "%6.3f ", catalog.measure[m].Mkron);
    336                 gprint (GP_LOG, "%6.3f ", catalog.measure[m].dMkron);
    337                 gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[m].dt));
    338                 gprint (GP_LOG, "%5.3f ", catalog.measure[m].airmass);
    339                 gprint (GP_LOG, "%6.1f ", catalog.measure[m].az);
    340                 gprint (GP_LOG, "%6.1f ", catalog.measure[m].Xccd);
    341                 gprint (GP_LOG, "%6.1f ", catalog.measure[m].Yccd);
    342                 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[m].dXccd));
    343                 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[m].dYccd));
    344                 gprint (GP_LOG, "%6.1f ", catalog.measure[m].Sky);
    345                 gprint (GP_LOG, "%5.1f ", catalog.measure[m].dSky);
    346                 gprint (GP_LOG, "%8d ", catalog.measure[m].averef);
    347                 gprint (GP_LOG, "0x%08x ", catalog.measure[m].detID);
    348                 gprint (GP_LOG, "0x%08x ", catalog.measure[m].imageID);
    349                 gprint (GP_LOG, "%.3f ", catalog.measure[m].psfQF);
    350                 gprint (GP_LOG, "%.1f ", catalog.measure[m].psfChisq);
    351                 gprint (GP_LOG, "%.1f ", catalog.measure[m].crNsigma);
    352                 gprint (GP_LOG, "%.1f ", catalog.measure[m].extNsigma);
    353                 gprint (GP_LOG, "%.1f ", FromShortDegrees(catalog.measure[m].theta));
     411                gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mcal);
     412                gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Map);
     413                gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mkron);
     414                gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].dMkron);
     415                gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[Nv].dt));
     416                gprint (GP_LOG, "%5.3f ", catalog.measure[Nv].airmass);
     417                gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].az);
     418                gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Xccd);
     419                gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Yccd);
     420                gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[Nv].dXccd));
     421                gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[Nv].dYccd));
     422                gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Sky);
     423                gprint (GP_LOG, "%5.1f ", catalog.measure[Nv].dSky);
     424                gprint (GP_LOG, "%8d ", catalog.measure[Nv].averef);
     425                gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].detID);
     426                gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].imageID);
     427                gprint (GP_LOG, "%.3f ", catalog.measure[Nv].psfQF);
     428                gprint (GP_LOG, "%.1f ", catalog.measure[Nv].psfChisq);
     429                gprint (GP_LOG, "%.1f ", catalog.measure[Nv].crNsigma);
     430                gprint (GP_LOG, "%.1f ", catalog.measure[Nv].extNsigma);
     431                gprint (GP_LOG, "%.1f ", FromShortDegrees(catalog.measure[Nv].theta));
    354432            }
    355433            if (STACK_OUTPUT) {
    356                 gprint (GP_LOG, "%10.3e ", catalog.measure[m].FluxPSF);
    357                 gprint (GP_LOG, "%10.3e ", catalog.measure[m].dFluxPSF);
    358                 gprint (GP_LOG, "%10.3e ", catalog.measure[m].FluxKron);
    359                 gprint (GP_LOG, "%10.3e ", catalog.measure[m].dFluxKron);
     434                gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxPSF);
     435                gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxPSF);
     436                gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxKron);
     437                gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxKron);
    360438            }
    361439            gprint (GP_LOG, "\n");
     
    366444          if (SaveVectors) {
    367445            vec1[0].elements.Flt[N] = Mcat;
    368             vec2[0].elements.Flt[N] = TimeValue (catalog.measure[m].t, TimeReference, TimeFormat);
    369             vec3[0].elements.Flt[N] = catalog.measure[m].airmass;
    370             vec4[0].elements.Flt[N] = catalog.measure[m].photcode;
    371             vec5[0].elements.Flt[N] = catalog.measure[m].dR;
    372             vec6[0].elements.Flt[N] = catalog.measure[m].dD;
     446            vec2[0].elements.Flt[N] = TimeValue (catalog.measure[Nv].t, TimeReference, TimeFormat);
     447            vec3[0].elements.Flt[N] = catalog.measure[Nv].airmass;
     448            vec4[0].elements.Flt[N] = catalog.measure[Nv].photcode;
     449            vec5[0].elements.Flt[N] = catalog.measure[Nv].dR;
     450            vec6[0].elements.Flt[N] = catalog.measure[Nv].dD;
    373451            N ++;
    374452            if (N == NPTS - 1) {
     
    383461          }
    384462        }
     463        free (value);
     464        free (index);
    385465      }
    386466    }
  • branches/eam_branches/ipp-20121219/Ohana/src/relastro/src/BrightCatalog.c

    r34898 r34901  
    346346    gfits_define_bintable_column (&theader, "E", "MAG_ERR",  "magnitude (err)",             NULL,    1.0, 0.0);
    347347    gfits_define_bintable_column (&theader, "E", "AIRMASS",  "airmass",                     NULL,    1.0, 0.0);
    348     gfits_define_bintable_column (&theader, "E", "X_CCD",    "ccd x coord",                "pix",    1.0, 0.0);
    349     gfits_define_bintable_column (&theader, "E", "Y_CCD",    "ccd y coord",                "pix",    1.0, 0.0);
     348    gfits_define_bintable_column (&theader, "E", "X_CCD",    "ccd x raw coord",            "pix",    1.0, 0.0);
     349    gfits_define_bintable_column (&theader, "E", "Y_CCD",    "ccd y raw coord",            "pix",    1.0, 0.0);
     350    gfits_define_bintable_column (&theader, "E", "X_FIX",    "ccd x fixed coord",          "pix",    1.0, 0.0);
     351    gfits_define_bintable_column (&theader, "E", "Y_FIX",    "ccd y fiex coord",           "pix",    1.0, 0.0);
    350352    gfits_define_bintable_column (&theader, "E", "EXPTIME",  "-2.5 * log (exposure time)", "sec",    1.0, 0.0);
    351353    gfits_define_bintable_column (&theader, "J", "TIME",     "time of exp",                "sec",    1.0, 1.0*0x8000);
     
    467469    gfits_define_bintable_column (&theader, "J", "MEAN_EPOCH",  "mean epoch (PM-PAR ref)",                                "", 1.0, 1.0*0x8000);
    468470    gfits_define_bintable_column (&theader, "J", "TIME_RANGE",  "mean epoch (PM-PAR ref)",                                "", 1.0, 1.0*0x8000);
    469     gfits_define_bintable_column (&theader, "E", "SIGMA_POS",   "position scatter",                                       "", 1.0, 0.0);   
     471    gfits_define_bintable_column (&theader, "E", "STARGAL_SEP", "star/galaxy separator",                                  "", 1.0, 0.0);   
    470472    gfits_define_bintable_column (&theader, "I", "NUMBER_POS",  "number of detections used for astrometry",               "", 1.0, 1.0*0x80);
    471473    gfits_define_bintable_column (&theader, "I", "NMEASURE",    "number of psf measurements",                             "", 1.0, 1.0*0x80);
  • branches/eam_branches/ipp-20121219/Ohana/src/relastro/src/ImageOps.c

    r34898 r34901  
    178178        int found = FALSE;
    179179        for (k = 0; (k < NphotcodesSkip) && !found; k++) {
    180           if (photcodesSkip[k][0].code == catalog[i].measure[j].photcode) found = TRUE;
    181           if (photcodesSkip[k][0].code == GetPhotcodeEquivCodebyCode(catalog[i].measure[j].photcode)) found = TRUE;
     180          if (photcodesSkip[k][0].code == catalog[i].measureT[j].photcode) found = TRUE;
     181          if (photcodesSkip[k][0].code == GetPhotcodeEquivCodebyCode(catalog[i].measureT[j].photcode)) found = TRUE;
    182182        }
    183183        if (found) continue;
Note: See TracChangeset for help on using the changeset viewer.