Changeset 7080 for trunk/Ohana/src/relphot
- Timestamp:
- May 5, 2006, 5:44:26 PM (20 years ago)
- Location:
- trunk/Ohana/src/relphot
- Files:
-
- 20 edited
-
Makefile (modified) (3 diffs)
-
doc/ChangeLog.txt (modified) (1 diff)
-
doc/notes.txt (modified) (1 diff)
-
include/relphot.h (modified) (10 diffs)
-
src/ConfigInit.c (modified) (1 diff)
-
src/GridOps.v1.c (modified) (3 diffs)
-
src/GridOps.v2.c (modified) (5 diffs)
-
src/Shutdown.c (modified) (1 diff)
-
src/args.c (modified) (3 diffs)
-
src/bcatalog.c (modified) (2 diffs)
-
src/find_images.c (modified) (1 diff)
-
src/initialize.c (modified) (1 diff)
-
src/load_catalogs.c (modified) (3 diffs)
-
src/load_images.c (modified) (1 diff)
-
src/name_region.c (modified) (1 diff)
-
src/reload_catalogs.c (modified) (2 diffs)
-
src/relphot.c (modified) (3 diffs)
-
src/wcatalog.c (modified) (1 diff)
-
src/wimages.c (modified) (1 diff)
-
src/write_coords.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/Makefile
r6000 r7080 26 26 $(SRC)/liststats.$(ARCH).o \ 27 27 $(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 \ 32 29 $(SRC)/load_catalogs.$(ARCH).o \ 33 30 $(SRC)/gcatalog.$(ARCH).o \ … … 44 41 $(SRC)/image-db.$(ARCH).o \ 45 42 $(SRC)/free_catalogs.$(ARCH).o \ 46 $(SRC)/check_permissions.$(ARCH).o \47 43 $(SRC)/setMrelFinal.$(ARCH).o \ 48 44 $(SRC)/write_coords.$(ARCH).o \ … … 51 47 $(SRC)/SetSignals.$(ARCH).o \ 52 48 $(SRC)/wcatalog.$(ARCH).o 49 50 OLD = \ 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 53 56 54 57 OBJ = $(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 1 5 2 6 - relphot-1-3: -
trunk/Ohana/src/relphot/doc/notes.txt
r2486 r7080 1 2 2006.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. 1 9 2 10 - select different calibration options -
trunk/Ohana/src/relphot/include/relphot.h
r5998 r7080 47 47 char CATFORMAT[16]; /* internal, elixir, loneos, panstarrs */ 48 48 char CameraConfig[256]; 49 char SKY_TABLE[256]; 50 int SKY_DEPTH; /** XXX EAM : depth of catalog tables, fix usage */ 49 51 50 52 double MAG_LIM; … … 96 98 time_t TSTART, TSTOP; 97 99 100 SkyRegion UserPatch; 101 int UserPatchSelect; 102 98 103 # ifdef GRID_V1 99 104 int setGridMeasure (int meas, int cat, double X, double Y); … … 111 116 int *SelectRefMosaic PROTO((Mosaic **refmosaic, int *Nimage)); 112 117 int args PROTO((int argc, char **argv)); 113 int bcatalog PROTO((Catalog *subcatalog, Catalog *catalog , GSCRegion *fullregion));118 int bcatalog PROTO((Catalog *subcatalog, Catalog *catalog)); 114 119 void clean_images PROTO(()); 115 120 void clean_measures PROTO((Catalog *catalog, int Ncatalog, int final)); … … 122 127 void findImages PROTO((Catalog *catalog, int Ncatalog)); 123 128 int findMosaics PROTO((Catalog *catalog, int Ncatalog)); 124 Image *find_images PROTO((FITS_DB *db, GSCRegion *region, int Nregion, int *Nimage, int **LineNum)); 129 125 130 void set_db (FITS_DB *in); 126 131 int Shutdown (char *format, ...); … … 129 134 int SetSignals (); 130 135 131 GSCRegion *find_regions PROTO((Image *image, int Nimage, int *Nregions, GSCRegion *fullregion));132 136 void freeGridBins PROTO((int Ncatalog)); 133 137 void freeImageBins PROTO((int Ncatalog)); … … 140 144 float getMmos PROTO((int meas, int cat)); 141 145 float 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));144 146 Image *getimage PROTO((int N)); 145 147 Image *getimages PROTO((int *N)); … … 156 158 void initstats PROTO((char *mode)); 157 159 int 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); 160 Catalog *load_catalogs PROTO((SkyList *skylist, int *Ncatalog)); 161 SkyList *load_images PROTO((FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect)); 162 Image *select_images PROTO((SkyList *skylist, Image *timage, int Ntimage, int **LineNumber, int *Nimage)); 165 163 166 164 int main PROTO((int argc, char **argv)); … … 168 166 void matchImage PROTO((Catalog *catalog, int meas, int cat)); 169 167 void matchMosaics PROTO((Catalog *catalog, int meas, int cat)); 170 GSCRegion *name_region PROTO((char *name, int *Nregions));171 168 double opening_angle PROTO((double x1, double y1, double x2, double y2, double x3, double y3)); 172 169 void plot_chisq PROTO((Catalog *catalog, int Ncatalog)); … … 180 177 void plot_star_coords PROTO((Catalog *catalog, int Ncatalog)); 181 178 void plot_stars PROTO((Catalog *catalog, int Ncatalog)); 182 void reload_catalogs PROTO(( GSCRegion *region, int Nregion, GSCRegion *fullregion));179 void reload_catalogs PROTO((SkyList *skylist)); 183 180 int setExclusions PROTO((Catalog *catalog, int Ncatalog)); 184 181 void setMcal PROTO((Catalog *catalog, int Poor)); … … 211 208 void wimages PROTO(()); 212 209 void 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 34 34 sprintf (ImageCat, "%s/Images.dat", CATDIR); 35 35 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 36 43 GetConfig (config, "PHOTCODE_FILE", "%s", 0, PhotCodeFile); 37 44 GetConfig (config, "ZERO_PT", "%lf", 0, &ZERO_POINT); -
trunk/Ohana/src/relphot/src/GridOps.v1.c
r2486 r7080 269 269 270 270 /* create empty phu */ 271 fits_init_header (&header);271 gfits_init_header (&header); 272 272 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); 281 281 282 282 /* save grid mag values */ 283 fits_init_header (&theader);283 gfits_init_header (&theader); 284 284 theader.Naxes = 2; 285 285 theader.Naxis[0] = gridX; 286 286 theader.Naxis[1] = gridY; 287 287 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); 292 292 for (i = 0; i < gridX; i++) { 293 293 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]); 295 295 } 296 296 } 297 297 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); 301 301 302 302 /* 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); 306 306 for (i = 0; i < gridX; i++) { 307 307 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]); 309 309 } 310 310 } 311 311 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); 315 315 316 316 /* 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); 320 320 for (i = 0; i < gridX; i++) { 321 321 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]); 323 323 } 324 324 } 325 325 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); 329 329 330 330 /* calculate value for each CCD pixel, write out CCD images */ … … 343 343 sprintf (ccdname, "ccd%s", p); 344 344 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); 350 350 write_coords (&theader, &image[0].coords); 351 351 … … 354 354 theader.Naxis[0] = Nx; 355 355 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); 359 359 360 360 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); 364 364 } 365 365 } -
trunk/Ohana/src/relphot/src/GridOps.v2.c
r5143 r7080 375 375 376 376 /* create empty phu */ 377 fits_init_header (&header);377 gfits_init_header (&header); 378 378 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); 387 387 388 388 /* save grid mag values */ 389 fits_init_header (&theader);389 gfits_init_header (&theader); 390 390 theader.Naxes = 2; 391 391 theader.Naxis[0] = gridX; 392 392 theader.Naxis[1] = gridY; 393 393 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); 398 398 for (i = 0; i < gridX; i++) { 399 399 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]); 401 401 } 402 402 } 403 403 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); 407 407 408 408 /* 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); 412 412 for (i = 0; i < gridX; i++) { 413 413 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]); 415 415 } 416 416 } 417 417 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); 421 421 422 422 /* 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); 426 426 for (i = 0; i < gridX; i++) { 427 427 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]); 429 429 } 430 430 } 431 431 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); 435 435 436 436 # ifdef GRID_V1 … … 451 451 sprintf (ccdname, "ccd%s", p); 452 452 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); 458 458 write_coords (&theader, &image[0].coords); 459 459 … … 462 462 theader.Naxis[0] = Nx; 463 463 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); 467 467 468 468 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); 472 472 } 473 473 # endif … … 479 479 int ix, iy, x, y, X, Y, bin; 480 480 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); 485 485 486 486 theader.Naxis[0] = RELPHOT_GRID_X; 487 487 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); 491 491 492 492 for (Y = 0; Y < RELPHOT_GRID_Y; Y++) { … … 504 504 505 505 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]); 507 507 } 508 508 } 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); 512 512 } 513 513 # endif -
trunk/Ohana/src/relphot/src/Shutdown.c
r4864 r7080 22 22 23 23 SetProtect (TRUE); 24 fits_db_close (db);24 gfits_db_close (db); 25 25 fprintf (stderr, "ERROR: addstar halted\n"); 26 26 exit (1); -
trunk/Ohana/src/relphot/src/args.c
r6994 r7080 1 1 # include "relphot.h" 2 void usage (void); 2 3 3 4 int args (int argc, char **argv) { … … 33 34 } 34 35 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 35 55 VERBOSE = FALSE; 36 56 if ((N = get_argument (argc, argv, "-v"))) { … … 153 173 } 154 174 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; 176 179 } 177 180 181 void 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 1 1 # include "relphot.h" 2 2 3 int bcatalog (Catalog *subcatalog, Catalog *catalog , GSCRegion *fullregion) {3 int bcatalog (Catalog *subcatalog, Catalog *catalog) { 4 4 5 5 int i, j, offset, ecode; … … 18 18 for (i = 0; i < catalog[0].Naverage; i++) { 19 19 if (catalog[0].average[i].Nm < 2) continue; 20 21 /* XXX this limitation is absurd 20 22 if (catalog[0].average[i].R < fullregion[0].RA[0]) continue; 21 23 if (catalog[0].average[i].R > fullregion[0].RA[1]) continue; 22 24 if (catalog[0].average[i].D < fullregion[0].DEC[0]) continue; 23 25 if (catalog[0].average[i].D > fullregion[0].DEC[1]) continue; 26 */ 24 27 25 28 /* start with all stars good */ -
trunk/Ohana/src/relphot/src/find_images.c
r5014 r7080 27 27 strcpy (tcoords.ctype, "RA---TAN"); 28 28 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); 30 30 31 31 nimage = 0; -
trunk/Ohana/src/relphot/src/initialize.c
r6684 r7080 3 3 void initialize (int argc, char **argv) { 4 4 5 /* are these set correctly? */ 5 int N; 6 6 7 ConfigInit (&argc, argv); 7 8 args (argc, argv); 8 9 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]); 11 13 exit (1); 12 14 } 13 15 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]); 15 17 exit (1); 16 18 } -
trunk/Ohana/src/relphot/src/load_catalogs.c
r2486 r7080 1 1 # include "relphot.h" 2 2 3 Catalog *load_catalogs ( GSCRegion *region, int Nregion, GSCRegion *fullregion) {3 Catalog *load_catalogs (SkyList *skylist, int *Ncatalog) { 4 4 5 5 int i, Nstar; 6 char filename[256];7 6 Catalog *catalog, tcatalog; 8 7 9 8 if (VERBOSE) fprintf (stderr, "loading catalog data\n"); 10 9 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); 12 12 13 13 /* 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]; 17 17 switch (lock_catalog (&tcatalog, LCK_SOFT)) { 18 18 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); 20 20 exit (1); 21 21 case 1: … … 31 31 exit (1); 32 32 } 33 bcatalog (&catalog[i], &tcatalog , fullregion);33 bcatalog (&catalog[i], &tcatalog); 34 34 } 35 35 36 36 Nstar = 0; 37 for (i = 0; i < Nregion; i++) {37 for (i = 0; i < skylist[0].Nregions; i++) { 38 38 Nstar += catalog[i].Naverage; 39 39 } … … 42 42 exit (0); 43 43 } 44 45 *Ncatalog = skylist[0].Nregions; 44 46 return (catalog); 45 47 } -
trunk/Ohana/src/relphot/src/load_images.c
r6237 r7080 1 1 # include "relphot.h" 2 2 3 GSCRegion *load_images (FITS_DB *db, char *seed, int *nregion, GSCRegion *fullregion) {3 SkyList *load_images (FITS_DB *db, char *regionName, SkyRegion *region, int RegionSelect) { 4 4 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; 10 8 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; 13 11 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 (®ionName[Nchar-4], ".cpt")) regionName[Nchar-4] = 0; 22 skylist = SkyListByName (sky, regionName); 23 } 15 24 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); 19 27 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); 23 30 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); 27 32 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); 32 35 33 *nregion = Nregion; 34 return (region); 36 return (skylist); 35 37 } -
trunk/Ohana/src/relphot/src/name_region.c
r2486 r7080 9 9 10 10 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)) { 12 12 if (VERBOSE) fprintf (stderr, "catalog file not yet available: %s\n", region[0].filename); 13 13 exit (0); 14 14 } 15 fits_scan (&header, "RA0", "%lf", 1, ®ion[0].RA[0]);16 fits_scan (&header, "RA1", "%lf", 1, ®ion[0].RA[1]);17 fits_scan (&header, "DEC0", "%lf", 1, ®ion[0].DEC[0]);18 fits_scan (&header, "DEC1", "%lf", 1, ®ion[0].DEC[1]);19 fits_free_header (&header);15 gfits_scan (&header, "RA0", "%lf", 1, ®ion[0].RA[0]); 16 gfits_scan (&header, "RA1", "%lf", 1, ®ion[0].RA[1]); 17 gfits_scan (&header, "DEC0", "%lf", 1, ®ion[0].DEC[0]); 18 gfits_scan (&header, "DEC1", "%lf", 1, ®ion[0].DEC[1]); 19 gfits_free_header (&header); 20 20 21 21 *Nregions = 1; -
trunk/Ohana/src/relphot/src/reload_catalogs.c
r2486 r7080 1 1 # include "relphot.h" 2 2 3 void reload_catalogs ( GSCRegion *region, int Nregion, GSCRegion *fullregion) {3 void reload_catalogs (SkyList *skylist) { 4 4 5 5 int i; 6 char filename[256];7 6 Catalog catalog; 8 7 … … 10 9 11 10 /* 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]; 15 13 switch (lock_catalog (&catalog, LCK_XCLD)) { 16 14 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); 18 16 exit (1); 19 17 case 1: -
trunk/Ohana/src/relphot/src/relphot.c
r6640 r7080 1 1 # include "relphot.h" 2 /** I'm not currently setting the lockfiles. this should be fixed! **/3 2 4 3 int main (int argc, char **argv) { … … 6 5 int i, status, Ncatalog; 7 6 Catalog *catalog; 8 GSCRegion fullregion, *region;9 7 FITS_DB db; 8 9 SkyList *skylist = NULL; 10 10 11 11 /* get configuration info, args */ 12 12 initialize (argc, argv); 13 13 14 /* register database handle with shutdown procedure */ 14 15 set_db (&db); 16 17 /* lock and load the image db table */ 15 18 status = dvo_image_lock (&db, ImageCat, 60.0, (UPDATE ? LCK_XCLD : LCK_SOFT)); 16 19 if (!status) Shutdown ("ERROR: failure to lock image catalog %s", db.filename); 17 20 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); 18 22 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) */ 22 30 if (!UPDATE) dvo_image_unlock (&db); 23 31 24 32 /* load catalog data from region files */ 25 catalog = load_catalogs ( region, Ncatalog, &fullregion);33 catalog = load_catalogs (skylist, &Ncatalog); 26 34 27 35 /* match measurements with images, mosaics */ … … 86 94 87 95 /* load catalog data from region files, update Mrel include all data */ 88 reload_catalogs ( region, Ncatalog, &fullregion);96 reload_catalogs (skylist); 89 97 setMcalFinal (); 90 98 dvo_image_update (&db, VERBOSE); -
trunk/Ohana/src/relphot/src/wcatalog.c
r5014 r7080 26 26 catalog[0].Nsecfilt = 0; 27 27 } 28 fits_free_header (&catalog[0].header);28 gfits_free_header (&catalog[0].header); 29 29 } -
trunk/Ohana/src/relphot/src/wimages.c
r4864 r7080 12 12 /* adjust header */ 13 13 Nimages = 0; 14 fits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages);14 gfits_scan (&db[0].header, "NIMAGES", "%d", 1, &Nimages); 15 15 Nimages ++; 16 fits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages);16 gfits_modify (&db[0].header, "NIMAGES", "%d", 1, Nimages); 17 17 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); 19 19 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)); 21 21 } 22 22 -
trunk/Ohana/src/relphot/src/write_coords.c
r2486 r7080 5 5 void write_coords (Header *header, Coords *coords) { 6 6 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"); 9 9 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); 12 12 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); 15 15 16 16 # 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); 21 21 # 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); 28 28 # endif 29 29 }
Note:
See TracChangeset
for help on using the changeset viewer.
