IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 8514


Ignore:
Timestamp:
Aug 23, 2006, 10:31:27 AM (20 years ago)
Author:
eugene
Message:

conversion to new DVO APIs, removed old kruft

Location:
trunk/Ohana/src/gastro
Files:
2 added
5 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/gastro/Makefile

    r8299 r8514  
    2626$(SRC)/gstars.$(ARCH).o \
    2727$(SRC)/gargs.$(ARCH).o \
    28 $(SRC)/gregions2.$(ARCH).o \
    29 $(SRC)/gcatalog.$(ARCH).o \
    3028$(SRC)/gcenter.$(ARCH).o \
    3129$(SRC)/granges.$(ARCH).o \
     
    4038$(SRC)/greference.$(ARCH).o \
    4139$(SRC)/getusno.$(ARCH).o \
     40$(SRC)/getgsc.$(ARCH).o \
     41$(SRC)/getptolemy.$(ARCH).o \
    4242$(SRC)/plotstuff.$(ARCH).o \
    43 $(SRC)/gptolemy.$(ARCH).o \
    44 $(SRC)/g2mass.$(ARCH).o \
    4543$(SRC)/misc.$(ARCH).o
     44
     45#$(SRC)/gregions2.$(ARCH).o \
     46#$(SRC)/gcatalog.$(ARCH).o \
     47#$(SRC)/gptolemy.$(ARCH).o \
     48#$(SRC)/g2mass.$(ARCH).o \
    4649
    4750gastro: $(BIN)/gastro.$(ARCH)
  • trunk/Ohana/src/gastro/include/gastro.h

    r4828 r8514  
    4444double F_DEC;
    4545
    46 char GSCFILE[256], GSC_DIR[256], LONEOS_REGION_FILE[256];
     46char GSCFILE[256], GSCDIR[256], LONEOS_REGION_FILE[256];
    4747double ASEC_PIX;
    4848char ROUGH_ASTROMETRY[64];
     
    8080} USNOstats;
    8181
    82 typedef struct {
    83   char name[10];
    84   double RA[2], DEC[2];
    85 } CatalogRegion;
    86 
    8782/*  this seems to be a problem: is not included from math.h with the -ansi flag */
    8883extern double hypot PROTO((double, double));
    8984
    90 char    **find_dec_bands      PROTO((CatalogRegion area, char **names, int *Nnames));
    91 char    **gregions            PROTO((CatStats *catstats, int *nnames));
    92 char    **load_ra_blocks      PROTO((int Ndec, CatalogRegion area, char **names, int *Ntnames));
    93 SStars   *get_catalog_stars   PROTO((double *, double *, double *, int, double, double, double, double, int *));
    94 SStars   *get_stars           PROTO((char *, int *));
     85SStars   *getptolemy          PROTO((CatStats *catstats, int *NSTARS));
     86SStars   *getgsc              PROTO((CatStats *catstats, int *NSTARS));
    9587USNOdata *getusno             PROTO((USNOstats *usnostats, CatStats *catstats, int *Nusno));
    9688SStars   *gstars              PROTO((char *file, int *NSTARS, Coords *coords, int *NX, int *NY, double *dNdM));
     
    10193void      PrepPlotting        PROTO((int Npts, Graphdata *graphmode, int N));
    10294void      XDead               PROTO(());
    103 void      ahelp               PROTO(());
    10495void      alter_header        PROTO((char *, char **, int, double, double, double, double, double, double, double, double, int));
    10596void      area_of_region      PROTO((CatStats *region));
    106 void      args                PROTO((int *, char **));
    10797void      define_region       PROTO((CatStats *catstats, Coords *coords, int NX, int NY));
    108 void      delta               PROTO((SStars *, SStars *, int, int, double *, double *, double *, double *));
    109 int       dms_to_ddd          PROTO((double *Value, char *string));
    110 void      extract_catalog     PROTO((char *, double **, double **, double **, int *));
    11198void      find_shift          PROTO((SStars *, SStars *, int, int, double, double, int *, double *, double *, double *));
    112 int       g2mass              PROTO((char *fullpath, SStars **stars, int *Nstars));
    11399void      gargs               PROTO((int *argc, char **argv, Coords *coords));
    114100int       gaussj              PROTO((double **a, int n, double **b, int m));
    115 int       gcatalog            PROTO((char *filename, SStars **stars, int *Nstars));
    116101int       gcenter             PROTO((SStars *stars1in, SStars *stars2, int N1, int N2, Coords *coords, int NX, int NY, double *dR));
    117102int       get_region_coords   PROTO((double *ra, double *dec, int rnumber, char *side));
     
    120105void      gheader             PROTO((char *file, Coords coords, double dR, int Nmatch));
    121106void      gproject            PROTO((SStars *catalog, SStars **stars, int Ncat, int *Nstars, Coords *coords, int NX, int NY, double dNdM, int N1));
    122 int       gptolemy            PROTO((char *fullpath, SStars **stars, int *Nstars));
    123107void      granges             PROTO((SStars *stars1, SStars *stars2, int N1, int N2, int NPIX, double *gx, double *gy, double *gx0, double *gy0));
    124108int       greference          PROTO((SStars **cat, int *Ncat, Coords *coords, int NX, int NY));
     
    129113int       mk_vector           PROTO((int n, int m, int norder));
    130114int       open_graph          PROTO((int N));
    131 int       parse_GSC_line      PROTO((CatalogRegion *region, char *line));
    132115void      precess             PROTO((double *, double *, double, double));
    133 void      ralter_header       PROTO((char *, char *, double, double, double, double, double, double, double, double, int));
    134116void      ranges              PROTO((SStars *, SStars *, int, int, double *, double *, double *, double *, double, double));
    135 void      rargs               PROTO((int *, char **));
    136117void      rotate              PROTO((SStars *stars, int Nstars, double angle, int Xo, int Yo));
    137118void      sort_stars          PROTO((SStars *stars, int N));
    138119void      sort_lists          PROTO((double *X, double *Y, int *S, int N));
    139120void      stats               PROTO((char *, double *, double *, double *, double *, double));
    140 int       str_to_radec        PROTO((double *ra, double *dec, char *str1, char *str2));
    141 void      svd                 PROTO((double ** matrix, int N, double **vector, int M));
    142 void      svdcmp              PROTO((double **a, int m, int n, double **w, double **v));
  • trunk/Ohana/src/gastro/src/ConfigInit.c

    r4828 r8514  
    1515  if (VERBOSE) fprintf (stderr, "loaded config file: %s\n", file);
    1616
    17   ScanConfig (config, "OFFSET_RADIUS",     "%lf", 0, &SEARCH_RADIUS);
    18   ScanConfig (config, "MIN_MATCHES",       "%d",  0, &MIN_MATCHES);
    19   ScanConfig (config, "DEFAULT_RADIUS",    "%lf", 0, &DEFAULT_RADIUS);
    20   ScanConfig (config, "MINIMUM_RADIUS",    "%lf", 0, &MINIMUM_RADIUS);
    21   ScanConfig (config, "MAX_ERROR",         "%lf", 0, &MAX_ERROR);
    22   ScanConfig (config, "MAX_NONLINEAR",     "%lf", 0, &MAX_NONLINEAR);
    23   ScanConfig (config, "MAX_PRECISE",       "%lf", 0, &MIN_PRECISE);
    24   ScanConfig (config, "CCD_PC1_1",         "%lf", 0, &CCD_PC1_1);
    25   ScanConfig (config, "CCD_PC2_2",         "%lf", 0, &CCD_PC2_2);
    26   ScanConfig (config, "CCD_PC1_2",         "%lf", 0, &CCD_PC1_2);
    27   ScanConfig (config, "CCD_PC2_1",         "%lf", 0, &CCD_PC2_1);
    28   ScanConfig (config, "ASEC_PIX",          "%lf", 0, &ASEC_PIX);
    29   ScanConfig (config, "NFIELD",            "%lf", 0, &NFIELD);
    30   ScanConfig (config, "NPOLYTERMS",        "%d",  0, &NPOLYTERMS);
    31   ScanConfig (config, "MMIN",              "%lf", 0, &MMIN);
    32   ScanConfig (config, "ROT_ZERO",          "%lf", 0, &ROT_ZERO);
    33   ScanConfig (config, "dROT",              "%lf", 0, &dROT);
    34   ScanConfig (config, "NROT",              "%d",  0, &NROT);
    35   ScanConfig (config, "POLAR_ALIGNMENT",   "%d",  0, &POLAR_ALIGNMENT);
    36   ScanConfig (config, "GSCFILE",           "%s",  0, GSCFILE);
    37   ScanConfig (config, "GSCDIR",            "%s",  0, GSC_DIR);
    38   ScanConfig (config, "POLAR_AXIS_RA",     "%lf", 0, &POLE_RA);
    39   ScanConfig (config, "POLAR_AXIS_DEC",    "%lf", 0, &POLE_DEC);
    40   ScanConfig (config, "RA_OFFSET",         "%lf", 0, &RA_OFFSET);
    41   ScanConfig (config, "DEC_OFFSET",        "%lf", 0, &DEC_OFFSET);
    42   ScanConfig (config, "LONEOS_REGIONS",    "%s",  0, LONEOS_REGION_FILE);
    43   ScanConfig (config, "USNO_CDROM",        "%s",  0, CDROM);
    44   ScanConfig (config, "ASTRO_REFCAT",      "%s",  0, REFCAT);
    45   ScanConfig (config, "CATDIR",            "%s",  0, CATDIR);
    46   ScanConfig (config, "CATMODE",                "%s",  0, CATMODE);
    47   ScanConfig (config, "CATFORMAT",              "%s",  0, CATFORMAT);
    48   ScanConfig (config, "ROUGH_ASTROMETRY",  "%s",  0, ROUGH_ASTROMETRY);
    49   ScanConfig (config, "PHOTCODE_FILE",     "%s",  0, PhotCodeFile);
     17  ScanConfig (config, "OFFSET_RADIUS",     "%lf", 0, &SEARCH_RADIUS);   // max allowed offset in gcenter
     18  ScanConfig (config, "MIN_MATCHES",       "%d",  0, &MIN_MATCHES);     // min allowed fitted stars
     19  ScanConfig (config, "DEFAULT_RADIUS",    "%lf", 0, &DEFAULT_RADIUS);  // starting radius for matched fit
     20  ScanConfig (config, "MINIMUM_RADIUS",    "%lf", 0, &MINIMUM_RADIUS);  // min allowed radius for matched fit
     21  ScanConfig (config, "MAX_ERROR",         "%lf", 0, &MAX_ERROR);       // max allowed error for valid solution
     22  ScanConfig (config, "MAX_NONLINEAR",     "%lf", 0, &MAX_NONLINEAR);   // max allowed shear |(11*22 - 12*21) / (L1*L2)|
     23  ScanConfig (config, "CCD_PC1_1",         "%lf", 0, &CCD_PC1_1);       // guess if WCS is missing
     24  ScanConfig (config, "CCD_PC2_2",         "%lf", 0, &CCD_PC2_2);       // guess if WCS is missing
     25  ScanConfig (config, "CCD_PC1_2",         "%lf", 0, &CCD_PC1_2);       // guess if WCS is missing
     26  ScanConfig (config, "CCD_PC2_1",         "%lf", 0, &CCD_PC2_1);       // guess if WCS is missing
     27  ScanConfig (config, "ASEC_PIX",          "%lf", 0, &ASEC_PIX);        // guess if WCS is missing
     28  ScanConfig (config, "NFIELD",            "%lf", 0, &NFIELD);          // search region in field units
     29  ScanConfig (config, "NPOLYTERMS",        "%d",  0, &NPOLYTERMS);      // fit order
     30  ScanConfig (config, "ROT_ZERO",          "%lf", 0, &ROT_ZERO);        // rotation search region
     31  ScanConfig (config, "dROT",              "%lf", 0, &dROT);            // rotation search region
     32  ScanConfig (config, "NROT",              "%d",  0, &NROT);            // rotation search region
     33  ScanConfig (config, "POLAR_ALIGNMENT",   "%d",  0, &POLAR_ALIGNMENT); // apply polar alignment correction
     34  ScanConfig (config, "POLAR_AXIS_RA",     "%lf", 0, &POLE_RA);         // true coords of pole (should be HA, not RA)
     35  ScanConfig (config, "POLAR_AXIS_DEC",    "%lf", 0, &POLE_DEC);        // true coords of pole
     36  ScanConfig (config, "RA_OFFSET",         "%lf", 0, &RA_OFFSET);       // ?? not well defined (should be euler angle)
     37  ScanConfig (config, "DEC_OFFSET",        "%lf", 0, &DEC_OFFSET);      // ?? not well defined (should be euler angle)
     38  ScanConfig (config, "LONEOS_REGIONS",    "%s",  0, LONEOS_REGION_FILE); // table of LONEOS regions to fix guess astrometry
    5039
    51   if (*CATMODE == 0) strcpy (CATMODE, "RAW");
    52   if (*CATFORMAT == 0) strcpy (CATFORMAT, "ELIXIR");
     40  ScanConfig (config, "GSCFILE",           "%s",  0, GSCFILE);          // location of sky table
     41  ScanConfig (config, "GSCDIR",            "%s",  0, GSCDIR);           // location of HST GSC data
     42  ScanConfig (config, "USNO_CDROM",        "%s",  0, CDROM);            // location of USNO A data (USNO_A_DIR in gastro2)
     43  ScanConfig (config, "ASTRO_REFCAT",      "%s",  0, REFCAT);           // which astrometry catalog to use
     44  ScanConfig (config, "CATDIR",            "%s",  0, CATDIR);           // location of ptolemy-format ref data
     45  ScanConfig (config, "ROUGH_ASTROMETRY",  "%s",  0, ROUGH_ASTROMETRY); // where to get initial guess (header, config)
     46  ScanConfig (config, "PHOTCODE_FILE",     "%s",  0, PhotCodeFile);     // location of photcode table to convert supplied photcode
    5347
    5448  if (strcasecmp (ROUGH_ASTROMETRY, "header") &&
  • trunk/Ohana/src/gastro/src/greference.c

    r2435 r8514  
    66int greference (SStars **cat, int *Ncat, Coords *coords, int NX, int NY) {
    77
    8   char **regions;
    9   int  i, Nregions, Nusno;
     8  int  i;
    109  CatStats catstats;
    11   USNOstats usnostats;
    12   USNOdata *usno;
    1310
    1411  if (VERBOSE) fprintf (stderr, "\nloading astrometric reference data from %s\n", REFCAT);
     
    1714
    1815  define_region (&catstats, coords, NX, NY);
     16  ALLOCATE (*cat, SStars, 1);
    1917
    2018  /* get stars from the USNO catalog for the given region */
     
    2725    /* if RA crosses 0,360 boundary, do 2 passes */
    2826    if (catstats.RA[0] > catstats.RA[1]) {
    29         CatStats substats;
    30         USNOdata *usno1, *usno2;
    31         int Nusno1, Nusno2;
     27      int Nusno1, Nusno2;
     28      USNOdata *usno1, *usno2;
     29      USNOstats usnostats;
     30      CatStats substats;
    3231
    33         substats = catstats;
    34         substats.RA[0] = 0.0;
    35         usno1 = getusno (&usnostats, &substats, &Nusno1);
     32      substats = catstats;
     33      substats.RA[0] = 0.0;
     34      usno1 = getusno (&usnostats, &substats, &Nusno1);
    3635
    37         substats = catstats;
    38         substats.RA[1] = 360.0;
    39         usno2 = getusno (&usnostats, &substats, &Nusno2);
     36      substats = catstats;
     37      substats.RA[1] = 360.0;
     38      usno2 = getusno (&usnostats, &substats, &Nusno2);
    4039
    41         ALLOCATE (*cat, SStars, MAX (Nusno1 + Nusno2, 1));
    42         for (i = 0; i < Nusno1; i++) {
    43           cat[0][i].X = usno1[i].R;
    44           cat[0][i].Y = usno1[i].D;
    45           cat[0][i].mag = fabs(usno1[i].r);
    46         }     
    47         for (i = Nusno1; i < Nusno2; i++) {
    48           cat[0][i].X = usno2[i].R;
    49           cat[0][i].Y = usno2[i].D;
    50           cat[0][i].mag = fabs(usno2[i].r);
    51         }     
    52         *Ncat = Nusno1 + Nusno2;
    53         free (usno1);
    54         free (usno2);
     40      REALLOCATE (*cat, SStars, MAX (Nusno1 + Nusno2, 1));
     41      for (i = 0; i < Nusno1; i++) {
     42        cat[0][i].X = usno1[i].R;
     43        cat[0][i].Y = usno1[i].D;
     44        cat[0][i].mag = fabs(usno1[i].r);
     45      }     
     46      for (i = Nusno1; i < Nusno2; i++) {
     47        cat[0][i].X = usno2[i].R;
     48        cat[0][i].Y = usno2[i].D;
     49        cat[0][i].mag = fabs(usno2[i].r);
     50      }     
     51      *Ncat = Nusno1 + Nusno2;
     52      free (usno1);
     53      free (usno2);
    5554    } else {
    56         usno = getusno (&usnostats, &catstats, &Nusno);
     55      int Nusno;
     56      USNOdata *usno;
     57      USNOstats usnostats;
    5758
    58         ALLOCATE (*cat, SStars, MAX (Nusno, 1));
    59         for (i = 0; i < Nusno; i++) {
    60           cat[0][i].X = usno[i].R;
    61           cat[0][i].Y = usno[i].D;
    62           cat[0][i].mag = fabs(usno[i].r);
    63         }     
    64         *Ncat = Nusno;
    65         free (usno);
     59      usno = getusno (&usnostats, &catstats, &Nusno);
     60
     61      REALLOCATE (*cat, SStars, MAX (Nusno, 1));
     62      for (i = 0; i < Nusno; i++) {
     63        cat[0][i].X = usno[i].R;
     64        cat[0][i].Y = usno[i].D;
     65        cat[0][i].mag = fabs(usno[i].r);
     66      }     
     67      *Ncat = Nusno;
     68      free (usno);
    6669    }
    6770    if (VERBOSE) fprintf (stderr, "%d stars from USNO 1.0\n", *Ncat);
     
    6972
    7073  if (!strcmp (REFCAT, "GSC") || !strcmp (REFCAT, "BOTH")) {
    71     regions = gregions (&catstats, &Nregions);
    72     for (i = 0; i < Nregions; i++) {
    73       if (!gcatalog (regions[i], cat, Ncat))       
    74         return (FALSE);
     74    int j, Ngsc;
     75    SStars *gsc;
     76
     77    gsc = getgsc (&catstats, &Ngsc);
     78    REALLOCATE (*cat, SStars, MAX (Ngsc + *Ncat, 1));
     79    for (j = *Ncat, i = 0; i < Ngsc; i++) {
     80      cat[0][j] = gsc[i];
    7581    }
    76     if (VERBOSE) fprintf (stderr, "%d stars from HST GSC\n", *Ncat);
     82    if (VERBOSE) fprintf (stderr, "%d stars from HST GSC\n", Ngsc);
     83    *Ncat += Ngsc;
    7784  }
    7885
    7986  if (!strcmp (REFCAT, "PTOLEMY")) {
    80     regions = gregions (&catstats, &Nregions);
    81     for (i = 0; i < Nregions; i++) {
    82       if (!gptolemy (regions[i], cat, Ncat)) continue;
    83     }
     87    free (*cat);
     88    *cat = getptolemy (&catstats, Ncat);
    8489    if (VERBOSE) fprintf (stderr, "%d stars from PTOLEMY\n", *Ncat);
    8590  }
    86 
    87   if (!strcmp (REFCAT, "2MASS")) {
    88     /* this needs to be written to handle the complete 2mass catalog.
    89        at the moment, I only have a small subset */
    90     if (!g2mass ("/data/milo/eugene/elixir/refs/2mass/2mass.dat", cat, Ncat)) exit (1);
    91     if (VERBOSE) fprintf (stderr, "%d stars from 2MASS\n", *Ncat);
    92   }
    93 
    9491  return (TRUE);
    95 
    9692}
    9793
     
    110106      XY_to_RD (&R, &D, X, Y, coords);
    111107      /* coords returns a region all in same phase
    112       while (R < 0.0)    R += 360.0;
    113       while (R >= 360.0) R -= 360.0;
     108        while (R < 0.0)    R += 360.0;
     109        while (R >= 360.0) R -= 360.0;
    114110      */
    115111      catstats[0].RA[0]  = MIN (catstats[0].RA[0], R);
  • trunk/Ohana/src/gastro/src/misc.c

    r2435 r8514  
    3535}
    3636
    37 /***** convert [-]00:00:00 to 0.0000 ****/
    38 int dms_to_ddd (double *Value, char *string) {
    39  
    40   int valid, neg, status;
    41   double tmp, value;
    42   char *p1, *p2, *px;
    43 
    44   valid = FALSE;
    45   neg = FALSE;
    46   stripwhite (string);
    47   p1 = string;
    48   px = string + strlen(string);
    49 
    50   if (string[0] == '-') {
    51     valid = TRUE;
    52     neg = TRUE;
    53     p1 = &string[1];
    54   }
    55   if (string[0] == '+') {
    56     valid = TRUE;
    57     neg = FALSE;
    58     p1 = &string[1];
    59   }
    60   if (isdigit(string[0])) {
    61     valid = TRUE;
    62     p1 = &string[0];
    63   }
    64   if (!valid) { return (FALSE); }
    65 
    66   status = 1;
    67   tmp = strtod (p1, &p2);
    68   if (p2 == p1) return (FALSE); /* entry not a number: +fred */
    69   value = tmp;
    70   if (p2 == px) goto escape;    /* entry only number: +1.0 */
    71   p1 = p2 + 1;
    72 
    73   tmp = strtod (p1, &p2);
    74   if (p2 == p1) goto escape;    /* entry not a number: +1:fred */
    75   status = 2;
    76   value += tmp / 60.0;
    77   if (p2 == px) goto escape;    /* entry only number: +1:1 */
    78   p1 = p2 + 1;
    79 
    80   tmp = strtod (p1, &p2);
    81   if (p2 == p1) goto escape;    /* entry not a number: +1:1:fred */
    82   value += tmp / 3600.0;
    83 
    84  escape:
    85   if (neg) {
    86     value *= -1;
    87   }
    88   *Value = value;
    89 
    90   return (status);
    91 }
    92 
    93 /**********/
    94 int str_to_radec (double *ra, double *dec, char *str1, char *str2) {
    95 
    96   double Ra, Dec;
    97 
    98   *ra = *dec = 0;
    99   switch (dms_to_ddd (&Ra, str1)) {
    100   case 0:
    101     fprintf (stderr, "syntax error in RA\n");
    102     return (FALSE);
    103   case 1:
    104     break;
    105   case 2:
    106     Ra = Ra * 15;
    107     break;
    108   }
    109   switch (dms_to_ddd (&Dec, str2)) {
    110   case 0:
    111     fprintf (stderr, "syntax error in DEC\n");
    112     return (FALSE);
    113   case 1:
    114   case 2:
    115     break;
    116   }
    117   *ra = Ra;
    118   *dec = Dec;
    119   return (TRUE);
    120 }
    121 
    12237void area_of_region (CatStats *region) {
    12338 
Note: See TracChangeset for help on using the changeset viewer.