IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 5, 2006, 5:44:26 PM (20 years ago)
Author:
eugene
Message:

big move: fits_ to gfits_; minor updates to relphot

Location:
trunk/Ohana/src/relphot
Files:
20 edited

Legend:

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

    r6000 r7080  
    2626$(SRC)/liststats.$(ARCH).o       \
    2727$(SRC)/load_images.$(ARCH).o     \
    28 $(SRC)/name_region.$(ARCH).o     \
    29 $(SRC)/find_images.$(ARCH).o     \
    30 $(SRC)/find_regions.$(ARCH).o    \
    31 $(SRC)/get_regions.$(ARCH).o     \
     28$(SRC)/select_images.$(ARCH).o   \
    3229$(SRC)/load_catalogs.$(ARCH).o   \
    3330$(SRC)/gcatalog.$(ARCH).o        \
     
    4441$(SRC)/image-db.$(ARCH).o \
    4542$(SRC)/free_catalogs.$(ARCH).o   \
    46 $(SRC)/check_permissions.$(ARCH).o   \
    4743$(SRC)/setMrelFinal.$(ARCH).o    \
    4844$(SRC)/write_coords.$(ARCH).o    \
     
    5147$(SRC)/SetSignals.$(ARCH).o      \
    5248$(SRC)/wcatalog.$(ARCH).o
     49
     50OLD = \
     51$(SRC)/find_images.$(ARCH).o     \
     52$(SRC)/find_regions.$(ARCH).o    \
     53$(SRC)/get_regions.$(ARCH).o     \
     54$(SRC)/name_region.$(ARCH).o     \
     55$(SRC)/check_permissions.$(ARCH).o
    5356
    5457OBJ = $(RELPHOT)
  • trunk/Ohana/src/relphot/doc/ChangeLog.txt

    r6693 r7080  
     1
     2- relphot-1-4:
     3  * converted to gfits APIs (forces libfits 1.6)
     4  * added time range to time selections
    15
    26- relphot-1-3:
  • trunk/Ohana/src/relphot/doc/notes.txt

    r2486 r7080  
     1
     22006.05.03
     3
     4  I am upgrading relphot to accept as input an arbitrary region (using
     5  the standard ohana SkyRegion concept of a RA & DEC bounded patch on
     6  the sky).  This modification has a few implications.  First, the
     7  analysis is in fact performed on the populated SkyRegions which
     8  overlap the requested area on the sky.
    19
    210- select different calibration options
  • trunk/Ohana/src/relphot/include/relphot.h

    r5998 r7080  
    4747char   CATFORMAT[16];  /* internal, elixir, loneos, panstarrs */
    4848char   CameraConfig[256];
     49char   SKY_TABLE[256];
     50int    SKY_DEPTH;  /** XXX EAM : depth of catalog tables, fix usage */
    4951
    5052double MAG_LIM;
     
    9698time_t TSTART, TSTOP;
    9799
     100SkyRegion UserPatch;
     101int UserPatchSelect;
     102
    98103# ifdef GRID_V1
    99104int setGridMeasure (int meas, int cat, double X, double Y);
     
    111116int          *SelectRefMosaic     PROTO((Mosaic **refmosaic, int *Nimage));
    112117int           args                PROTO((int argc, char **argv));
    113 int           bcatalog            PROTO((Catalog *subcatalog, Catalog *catalog, GSCRegion *fullregion));
     118int           bcatalog            PROTO((Catalog *subcatalog, Catalog *catalog));
    114119void          clean_images        PROTO(());
    115120void          clean_measures      PROTO((Catalog *catalog, int Ncatalog, int final));
     
    122127void          findImages          PROTO((Catalog *catalog, int Ncatalog));
    123128int           findMosaics         PROTO((Catalog *catalog, int Ncatalog));
    124 Image        *find_images         PROTO((FITS_DB *db, GSCRegion *region, int Nregion, int *Nimage, int **LineNum));
     129
    125130void set_db (FITS_DB *in);
    126131int Shutdown (char *format, ...);
     
    129134int SetSignals ();
    130135
    131 GSCRegion    *find_regions        PROTO((Image *image, int Nimage, int *Nregions, GSCRegion *fullregion));
    132136void          freeGridBins        PROTO((int Ncatalog));
    133137void          freeImageBins       PROTO((int Ncatalog));
     
    140144float         getMmos             PROTO((int meas, int cat));
    141145float         getMrel             PROTO((Catalog *catalog, int meas, int cat));
    142 GSCRegion    *get_regions         PROTO((double minRa, double maxRa, double minDec, double maxDec, int *Nregions));
    143 void          getfullregion       PROTO((Image *image, int Nimage, GSCRegion *fullregion));
    144146Image        *getimage            PROTO((int N));
    145147Image        *getimages           PROTO((int *N));
     
    156158void          initstats           PROTO((char *mode));
    157159int           liststats           PROTO((double *value, double *dvalue, int N, StatType *stats));
    158 Catalog      *load_catalogs       PROTO((GSCRegion *region, int Nregion, GSCRegion *fullregion));
    159 GSCRegion    *load_images         PROTO((FITS_DB *db, char *seed, int *nregion, GSCRegion *fullregion));
    160 
    161 void check_permissions (char *basefile);
    162 void lock_image_db (FITS_DB *db, char *filename);
    163 void unlock_image_db (FITS_DB *db);
    164 void create_image_db (FITS_DB *db);
     160Catalog       *load_catalogs      PROTO((SkyList *skylist, int *Ncatalog));
     161SkyList      *load_images         PROTO((FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect));
     162Image         *select_images      PROTO((SkyList *skylist, Image *timage, int Ntimage, int **LineNumber, int *Nimage));
    165163
    166164int           main                PROTO((int argc, char **argv));
     
    168166void          matchImage          PROTO((Catalog *catalog, int meas, int cat));
    169167void          matchMosaics        PROTO((Catalog *catalog, int meas, int cat));
    170 GSCRegion    *name_region         PROTO((char *name, int *Nregions));
    171168double        opening_angle       PROTO((double x1, double y1, double x2, double y2, double x3, double y3));
    172169void          plot_chisq          PROTO((Catalog *catalog, int Ncatalog));
     
    180177void          plot_star_coords    PROTO((Catalog *catalog, int Ncatalog));
    181178void          plot_stars          PROTO((Catalog *catalog, int Ncatalog));
    182 void          reload_catalogs     PROTO((GSCRegion *region, int Nregion, GSCRegion *fullregion));
     179void          reload_catalogs     PROTO((SkyList *skylist));
    183180int           setExclusions       PROTO((Catalog *catalog, int Ncatalog));
    184181void          setMcal             PROTO((Catalog *catalog, int Poor));
     
    211208void          wimages             PROTO(());
    212209void          write_coords        PROTO((Header *header, Coords *coords));
     210
     211//Image        *find_images         PROTO((FITS_DB *db, GSCRegion *region, int Nregion, int *Nimage, int **LineNum));
     212//GSCRegion    *find_regions        PROTO((Image *image, int Nimage, int *Nregions, GSCRegion *fullregion));
     213//GSCRegion    *get_regions         PROTO((double minRa, double maxRa, double minDec, double maxDec, int *Nregions));
     214//void          getfullregion       PROTO((Image *image, int Nimage, GSCRegion *fullregion));
     215//GSCRegion    *name_region         PROTO((char *name, int *Nregions));
  • trunk/Ohana/src/relphot/src/ConfigInit.c

    r6684 r7080  
    3434  sprintf (ImageCat, "%s/Images.dat", CATDIR);
    3535
     36  if (!ScanConfig (config, "SKY_DEPTH",         "%d",  0, &SKY_DEPTH)) {
     37    SKY_DEPTH = 2;
     38  }
     39  if (!ScanConfig (config, "SKY_TABLE",         "%s",  0, SKY_TABLE)) {
     40    SKY_TABLE[0] = 0;
     41  }
     42
    3643  GetConfig (config, "PHOTCODE_FILE",          "%s",  0, PhotCodeFile);
    3744  GetConfig (config, "ZERO_PT",                "%lf", 0, &ZERO_POINT);
  • trunk/Ohana/src/relphot/src/GridOps.v1.c

    r2486 r7080  
    269269
    270270  /* create empty phu */
    271   fits_init_header (&header);
     271  gfits_init_header (&header);
    272272  header.extend = TRUE;
    273   fits_create_header (&header);
    274   fits_create_matrix (&header, &matrix);
    275   fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
    276   fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
    277   fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
    278   fits_fwrite_header (f, &header);
    279   fits_fwrite_matrix (f, &matrix);
    280   fits_free_matrix (&matrix);
     273  gfits_create_header (&header);
     274  gfits_create_matrix (&header, &matrix);
     275  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
     276  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
     277  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
     278  gfits_fwrite_header (f, &header);
     279  gfits_fwrite_matrix (f, &matrix);
     280  gfits_free_matrix (&matrix);
    281281
    282282  /* save grid mag values */
    283   fits_init_header (&theader);
     283  gfits_init_header (&theader);
    284284  theader.Naxes = 2;
    285285  theader.Naxis[0] = gridX;
    286286  theader.Naxis[1] = gridY;
    287287  theader.bitpix   = -32;
    288   fits_create_Theader (&theader, "IMAGE");
    289   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    290   fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
    291   fits_create_matrix  (&theader, &matrix);
     288  gfits_create_Theader (&theader, "IMAGE");
     289  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     290  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
     291  gfits_create_matrix  (&theader, &matrix);
    292292  for (i = 0; i < gridX; i++) {
    293293    for (j = 0; j < gridY; j++) {
    294       fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     294      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
    295295    }
    296296  }
    297297  write_coords (&theader, &refmosaic[0].coords);
    298   fits_fwrite_header (f, &theader);
    299   fits_fwrite_matrix (f, &matrix);
    300   fits_free_matrix (&matrix);
     298  gfits_fwrite_header (f, &theader);
     299  gfits_fwrite_matrix (f, &matrix);
     300  gfits_free_matrix (&matrix);
    301301
    302302  /* save grid Nmeas values */
    303   fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
    304   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    305   fits_create_matrix  (&theader, &matrix);
     303  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
     304  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     305  gfits_create_matrix  (&theader, &matrix);
    306306  for (i = 0; i < gridX; i++) {
    307307    for (j = 0; j < gridY; j++) {
    308       fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     308      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
    309309    }
    310310  }
    311311  write_coords (&theader, &refmosaic[0].coords);
    312   fits_fwrite_header (f, &theader);
    313   fits_fwrite_matrix (f, &matrix);
    314   fits_free_matrix (&matrix);
     312  gfits_fwrite_header (f, &theader);
     313  gfits_fwrite_matrix (f, &matrix);
     314  gfits_free_matrix (&matrix);
    315315
    316316  /* save grid sigma values */
    317   fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
    318   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    319   fits_create_matrix  (&theader, &matrix);
     317  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
     318  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     319  gfits_create_matrix  (&theader, &matrix);
    320320  for (i = 0; i < gridX; i++) {
    321321    for (j = 0; j < gridY; j++) {
    322       fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     322      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
    323323    }
    324324  }
    325325  write_coords (&theader, &refmosaic[0].coords);
    326   fits_fwrite_header (f, &theader);
    327   fits_fwrite_matrix (f, &matrix);
    328   fits_free_matrix (&matrix);
     326  gfits_fwrite_header (f, &theader);
     327  gfits_fwrite_matrix (f, &matrix);
     328  gfits_free_matrix (&matrix);
    329329
    330330  /* calculate value for each CCD pixel, write out CCD images */
     
    343343    sprintf (ccdname, "ccd%s", p);
    344344
    345     fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
    346     fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    347     fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
    348     fits_modify (&theader, "NX", "%d", 1, image[i].NX);
    349     fits_modify (&theader, "NY", "%d", 1, image[i].NY);
     345    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
     346    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     347    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
     348    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
     349    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
    350350    write_coords (&theader, &image[0].coords);
    351351
     
    354354    theader.Naxis[0] = Nx;
    355355    theader.Naxis[1] = Ny;
    356     fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
    357     fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
    358     fits_create_matrix  (&theader, &matrix);
     356    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
     357    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
     358    gfits_create_matrix  (&theader, &matrix);
    359359
    360360    InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
    361     fits_fwrite_header (f, &theader);
    362     fits_fwrite_matrix (f, &matrix);
    363     fits_free_matrix (&matrix);
     361    gfits_fwrite_header (f, &theader);
     362    gfits_fwrite_matrix (f, &matrix);
     363    gfits_free_matrix (&matrix);
    364364  }
    365365}
  • trunk/Ohana/src/relphot/src/GridOps.v2.c

    r5143 r7080  
    375375
    376376  /* create empty phu */
    377   fits_init_header (&header);
     377  gfits_init_header (&header);
    378378  header.extend = TRUE;
    379   fits_create_header (&header);
    380   fits_create_matrix (&header, &matrix);
    381   fits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
    382   fits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
    383   fits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
    384   fits_fwrite_header (f, &header);
    385   fits_fwrite_matrix (f, &matrix);
    386   fits_free_matrix (&matrix);
     379  gfits_create_header (&header);
     380  gfits_create_matrix (&header, &matrix);
     381  gfits_modify (&header, "NEXTEND", "%d", 1, Nimage + 3);
     382  gfits_modify (&header, "FILTER", "%s", 1, photcode[0].name);
     383  gfits_modify (&header, "COMMENT", "%S", 1, "Mosaic Photometry Grid Analysis");
     384  gfits_fwrite_header (f, &header);
     385  gfits_fwrite_matrix (f, &matrix);
     386  gfits_free_matrix (&matrix);
    387387
    388388  /* save grid mag values */
    389   fits_init_header (&theader);
     389  gfits_init_header (&theader);
    390390  theader.Naxes = 2;
    391391  theader.Naxis[0] = gridX;
    392392  theader.Naxis[1] = gridY;
    393393  theader.bitpix   = -32;
    394   fits_create_Theader (&theader, "IMAGE");
    395   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    396   fits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
    397   fits_create_matrix  (&theader, &matrix);
     394  gfits_create_Theader (&theader, "IMAGE");
     395  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     396  gfits_modify (&theader, "EXTNAME", "%s", 1, "MAG_OFFSET");
     397  gfits_create_matrix  (&theader, &matrix);
    398398  for (i = 0; i < gridX; i++) {
    399399    for (j = 0; j < gridY; j++) {
    400       fits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
     400      gfits_set_matrix_value (&matrix, i, j, (double) gridM[i + j*gridX]);
    401401    }
    402402  }
    403403  write_coords (&theader, &refmosaic[0].coords);
    404   fits_fwrite_header (f, &theader);
    405   fits_fwrite_matrix (f, &matrix);
    406   fits_free_matrix (&matrix);
     404  gfits_fwrite_header (f, &theader);
     405  gfits_fwrite_matrix (f, &matrix);
     406  gfits_free_matrix (&matrix);
    407407
    408408  /* save grid Nmeas values */
    409   fits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
    410   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    411   fits_create_matrix  (&theader, &matrix);
     409  gfits_modify (&theader, "EXTNAME", "%s", 1, "NMEAS");
     410  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     411  gfits_create_matrix  (&theader, &matrix);
    412412  for (i = 0; i < gridX; i++) {
    413413    for (j = 0; j < gridY; j++) {
    414       fits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
     414      gfits_set_matrix_value (&matrix, i, j, (double) gridN[i + j*gridX]);
    415415    }
    416416  }
    417417  write_coords (&theader, &refmosaic[0].coords);
    418   fits_fwrite_header (f, &theader);
    419   fits_fwrite_matrix (f, &matrix);
    420   fits_free_matrix (&matrix);
     418  gfits_fwrite_header (f, &theader);
     419  gfits_fwrite_matrix (f, &matrix);
     420  gfits_free_matrix (&matrix);
    421421
    422422  /* save grid sigma values */
    423   fits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
    424   fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    425   fits_create_matrix  (&theader, &matrix);
     423  gfits_modify (&theader, "EXTNAME", "%s", 1, "SIGMA");
     424  gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     425  gfits_create_matrix  (&theader, &matrix);
    426426  for (i = 0; i < gridX; i++) {
    427427    for (j = 0; j < gridY; j++) {
    428       fits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
     428      gfits_set_matrix_value (&matrix, i, j, (double) gridS[i + j*gridX]);
    429429    }
    430430  }
    431431  write_coords (&theader, &refmosaic[0].coords);
    432   fits_fwrite_header (f, &theader);
    433   fits_fwrite_matrix (f, &matrix);
    434   fits_free_matrix (&matrix);
     432  gfits_fwrite_header (f, &theader);
     433  gfits_fwrite_matrix (f, &matrix);
     434  gfits_free_matrix (&matrix);
    435435
    436436# ifdef GRID_V1
     
    451451    sprintf (ccdname, "ccd%s", p);
    452452
    453     fits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
    454     fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    455     fits_modify (&theader, "PHOTCODE", "%s", 1, pname);
    456     fits_modify (&theader, "NX", "%d", 1, image[i].NX);
    457     fits_modify (&theader, "NY", "%d", 1, image[i].NY);
     453    gfits_modify (&theader, "EXTNAME", "%s", 1, ccdname);
     454    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     455    gfits_modify (&theader, "PHOTCODE", "%s", 1, pname);
     456    gfits_modify (&theader, "NX", "%d", 1, image[i].NX);
     457    gfits_modify (&theader, "NY", "%d", 1, image[i].NY);
    458458    write_coords (&theader, &image[0].coords);
    459459
     
    462462    theader.Naxis[0] = Nx;
    463463    theader.Naxis[1] = Ny;
    464     fits_modify (&theader, "NAXIS1", "%d", 1, Nx);
    465     fits_modify (&theader, "NAXIS2", "%d", 1, Ny);
    466     fits_create_matrix  (&theader, &matrix);
     464    gfits_modify (&theader, "NAXIS1", "%d", 1, Nx);
     465    gfits_modify (&theader, "NAXIS2", "%d", 1, Ny);
     466    gfits_create_matrix  (&theader, &matrix);
    467467
    468468    InterpolateGrid ((float *)matrix.buffer, Nx, Ny, &image[0].coords, &refmosaic[0].coords);
    469     fits_fwrite_header (f, &theader);
    470     fits_fwrite_matrix (f, &matrix);
    471     fits_free_matrix (&matrix);
     469    gfits_fwrite_header (f, &theader);
     470    gfits_fwrite_matrix (f, &matrix);
     471    gfits_free_matrix (&matrix);
    472472  }
    473473# endif
     
    479479    int ix, iy, x, y, X, Y, bin;
    480480
    481     fits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
    482     fits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
    483     fits_modify (&theader, "NX", "%d", 1, camera.Nx);
    484     fits_modify (&theader, "NY", "%d", 1, camera.Ny);
     481    gfits_modify (&theader, "EXTNAME", "%s", 1, camera.ccdname[i]);
     482    gfits_modify (&theader, "FILTER", "%s", 1, photcode[0].name);
     483    gfits_modify (&theader, "NX", "%d", 1, camera.Nx);
     484    gfits_modify (&theader, "NY", "%d", 1, camera.Ny);
    485485     
    486486    theader.Naxis[0] = RELPHOT_GRID_X;
    487487    theader.Naxis[1] = RELPHOT_GRID_Y;
    488     fits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
    489     fits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
    490     fits_create_matrix  (&theader, &matrix);
     488    gfits_modify (&theader, "NAXIS1", "%d", 1, RELPHOT_GRID_X);
     489    gfits_modify (&theader, "NAXIS2", "%d", 1, RELPHOT_GRID_Y);
     490    gfits_create_matrix  (&theader, &matrix);
    491491
    492492    for (Y = 0; Y < RELPHOT_GRID_Y; Y++) {
     
    504504             
    505505        bin = ix + iy*gridX;
    506         fits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
     506        gfits_set_matrix_value (&matrix, X, Y, (double) gridM[bin]);
    507507      }
    508508    }
    509     fits_fwrite_header (f, &theader);
    510     fits_fwrite_matrix (f, &matrix);
    511     fits_free_matrix (&matrix);
     509    gfits_fwrite_header (f, &theader);
     510    gfits_fwrite_matrix (f, &matrix);
     511    gfits_free_matrix (&matrix);
    512512  }
    513513# endif
  • trunk/Ohana/src/relphot/src/Shutdown.c

    r4864 r7080  
    2222
    2323  SetProtect (TRUE);
    24   fits_db_close (db);
     24  gfits_db_close (db);
    2525  fprintf (stderr, "ERROR: addstar halted\n");
    2626  exit (1);
  • trunk/Ohana/src/relphot/src/args.c

    r6994 r7080  
    11# include "relphot.h"
     2void usage (void);
    23
    34int args (int argc, char **argv) {
     
    3334  }
    3435
     36  /* specify portion of the sky */
     37  UserPatch.Rmin = 0;
     38  UserPatch.Rmax = 360;
     39  UserPatch.Dmin = -90;
     40  UserPatch.Dmax = +90;
     41  UserPatchSelect = FALSE;
     42  if ((N = get_argument (argc, argv, "-region"))) {
     43    remove_argument (N, &argc, argv);
     44    UserPatch.Rmin = atof (argv[N]);
     45    remove_argument (N, &argc, argv);
     46    UserPatch.Rmax = atof (argv[N]);
     47    remove_argument (N, &argc, argv);
     48    UserPatch.Dmin = atof (argv[N]);
     49    remove_argument (N, &argc, argv);
     50    UserPatch.Dmax = atof (argv[N]);
     51    remove_argument (N, &argc, argv);
     52    UserPatchSelect = TRUE;
     53  }
     54
    3555  VERBOSE = FALSE;
    3656  if ((N = get_argument (argc, argv, "-v"))) {
     
    153173  }
    154174
    155   if (argc != 3) {
    156     fprintf (stderr, "ERROR: USAGE: nrphot (region) (photcode)\n");
    157     fprintf (stderr, "  options: \n");
    158     fprintf (stderr, "  -time (start) (stop)\n");
    159     fprintf (stderr, "  -v\n");
    160     fprintf (stderr, "  -plot\n");
    161     fprintf (stderr, "  -plotdelay (seconds)\n");
    162     fprintf (stderr, "  -statmode (mode)\n");
    163     fprintf (stderr, "  -n (nloop)\n");
    164     fprintf (stderr, "  -reset\n");
    165     fprintf (stderr, "  -update\n");
    166     fprintf (stderr, "  -params\n");
    167     fprintf (stderr, "  -mosaic (mosaic)\n");
    168     fprintf (stderr, "  -imfreeze\n");
    169     fprintf (stderr, "  -grid\n");
    170     fprintf (stderr, "  -area Xmin Xmax Ymin Ymax\n");
    171     fprintf (stderr, "  -instmag min max\n");
    172     fprintf (stderr, "  \n");
    173     exit (2);
    174   }
    175   return (TRUE);
     175  if ( UserPatchSelect && (argc != 2)) usage ();
     176  if (!UserPatchSelect && (argc != 3)) usage ();
     177
     178  return TRUE;
    176179}
    177180
     181void usage () {
     182  fprintf (stderr, "ERROR: USAGE: relphot (region) (photcode)\n");
     183  fprintf (stderr, "       or:    relphot (photcode) -region RA RA DEC DEC\n");
     184  fprintf (stderr, "  options: \n");
     185  fprintf (stderr, "  -time (start) (stop)\n");
     186  fprintf (stderr, "  -v\n");
     187  fprintf (stderr, "  -plot\n");
     188  fprintf (stderr, "  -plotdelay (seconds)\n");
     189  fprintf (stderr, "  -statmode (mode)\n");
     190  fprintf (stderr, "  -n (nloop)\n");
     191  fprintf (stderr, "  -reset\n");
     192  fprintf (stderr, "  -update\n");
     193  fprintf (stderr, "  -params\n");
     194  fprintf (stderr, "  -mosaic (mosaic)\n");
     195  fprintf (stderr, "  -imfreeze\n");
     196  fprintf (stderr, "  -grid\n");
     197  fprintf (stderr, "  -area Xmin Xmax Ymin Ymax\n");
     198  fprintf (stderr, "  -instmag min max\n");
     199  fprintf (stderr, "  \n");
     200  exit (2);
     201}
  • trunk/Ohana/src/relphot/src/bcatalog.c

    r6683 r7080  
    11# include "relphot.h"
    22
    3 int bcatalog (Catalog *subcatalog, Catalog *catalog, GSCRegion *fullregion) {
     3int bcatalog (Catalog *subcatalog, Catalog *catalog) {
    44 
    55  int i, j, offset, ecode;
     
    1818  for (i = 0; i < catalog[0].Naverage; i++) {
    1919    if (catalog[0].average[i].Nm < 2) continue;
     20
     21    /* XXX this limitation is absurd
    2022    if (catalog[0].average[i].R < fullregion[0].RA[0]) continue;
    2123    if (catalog[0].average[i].R > fullregion[0].RA[1]) continue;
    2224    if (catalog[0].average[i].D < fullregion[0].DEC[0]) continue;
    2325    if (catalog[0].average[i].D > fullregion[0].DEC[1]) continue;
     26    */
    2427
    2528    /* start with all stars good */
  • trunk/Ohana/src/relphot/src/find_images.c

    r5014 r7080  
    2727  strcpy (tcoords.ctype, "RA---TAN");
    2828
    29   timage = fits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
     29  timage = gfits_table_get_Image (&db[0].ftable, &Ntimage, &db[0].swapped);
    3030
    3131  nimage = 0;
  • trunk/Ohana/src/relphot/src/initialize.c

    r6684 r7080  
    33void initialize (int argc, char **argv) {
    44
    5   /* are these set correctly? */
     5  int N;
     6
    67  ConfigInit (&argc, argv);
    78  args (argc, argv);
    89
    9   if ((photcode = GetPhotcodebyName (argv[2])) == NULL) {
    10     fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[2]);
     10  N = UserPatchSelect ? 1 : 2;
     11  if ((photcode = GetPhotcodebyName (argv[N])) == NULL) {
     12    fprintf (stderr, "ERROR: photcode %s not found in photcode table\n", argv[N]);
    1113    exit (1);
    1214  }
    1315  if ((photcode[0].type != PHOT_PRI) && (photcode[0].type != PHOT_SEC)) {
    14     fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[2]);
     16    fprintf (stderr, "photcode %s is not a primary or secondary filter\n", argv[N]);
    1517    exit (1);
    1618  }
  • trunk/Ohana/src/relphot/src/load_catalogs.c

    r2486 r7080  
    11# include "relphot.h"
    22
    3 Catalog *load_catalogs (GSCRegion *region, int Nregion, GSCRegion *fullregion) {
     3Catalog *load_catalogs (SkyList *skylist, int *Ncatalog) {
    44
    55  int i, Nstar;
    6   char filename[256];
    76  Catalog *catalog, tcatalog;
    87
    98  if (VERBOSE) fprintf (stderr, "loading catalog data\n");
    109
    11   ALLOCATE (catalog, Catalog, Nregion);
     10  // XXX skip over the empty catalogs? don't add to the list?
     11  ALLOCATE (catalog, Catalog, skylist[0].Nregions);
    1212
    1313  /* load data from each region file, only use bright stars */
    14   for (i = 0; i < Nregion; i++) {
    15     sprintf (filename, "%s/%s", CATDIR, region[i].filename);
    16     tcatalog.filename = filename;  /* don't free region before catalog! */
     14  // we use LCK_SOFT since we assume the image is locked
     15  for (i = 0; i < skylist[0].Nregions; i++) {
     16    tcatalog.filename = skylist[0].filename[i];
    1717    switch (lock_catalog (&tcatalog, LCK_SOFT)) {
    1818    case 0:
    19       fprintf (stderr, "ERROR: can't lock file %s\n", region[i].filename);
     19      fprintf (stderr, "ERROR: can't lock file %s\n", tcatalog.filename);
    2020      exit (1);
    2121    case 1:
     
    3131      exit (1);
    3232    }
    33     bcatalog (&catalog[i], &tcatalog, fullregion);
     33    bcatalog (&catalog[i], &tcatalog);
    3434  }
    3535
    3636  Nstar = 0;
    37   for (i = 0; i < Nregion; i++) {
     37  for (i = 0; i < skylist[0].Nregions; i++) {
    3838    Nstar += catalog[i].Naverage;
    3939  }
     
    4242    exit (0);
    4343  }
     44
     45  *Ncatalog = skylist[0].Nregions;
    4446  return (catalog);
    4547}
  • trunk/Ohana/src/relphot/src/load_images.c

    r6237 r7080  
    11# include "relphot.h"
    22
    3 GSCRegion *load_images (FITS_DB *db, char *seed, int *nregion, GSCRegion *fullregion) {
     3SkyList *load_images (FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect) {
    44
    5   GSCRegion *region;
    6   int        Nregion;
    7   Image     *image;
    8   int       *Line;
    9   int        Nimage;
     5  Image     *image, *subset;
     6  int        Nimage, Nsubset, Nchar;
     7  int       *LineNumber;
    108
    11   /* read entire db table */
    12   if (!dvo_image_load (db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db[0].filename);
     9  SkyTable *sky = NULL;
     10  SkyList *skylist = NULL;
    1311
    14   region = name_region (seed, &Nregion);
     12  // load the current sky table (layout of all SkyRegions)
     13  sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE);
     14  SkyTableSetFilenames (sky, CATDIR, "cpt");
     15 
     16  // determine the populated SkyRegions overlapping the requested area
     17  if (RegionSelect) {
     18    skylist = SkyListByPatch (sky, -1, region);
     19  } else {
     20    Nchar = strlen(regionName);
     21    if (!strcmp (&regionName[Nchar-4], ".cpt")) regionName[Nchar-4] = 0;
     22    skylist = SkyListByName (sky, regionName);
     23  }
    1524
    16   /* find images which supplied all measurements */
    17   image = find_images (db, region, Nregion, &Nimage, &Line);
    18   free (Line);
     25  // convert database table to internal structure
     26  image = gfits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped);
    1927
    20   /* find all region files which touch images */
    21   region = find_regions (image, Nimage, &Nregion, fullregion);
    22   free (image);
     28  // select the images which overlap the selected sky regions
     29  subset = select_images (skylist, image, Nimage, &LineNumber, &Nsubset);
    2330
    24   /* find images which supplied all measurements for all regions */
    25   image = find_images (db, region, Nregion, &Nimage, &Line);
    26   getfullregion (image, Nimage, fullregion);
     31  gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, LineNumber, Nsubset);
    2732
    28   fits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, Line, Nimage);
    29 
    30   initImages (image, Nimage);
    31   initMosaics (image, Nimage);
     33  initImages (subset, Nsubset);
     34  initMosaics (subset, Nsubset);
    3235 
    33   *nregion = Nregion;
    34   return (region);
     36  return (skylist);
    3537}
  • trunk/Ohana/src/relphot/src/name_region.c

    r2486 r7080  
    99
    1010  sprintf (region[0].filename, "%s/%s", CATDIR, name);
    11   if (!fits_read_header (region[0].filename, &header)) {
     11  if (!gfits_read_header (region[0].filename, &header)) {
    1212    if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename);
    1313    exit (0);
    1414  }
    15   fits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
    16   fits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
    17   fits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
    18   fits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
    19   fits_free_header (&header);
     15  gfits_scan (&header, "RA0", "%lf", 1, &region[0].RA[0]);
     16  gfits_scan (&header, "RA1", "%lf", 1, &region[0].RA[1]);
     17  gfits_scan (&header, "DEC0", "%lf", 1, &region[0].DEC[0]);
     18  gfits_scan (&header, "DEC1", "%lf", 1, &region[0].DEC[1]);
     19  gfits_free_header (&header);
    2020
    2121  *Nregions = 1;
  • trunk/Ohana/src/relphot/src/reload_catalogs.c

    r2486 r7080  
    11# include "relphot.h"
    22
    3 void reload_catalogs (GSCRegion *region, int Nregion, GSCRegion *fullregion) {
     3void reload_catalogs (SkyList *skylist) {
    44
    55  int i;
    6   char filename[256];
    76  Catalog catalog;
    87
     
    109
    1110  /* load data from each region file */
    12   for (i = 0; i < Nregion; i++) {
    13     sprintf (filename, "%s/%s", CATDIR, region[i].filename);
    14     catalog.filename = filename;  /* don't free region before catalog! */
     11  for (i = 0; i < skylist[0].Nregions; i++) {
     12    catalog.filename = skylist[0].filename[i];
    1513    switch (lock_catalog (&catalog, LCK_XCLD)) {
    1614    case 0:
    17       fprintf (stderr, "ERROR: can't lock file %s\n", region[i].filename);
     15      fprintf (stderr, "ERROR: can't lock file %s\n", catalog.filename);
    1816      exit (1);
    1917    case 1:
  • trunk/Ohana/src/relphot/src/relphot.c

    r6640 r7080  
    11# include "relphot.h"
    2 /** I'm not currently setting the lockfiles.  this should be fixed! **/
    32
    43int main (int argc, char **argv) {
     
    65  int i, status, Ncatalog;
    76  Catalog *catalog;
    8   GSCRegion fullregion, *region;
    97  FITS_DB db;
     8
     9  SkyList *skylist = NULL;
    1010
    1111  /* get configuration info, args */
    1212  initialize (argc, argv);
    1313
     14  /* register database handle with shutdown procedure */
    1415  set_db (&db);
     16
     17  /* lock and load the image db table */
    1518  status = dvo_image_lock (&db, ImageCat, 60.0, (UPDATE ? LCK_XCLD : LCK_SOFT));
    1619  if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename);
    1720  if (db.dbstate == LCK_EMPTY) Shutdown ("ERROR: No images in catalog %s (1)", db.filename);
     21  if (!dvo_image_load (&db, VERBOSE, FALSE)) Shutdown ("can't read image catalog %s", db.filename);
    1822
    19   /* load regions and images based on seed region */
    20   // XXX EAM : load images and regions based on bounds, not name
    21   region = load_images (&db, argv[1], &Ncatalog, &fullregion);
     23  /* load regions and images based on specified sky patch */
     24  // XXX need to mimic old-style load by passing patch name
     25  // XXX need to reduce number of global variables in use.
     26  // XXX this is fairly lame: argv[1] is photcode if UserPatchSelect is true
     27  skylist = load_images (&db, argv[1], &UserPatch, UserPatchSelect);
     28
     29  /* unlock, if we can (else, unlocked below) */
    2230  if (!UPDATE) dvo_image_unlock (&db);
    2331
    2432  /* load catalog data from region files */
    25   catalog = load_catalogs (region, Ncatalog, &fullregion);
     33  catalog = load_catalogs (skylist, &Ncatalog);
    2634
    2735  /* match measurements with images, mosaics */
     
    8694
    8795  /* load catalog data from region files, update Mrel include all data */
    88   reload_catalogs (region, Ncatalog, &fullregion);
     96  reload_catalogs (skylist);
    8997  setMcalFinal ();
    9098  dvo_image_update (&db, VERBOSE);
  • trunk/Ohana/src/relphot/src/wcatalog.c

    r5014 r7080  
    2626    catalog[0].Nsecfilt = 0;
    2727  }
    28   fits_free_header (&catalog[0].header);
     28  gfits_free_header (&catalog[0].header);
    2929}
  • trunk/Ohana/src/relphot/src/wimages.c

    r4864 r7080  
    1212  /* adjust header */
    1313  Nimages = 0;
    14   fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
     14  gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);
    1515  Nimages ++;
    16   fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
     16  gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);
    1717
    18   fits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
     18  gfits_table_to_vtable (&db[0].ftable, &db[0].vtable, 0, 0);
    1919  for (i = 0; i < Nimage; i++) {
    20     fits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
     20    gfits_vadd_rows (&db[0].vtable, (char *) image, 1, sizeof(Image));
    2121  }
    2222
  • trunk/Ohana/src/relphot/src/write_coords.c

    r2486 r7080  
    55void write_coords (Header *header, Coords *coords) {
    66
    7   fits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
    8   fits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
     7  gfits_modify (header, "CTYPE1",   "%s",  1, "RA---TAN");
     8  gfits_modify (header, "CTYPE2",   "%s",  1, "DEC--TAN");
    99
    10   fits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
    11   fits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2); 
     10  gfits_modify (header, "CRVAL1",   "%lf", 1, coords[0].crval1);
     11  gfits_modify (header, "CRVAL2",   "%lf", 1, coords[0].crval2); 
    1212
    13   fits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
    14   fits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
     13  gfits_modify (header, "CRPIX1",   "%lf", 1, coords[0].crpix1);
     14  gfits_modify (header, "CRPIX2",   "%lf", 1, coords[0].crpix2);
    1515
    1616# if (CD_COORDS) 
    17   fits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
    18   fits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
    19   fits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
    20   fits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
     17  gfits_modify (header, "CD1_1",    "%le", 1, coords[0].pc1_1 * coords[0].cdelt1);
     18  gfits_modify (header, "CD2_1",    "%le", 1, coords[0].pc2_1 * coords[0].cdelt1);
     19  gfits_modify (header, "CD1_2",    "%le", 1, coords[0].pc1_2 * coords[0].cdelt2);
     20  gfits_modify (header, "CD2_2",    "%le", 1, coords[0].pc2_2 * coords[0].cdelt2);
    2121# else
    22   fits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1);
    23   fits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
    24   fits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
    25   fits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
    26   fits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
    27   fits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
     22  gfits_modify (header, "CDELT1",   "%le", 1, coords[0].cdelt1);
     23  gfits_modify (header, "CDELT2",   "%le", 1, coords[0].cdelt2);
     24  gfits_modify (header, "PC001001", "%le", 1, coords[0].pc1_1);
     25  gfits_modify (header, "PC001002", "%le", 1, coords[0].pc1_2);
     26  gfits_modify (header, "PC002001", "%le", 1, coords[0].pc2_1);
     27  gfits_modify (header, "PC002002", "%le", 1, coords[0].pc2_2);
    2828# endif
    2929}
Note: See TracChangeset for help on using the changeset viewer.