IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6239


Ignore:
Timestamp:
Jan 29, 2006, 9:11:01 AM (20 years ago)
Author:
eugene
Message:

moved image lock/unlock to libdvo; adding additional options

Location:
trunk/Ohana/src/getstar
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/getstar/include/getstar.h

    r4828 r6239  
    22# include <dvo.h>
    33# include <signal.h>
     4
     5enum {
     6  BY_NOTHING,
     7  BY_REGION,
     8  BY_RADIUS,
     9  BY_CATALOG,
     10  BY_IMAGE,
     11  BY_IMMATCH,
     12};
    413
    514typedef struct {
     
    1726
    1827/* global variables set in parameter file */
     28# if (0)
    1929char   ImageCat[256];
    2030char   ImageTemplate[256];
     
    2636double DEFAULT_RADIUS, NSIGMA, SNLIMIT;
    2737double ZeroPt;
    28 int    VERBOSE;
    2938int    SKIP_MISSED;
    3039int    XOVERSCAN, YOVERSCAN;
    3140int    XMIN, XMAX, YMIN, YMAX;
    3241int    ACCEPT_ASTROM;
     42# endif
     43
     44int    VERBOSE;
     45int    MODE;
     46SkyRegion REGION;
     47char *IMAGENAME;
    3348
    3449PhotCode *thiscode;
  • trunk/Ohana/src/getstar/src/args.c

    r2490 r6239  
    22
    33void help () {
    4   fprintf (stderr, "USAGE: getstar (file) (output)\n");
     4  fprintf (stderr, "USAGE: \n"
     5           "getstar -region ra dec ra dec\n"
     6           "getstar -radius ra dec radius\n"
     7           "getstar -catalog n0000/0000.cpt\n"
     8           "getstar -image name\n"
     9           "getstar -immatch partial-name\n\n"
     10           "other options:\n"
     11           " -smf  (file)    : return smf file (-image only)\n"
     12           " -smp (file)     : return smp file (-image only)\n"
     13           " -meas (file)    : return measurements\n"
     14           " -aves (file)    : return average / secfilt table *default*\n"
     15           " -imtable (file) : return image table\n");
    516  exit (2);
    617}
     
    2637  }
    2738
    28   if (argc != 3) help ();
     39  /* parse optional entries above. one of the options below is required */
     40  MODE = BY_NOTHING;
     41  if ((N = get_argument (argc, argv, "-region"))) {
     42    double R, D;
     43    MODE = BY_REGION;
     44    remove_argument (N, &argc, argv);
     45    if (argc != 5) help();
     46    str_to_radec (&R, &D, argv[N+0], argv[N+1]);
     47    REGION.Rmin = R;
     48    REGION.Dmin = D;
     49    remove_argument (N, &argc, argv);
     50    remove_argument (N, &argc, argv);
    2951
     52    str_to_radec (&R, &D, argv[N+0], argv[N+1]);
     53    REGION.Rmax = R;
     54    REGION.Dmax = D;
     55    remove_argument (N, &argc, argv);
     56    remove_argument (N, &argc, argv);
     57  }
     58  if ((N = get_argument (argc, argv, "-radius"))) {
     59    double R, D, radius;
     60    fprintf (stderr, "-radius is not recommended\n");
     61    MODE = BY_RADIUS;
     62    remove_argument (N, &argc, argv);
     63    if (argc != 4) help();
     64    str_to_radec (&R, &D, argv[N+0], argv[N+1]);
     65    radius = atof(argv[N+2]);
     66    REGION.Rmin = R - radius / cos(D*RAD_DEG);
     67    REGION.Dmin = D - radius;
     68    REGION.Rmax = R + radius / cos(D*RAD_DEG);
     69    REGION.Dmax = D + radius;
     70    remove_argument (N, &argc, argv);
     71    remove_argument (N, &argc, argv);
     72    remove_argument (N, &argc, argv);
     73  }
     74  if ((N = get_argument (argc, argv, "-catalog"))) {
     75    fprintf (stderr, "-catalog is not implemented\n");
     76    exit (2);
     77    MODE = BY_CATALOG;
     78    remove_argument (N, &argc, argv);
     79    if (argc != 2) help();
     80  }
     81  if ((N = get_argument (argc, argv, "-image"))) {
     82    MODE = BY_IMAGE;
     83    remove_argument (N, &argc, argv);
     84    IMAGENAME = strcreate (argv[N]);
     85    if (argc != 2) help();
     86  }
     87  if ((N = get_argument (argc, argv, "-immatch"))) {
     88    MODE = BY_IMMATCH;
     89    remove_argument (N, &argc, argv);
     90    IMAGENAME = strcreate (argv[N]);
     91    if (argc != 2) help();
     92  }
     93  if (MODE == BY_NOTHING) help ();
    3094}
    3195
     96
     97/* USAGE
     98
     99getstar -region ra dec ra dec
     100getstar -radius ra dec radius
     101getstar -catalog n0000/0000.cpt
     102getstar -image name [-smp | -smf]
     103getstar -immatch partial-name [-smp | -smf]
     104   
     105* return measurements
     106* return average / secfilt table
     107* return a single image (smf/smp format)
     108
     109*/
  • trunk/Ohana/src/getstar/src/getstar.c

    r2490 r6239  
    1010 
    1111  args (argc, argv);
     12  set_db (&db);
     13
     14  Nstars = 0;
     15  stars = NULL;
     16
     17  switch (MODE) {
     18
     19    case BY_REGION:
     20    case BY_RADIUS:
     21
     22      /* load corresponding sky regions, associated images */
     23      status = dvo_image_lock (&db, ImageCat, 60.0, LCK_SOFT);
     24      if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
     25
     26      skylist = SkyListByPatch (sky, -1, &REGION);
     27      overlap = gimages (&db, &image, MOSAIC, &Noverlap);
     28      dvo_image_unlock (&db);
     29
     30      for (i = 0; i < skylist[0].Nregions; i++) {
     31         
     32          catalog.filename = skylist[0].filename[i];
     33          load_pt_catalog (&catalog, skylist[0].regions[i]);
     34          unlock_catalog (&catalog);
     35
     36          /* skip empty catalogs */
     37          if (catalog.Nave_disk == 0) continue;
     38
     39          stars = find_matches (&catalog, &image, 0, 0, stars, &Nstars);
     40
     41      break;
     42
     43    case BY_CATALOG:
     44      /* not implemented */
     45      break;
     46
     47    case BY_IMAGE:
     48
     49      break;
     50
     51    case BY_IMLIST:
     52
     53      break;
     54  }
    1255
    1356  image = gimages (argv[1]);
  • trunk/Ohana/src/getstar/src/gimages.c

    r4864 r6239  
    11# include "getstar.h"
    22
    3 Image *gimages (char *filename) {
     3/* return image or images which match the name */
     4Image *gimages (char *filename, int *Nfound, int exact) {
    45 
    56  int i, size, Nimage, nimage;
     
    1112 
    1213  set_db (&db);
    13   lock_image_db (&db, ImageCat);
     14  dvo_image_lock (&db, ImageCat);
    1415  if (db[0].dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db[0].filename);
    15   if (!dvo_image_load (db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db[0].filename);
     16
     17  status = dvo_image_load (db, VERBOSE, FALSE);
     18  if (!status) Shutdown ("can't read image catalog %s", db[0].filename);
     19
    1620  timage = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
    17   unlock_image_db (&db, ImageCat);
     21  dvo_image_unlock (&db, ImageCat);
    1822
    1923  fits_scan (&header, "ZERO_PT", "%lf", 1, &zeropt);
Note: See TracChangeset for help on using the changeset viewer.