Changeset 5448
- Timestamp:
- Oct 27, 2005, 10:38:30 AM (21 years ago)
- Location:
- trunk/Ohana/src
- Files:
-
- 35 edited
-
addstar/doc/notes.txt (modified) (1 diff)
-
addstar/src/SkyRegionUtils.c (modified) (3 diffs)
-
addstar/src/UpdateDatabase_Image.c (modified) (1 diff)
-
addstar/src/UpdateDatabase_Refcat.c (modified) (2 diffs)
-
addstar/src/addstar.c (modified) (2 diffs)
-
addstar/src/addstard.c (modified) (1 diff)
-
addstar/src/get2mass.c (modified) (2 diffs)
-
addstar/src/get2mass_as.c (modified) (1 diff)
-
addstar/src/get2mass_dr2.c (modified) (1 diff)
-
addstar/src/getgsc.c (modified) (3 diffs)
-
addstar/src/load_pt_catalog.c (modified) (1 diff)
-
delstar/src/delete_imagefile.c (modified) (2 diffs)
-
delstar/src/delete_imagename.c (modified) (2 diffs)
-
delstar/src/delete_times.c (modified) (3 diffs)
-
libautocode/def/SkyRegion.d (modified) (2 diffs)
-
libautocode/generate (modified) (4 diffs)
-
libdvo/include/dvo.h (modified) (1 diff)
-
libdvo/src/skyregion_gsc.c (modified) (4 diffs)
-
libdvo/src/skyregion_io.c (modified) (2 diffs)
-
libdvo/src/skyregion_ops.c (modified) (3 diffs)
-
opihi/dvo/catalog.c (modified) (1 diff)
-
opihi/dvo/dmt.c (modified) (4 diffs)
-
opihi/dvo/extract.c (modified) (1 diff)
-
opihi/dvo/gcat.c (modified) (4 diffs)
-
opihi/dvo/gstar.c (modified) (2 diffs)
-
opihi/dvo/imdata.c (modified) (5 diffs)
-
opihi/dvo/init.c (modified) (3 diffs)
-
opihi/dvo/lcat.c (modified) (5 diffs)
-
opihi/dvo/lcurve.c (modified) (3 diffs)
-
opihi/dvo/lightcurve.c (modified) (3 diffs)
-
opihi/dvo/pcat.c (modified) (1 diff)
-
opihi/dvo/pmeasure.c (modified) (4 diffs)
-
opihi/dvo/region_list.c (modified) (3 diffs)
-
opihi/dvo/subpix.c (modified) (5 diffs)
-
relphot/src/relphot.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/doc/notes.txt
r5445 r5448 21 21 with .cpm, .cpn, .cps as needed. 22 22 23 23 *** I need to fix the name method: common function to set it once 24 in the dvo functions. perhaps a pointer in the SkyRegion structure. 25 This needs some 32/64 bit care, though. use a long long (or other 26 type guaranteed to be 64 bit), and case to the appropriate type (size_t) 27 when it is used? also needs to be freed. 24 28 25 29 todo: -
trunk/Ohana/src/addstar/src/SkyRegionUtils.c
r5445 r5448 15 15 /* match the basename against the GSCRegion file names */ 16 16 for (i = 0; i < input[0].Nregions; i++) { 17 sprintf (filename, "%s/%s.cpt", path, input[0].regions[i][0].name); 18 status = stat (filename, &filestats); 17 status = stat (input[0].regions[i][0].filename, &filestats); 19 18 if ((status == -1) && (errno == ENOENT)) continue; 20 19 /* give an error for other conditions? */ … … 26 25 } 27 26 return (subset); 28 }29 30 int SkyListSetPath (SkyList *list, char *path) {31 32 int i;33 char line[256];34 35 for (i = 0; i < list[0].Nregions; i++) {36 fprintf (stderr, "region: %s\n", list[0].regions[i][0].name);37 sprintf (line, "%s/%s", path, list[0].regions[i][0].name);38 fprintf (stderr, "line: %s\n", line);39 strcpy (list[0].regions[i][0].name, line);40 fprintf (stderr, "catalog: %s\n", list[0].regions[i][0].name);41 }42 43 return (TRUE);44 27 } 45 28 … … 54 37 } 55 38 56 SkyTable *SkyTableLoadOptimal () {57 58 char filename[256];59 struct stat filestat;60 SkyTable *sky;61 int status;62 63 /* first option: CATDIR/SkyTable.fits */64 sprintf (filename, "%s/SkyTable.fits", CATDIR);65 check_permissions (filename);66 67 /* check for file existance */68 status = stat (filename, &filestat);69 if (status == 0) { /* file exists, are permissions OK? */70 sky = SkyTableLoad (filename, VERBOSE);71 if (sky == NULL) {72 fprintf (stderr, "error loading sky table\n");73 exit (1);74 }75 return (sky);76 }77 78 /* first option: SKY_TABLE */79 if (SKY_TABLE[0]) {80 status = stat (SKY_TABLE, &filestat);81 if (status == 0) { /* file exists, are permissions OK? */82 sky = SkyTableLoad (SKY_TABLE, VERBOSE);83 if (sky == NULL) {84 fprintf (stderr, "error loading sky table\n");85 exit (1);86 }87 SkyTableSetDepth (sky, SKY_DEPTH);88 89 /* write CATDIR copy */90 sprintf (filename, "%s/SkyTable.fits", CATDIR);91 check_permissions (filename);92 SkyTableSave (sky, filename);93 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions);94 return (sky);95 }96 }97 98 sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE);99 if (sky == NULL) {100 fprintf (stderr, "error loading sky table\n");101 exit (1);102 }103 104 /* write CATDIR copy */105 sprintf (filename, "%s/SkyTable.fits", CATDIR);106 check_permissions (filename);107 SkyTableSave (sky, filename);108 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions);109 110 return (sky);111 } -
trunk/Ohana/src/addstar/src/UpdateDatabase_Image.c
r5445 r5448 44 44 45 45 /* find correpsonding regions for image */ 46 skylist = SkyListByImage (ServerSky, -1, image, mosaic); 46 RegisterMosaic (mosaic); 47 skylist = SkyListByImage (ServerSky, -1, image); 47 48 48 49 /* reduce regions to existing subset, if necessary */ 49 SkyListSetPath (skylist, CATDIR);50 50 if (options[0].only_match || options[0].existing_regions) { 51 51 SkyList *tmp; -
trunk/Ohana/src/addstar/src/UpdateDatabase_Refcat.c
r5445 r5448 6 6 Catalog catalog; 7 7 Stars *stars, **subset; 8 // SkyTable *sky;9 8 SkyList *skylist; 10 11 /* this should be loaded by addstard on start -- keep static? */12 /* need to load the correct sky table (GSC default or local verison) */13 /* XXX EAM : check on memory usage */14 // sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE);15 9 16 10 if (options[0].update) { … … 48 42 49 43 /* reduce regions to existing subset, if necessary */ 50 SkyListSetPath (skylist, CATDIR);51 44 if (options[0].only_match || options[0].existing_regions) { 52 45 SkyList *tmp; -
trunk/Ohana/src/addstar/src/addstar.c
r5445 r5448 23 23 options = args (argc, argv, options); 24 24 25 sky = SkyTableLoadOptimal (); 25 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE); 26 SkyTableSetFilenames (sky, CATDIR, "cpt"); 26 27 27 28 stars = NULL; … … 44 45 stars = gstars (argv[1], &Nstars, options.photcode, &image); 45 46 if ((DUMP != NULL) && !strcmp (DUMP, "rawstars")) dump_rawstars (stars, Nstars); 46 skylist = SkyListByImage (sky, -1, &image, MOSAIC); 47 RegisterMosaic (MOSAIC); 48 skylist = SkyListByImage (sky, -1, &image); 47 49 overlap = gimages (&db, &image, MOSAIC, &Noverlap); 48 50 break; -
trunk/Ohana/src/addstar/src/addstard.c
r5445 r5448 11 11 args_server (argc, argv); 12 12 13 /* store the sky table in a global? */ 14 ServerSky = SkyTableLoadOptimal (); 13 /* store the sky table in a global for internal use */ 14 ServerSky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE); 15 SkyTableSetFilename (ServerSky, CATDIR, "cpt"); 15 16 16 17 /* if we separate the incoming data from db update, spawn db thread here */ -
trunk/Ohana/src/addstar/src/get2mass.c
r5443 r5448 56 56 57 57 int Nregions, NREGIONS; 58 char accelfile[1024], line[256], filename[128] ;58 char accelfile[1024], line[256], filename[128], datafile[256]; 59 59 FILE *f; 60 60 double Rs, Re, Ds, De; … … 83 83 if (Ds > patch[0].Dmax) continue; 84 84 if (De < patch[0].Dmin) continue; 85 sprintf (regions[Nregions].name, "%s/%s", path, filename); 85 sprintf (datafile, "%s/%s", path, filename); 86 regions[Nregions].filename = strcreate (datafile); 86 87 regions[Nregions].Rmin = Rs; 87 88 regions[Nregions].Rmax = Re; -
trunk/Ohana/src/addstar/src/get2mass_as.c
r5443 r5448 51 51 if (!FilterSkip) Shutdown ("invalid photcode %s", GetPhotcodeNamebyCode(photcode)); 52 52 53 filename = region[0]. name;53 filename = region[0].filename; 54 54 gf = gzopen (filename, "rb"); 55 55 if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename); -
trunk/Ohana/src/addstar/src/get2mass_dr2.c
r5443 r5448 27 27 fprintf (stderr, "overlap: %f - %f, %f - %f\n", RA0, RA1, DEC0, DEC1); 28 28 29 filename = region[0]. name;29 filename = region[0].filename; 30 30 gf = gzopen (filename, "rb"); 31 31 if (gf == NULL) Shutdown ("can't read 2mass data file: %s", filename); -
trunk/Ohana/src/addstar/src/getgsc.c
r5445 r5448 18 18 /* load regions from GSC table, restrict to patch */ 19 19 sky = SkyTableFromGSC (GSCFILE, 2, VERBOSE); 20 SkyTableSetPath (sky, GSCDIR, "cpt"); 20 21 skylist = SkyListByPatch (sky, -1, patch); 21 SkyListSetPath (skylist, GSCDIR);22 22 23 23 Nstars = 0; … … 25 25 26 26 for (i = 0; i < skylist[0].Nregions; i++) { 27 gsc = rd_gsc (skylist[0].regions[i][0]. name, &Ngsc);27 gsc = rd_gsc (skylist[0].regions[i][0].filename, &Ngsc); 28 28 29 29 REALLOCATE (stars, Stars, MAX (1, Nstars + Ngsc)); … … 34 34 } 35 35 36 SkyTableFree (sky); 36 37 if (VERBOSE) fprintf (stderr, "%d stars from HST GSC\n", Nstars); 37 38 *NSTARS = Nstars; -
trunk/Ohana/src/addstar/src/load_pt_catalog.c
r5445 r5448 5 5 char filename[256]; 6 6 7 sprintf (filename, "%s/%s.cpt", path, region[0].name);7 catalog[0].filename = region[0].filename; 8 8 9 check_permissions (filename); 10 if (VERBOSE) fprintf (stderr, "adding to %s\n", filename); 11 12 catalog[0].filename = strcreate (filename); 9 check_permissions (catalog[0].filename); 10 if (VERBOSE) fprintf (stderr, "adding to %s\n", catalog[0].filename); 13 11 14 12 switch (lock_catalog (catalog, LCK_XCLD)) { -
trunk/Ohana/src/delstar/src/delete_imagefile.c
r4864 r5448 8 8 time_t start, stop; 9 9 Image *image; 10 GSCRegion *region;11 10 Catalog catalog; 11 SkyList *skylist; 12 SkyTable *sky; 13 14 /* load sky from correct table */ 15 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE); 16 SkyTableSetFilenames (sky, CATDIR, "cpt"); 12 17 13 18 /* load information about file - time/photcode */ 14 19 image = gimages (filename); 15 20 21 /* need to define method to get the mosaic (look up from table) */ 16 22 if (VERBOSE) fprintf (stderr, "deleting %s\n", image[0].name); 17 region = gregion_image (image, &Nregions);18 23 19 for (i = 0; i < Nregions; i++) {20 if (VERBOSE) fprintf (stderr, "deleting from %s\n", region[i].filename);21 catalog.filename = region[i].filename; /* don't free region before catalog! */24 for (i = 0; i < skylist[0].Nregions; i++) { 25 if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].region[i][0].filename); 26 catalog.filename = skylist[0].region[i][0].filename; /* don't free region before catalog! */ 22 27 switch (lock_catalog (&catalog, LCK_XCLD)) { 23 28 case 0: … … 46 51 47 52 /* find and delete matching images */ 53 // XXX EAM : load image data above, find mosaic? 48 54 imlist = find_images_data (db, image, &Nimlist); 49 55 if (!Nimlist) Shutdown ("image %s not found in db", filename); -
trunk/Ohana/src/delstar/src/delete_imagename.c
r4864 r5448 4 4 5 5 int i, j, k; 6 int N regions, Nimlist, Nimage;6 int Nimlist, Nimage; 7 7 int *imlist; 8 8 double trange; 9 9 time_t start, stop; 10 10 Image *image; 11 GSCRegion *region;12 11 Catalog catalog; 12 SkyList *skylist; 13 SkyTable *sky; 14 15 /* load sky from correct table */ 16 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE); 17 SkyTableSetFilenames (sky, CATDIR, "cpt"); 13 18 14 19 image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped); … … 22 27 j = imlist[k]; 23 28 if (VERBOSE) fprintf (stderr, "deleting %s\n", image[j].name); 24 region = gregion_image (&image[j], &Nregions); 29 30 // XXX EAM : need to handle failure 31 FindMosaicForImage (image, Nimage, j); 32 skylist = SkyListByImage (sky, -1, &image[j]); 25 33 26 for (i = 0; i < Nregions; i++) {27 if (VERBOSE) fprintf (stderr, "deleting from %s\n", region[i].filename);28 catalog.filename = region[i].filename; /* don't free region before catalog! */34 for (i = 0; i < skylist[0].Nregions; i++) { 35 if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].region[i][0].filename); 36 catalog.filename = skylist[0].region[i][0].filename; /* don't free region before catalog! */ 29 37 switch (lock_catalog (&catalog, LCK_XCLD)) { 30 38 case 0: -
trunk/Ohana/src/delstar/src/delete_times.c
r4864 r5448 7 7 int Ntregions, Nregions, NREGIONS; 8 8 int *imlist; 9 GSCRegion *region, *tregion; 9 SkyList *skylist, *skyset; 10 SkyTable *sky; 10 11 Image *image; 11 12 Catalog catalog; … … 13 14 code = (PHOTCODE == NULL) ? -1 : PHOTCODE[0].code; 14 15 16 /* load sky from correct table */ 17 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, SKY_DEPTH, VERBOSE); 18 SkyTableSetFilenames (sky, CATDIR, "cpt"); 19 15 20 Nregions = 0; 16 21 NREGIONS = 10; 17 ALLOCATE (region, GSCRegion, NREGIONS); 22 ALLOCATE (skylist, SkyList, 1); 23 ALLOCATE (skylist[0].regions, SkyRegions *, NREGIONS); 18 24 19 25 image = fits_table_get_Image (&db[0].ftable, &Nimage, &db[0].swapped); … … 27 33 if (VERBOSE) fprintf (stderr, "finding regions for %s\n", image[j].name); 28 34 29 tregion = gregion_image (&image[j], &Ntregions); 30 for (i = 0; i < Ntregions; i++) { 35 // XXX EAM : need to handle failure 36 FindMosaicForImage (image, Nimage, j); 37 skyset = SkyListByImage (sky, -1, &image[j]); 38 39 // tregion = gregion_image (&image[j], &Ntregions); 40 for (i = 0; i < skyset[0].Nregions; i++) { 31 41 found = FALSE; 32 for (k = 0; (k < Nregions) && !found; k++) {33 found = !strcmp ( region[k].filename, tregion[i].filename);42 for (k = 0; (k < skylist[0].Nregions) && !found; k++) { 43 found = !strcmp (skylist[0].region[k][0].name, skyset[0].region[i][0].name); 34 44 } 35 if (!found) { 36 strcpy (region[Nregions].filename, tregion[i].filename); 37 region[Nregions].RA[0] = tregion[i].RA[0]; 38 region[Nregions].RA[1] = tregion[i].RA[1]; 39 region[Nregions].DEC[0] = tregion[i].DEC[0]; 40 region[Nregions].DEC[1] = tregion[i].DEC[1]; 41 Nregions ++; 42 if (Nregions >= NREGIONS) { 43 NREGIONS += 10; 44 REALLOCATE (region, GSCRegion, NREGIONS); 45 } 46 } 45 if (found) continue; 46 skylist[0].regions[Nregions] = skyset[0].regions[i]; 47 Nregions ++; 48 CHECK_REALLOCATE (skylist[0].regions, SkyRegions *, NREGIONS, Nregions, 10); 47 49 } 48 free (tregion);50 SkyListFree (skyset); 49 51 } 50 52 51 53 /* delete from all identified regions */ 52 for (i = 0; i < Nregions; i++) {53 if (VERBOSE) fprintf (stderr, "deleting from %s\n", region[i].filename);54 catalog.filename = region[i].filename; /* don't free region before catalog! */54 for (i = 0; i < skylist[0].Nregions; i++) { 55 if (VERBOSE) fprintf (stderr, "deleting from %s\n", skylist[0].region[i][0].filename); 56 catalog.filename = skylist[0].region[i][0].filename; /* don't free region before catalog! */ 55 57 switch (lock_catalog (&catalog, LCK_XCLD)) { 56 58 case 0: -
trunk/Ohana/src/libautocode/def/SkyRegion.d
r5445 r5448 2 2 EXTNAME SKY_REGION 3 3 TYPE BINTABLE 4 SIZE 564 SIZE 64 5 5 6 6 FIELD Rmin, R_MIN, float, … … 16 16 FIELD table, TABLE, char, does this entry have a table? 17 17 FIELD name, NAME, char[21], name / filename 18 FIELD filename, FILENAME, e_void, filename pointer -
trunk/Ohana/src/libautocode/generate
r5014 r5448 119 119 if ($type eq "unsigned int") { $pt1 = "J"; } 120 120 if ($type eq "e_time") { $pt1 = "J"; } 121 if ($type eq "e_void") { $pt1 = "L"; } 122 # e_void is a 64 bit pointer, cast to size_t 121 123 if ($type eq "float") { $pt1 = "E"; } 122 124 if ($type eq "double") { $pt1 = "D"; } … … 188 190 if ($type eq "unsigned int") { $pt1 = sprintf "I%s", $length; } 189 191 if ($type eq "e_time") { $pt1 = sprintf "I%s", $length; } 192 if ($type eq "e_void") { $pt1 = sprintf "I%s", $length; } 190 193 if ($type eq "float") { $pt1 = sprintf "F%s", $length; } 191 194 if ($type eq "double") { $pt1 = sprintf "F%s", $length; } … … 255 258 if ($type eq "unsigned int") { $T = "WORD"; $n = 4; } 256 259 if ($type eq "e_time") { $T = "WORD"; $n = 4; } 260 if ($type eq "e_void") { $T = "DBLE"; $n = 8; } 257 261 if ($type eq "float") { $T = "WORD"; $n = 4; } 258 262 if ($type eq "double") { $T = "DBLE"; $n = 8; } … … 285 289 if ($type eq "unsigned int") { $Nbytes += 4*$Np; $valid = 1; } 286 290 if ($type eq "e_time") { $Nbytes += 4*$Np; $valid = 1; } 291 if ($type eq "e_void") { $Nbytes += 8*$Np; $valid = 1; } 287 292 if ($type eq "float") { $Nbytes += 4*$Np; $valid = 1; } 288 293 if ($type eq "double") { $Nbytes += 8*$Np; $valid = 1; } -
trunk/Ohana/src/libdvo/include/dvo.h
r5441 r5448 338 338 SkyTable *SkyTableLoad (char *filename, int VERBOSE); 339 339 SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE); 340 SkyTable *SkyTableLoadOptimal (char *catdir, char *SKY_TABLE, char *GSCFILE, int VERBOSE); 340 341 SkyRegion *SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec); 341 342 SkyList *SkyListByPoint (SkyTable *table, double ra, double dec); -
trunk/Ohana/src/libdvo/src/skyregion_gsc.c
r5441 r5448 56 56 regions[Nr].Dmin = -90; 57 57 regions[Nr].Dmax = +90; 58 regions[Nr].index = 0; 59 regions[Nr].depth = 0; 60 regions[Nr].parent = -1; 61 regions[Nr].child = TRUE; 62 regions[Nr].table = (depth == 0); 58 regions[Nr].index = 0; 59 regions[Nr].depth = 0; 60 regions[Nr].parent = -1; 61 regions[Nr].child = TRUE; 62 regions[Nr].table = (depth == 0); 63 regions[Nr].filename = NULL; 63 64 strcpy (regions[Nr].name, "fullsky"); 65 64 66 65 67 No = Nr; … … 70 72 /* first north */ 71 73 for (i = 0; i < 12; i++, Nr++) { 72 regions[Nr].Rmin = 0; 73 regions[Nr].Rmax = 360; 74 regions[Nr].Dmin = DecBands[i]; 75 regions[Nr].Dmax = DecBands[i+1]; 76 regions[Nr].index = i+1; 77 regions[Nr].depth = 1; 78 regions[Nr].parent = 0; 79 regions[Nr].child = TRUE; 80 regions[Nr].table = (depth == 1); 74 regions[Nr].Rmin = 0; 75 regions[Nr].Rmax = 360; 76 regions[Nr].Dmin = DecBands[i]; 77 regions[Nr].Dmax = DecBands[i+1]; 78 regions[Nr].index = i+1; 79 regions[Nr].depth = 1; 80 regions[Nr].parent = 0; 81 regions[Nr].child = TRUE; 82 regions[Nr].table = (depth == 1); 83 regions[Nr].filename = NULL; 81 84 strcpy (regions[Nr].name, DecNames[i]); 82 85 } 83 86 /* now south */ 84 87 for (i = 0; i < 12; i++, Nr++) { 85 regions[Nr].Rmin = 0; 86 regions[Nr].Rmax = 360; 87 regions[Nr].Dmin = DecBands[i+14]; 88 regions[Nr].Dmax = DecBands[i+13]; 89 regions[Nr].index = i+1; 90 regions[Nr].depth = 1; 91 regions[Nr].parent = 0; 92 regions[Nr].child = TRUE; 93 regions[Nr].table = (depth == 1); 88 regions[Nr].Rmin = 0; 89 regions[Nr].Rmax = 360; 90 regions[Nr].Dmin = DecBands[i+14]; 91 regions[Nr].Dmax = DecBands[i+13]; 92 regions[Nr].index = i+1; 93 regions[Nr].depth = 1; 94 regions[Nr].parent = 0; 95 regions[Nr].child = TRUE; 96 regions[Nr].table = (depth == 1); 97 regions[Nr].filename = NULL; 94 98 strcpy (regions[Nr].name, DecNames[i+13]); 95 99 } … … 134 138 regions[Nr].Rmax = RA1; 135 139 136 regions[Nr].index = Nr; 137 regions[Nr].depth = 2; 138 regions[Nr].parent = No; 139 regions[Nr].child = TRUE; 140 regions[Nr].table = (depth == 2); 141 regions[Nr].childS = 0; 142 regions[Nr].childE = 0; 140 regions[Nr].index = Nr; 141 regions[Nr].depth = 2; 142 regions[Nr].parent = No; 143 regions[Nr].child = TRUE; 144 regions[Nr].table = (depth == 2); 145 regions[Nr].filename = NULL; 146 regions[Nr].childS = 0; 147 regions[Nr].childE = 0; 143 148 144 149 temp[5] = 0; … … 166 171 for (ny = 0; ny < NDIV; ny ++) { 167 172 for (nx = 0; nx < NDIV; nx ++) { 168 regions[Nr].Rmin = RA0 + (nx + 0)*dR; 169 regions[Nr].Rmax = RA0 + (nx + 1)*dR; 170 regions[Nr].Dmin = DEC0 + (ny + 0)*dD; 171 regions[Nr].Dmax = DEC0 + (ny + 1)*dD; 172 173 regions[Nr].index = Nr; 174 regions[Nr].depth = 3; 175 regions[Nr].parent = i; 176 regions[Nr].child = FALSE; 177 regions[Nr].table = (depth == 3); 178 regions[Nr].childS = 0; 179 regions[Nr].childE = 0; 173 regions[Nr].Rmin = RA0 + (nx + 0)*dR; 174 regions[Nr].Rmax = RA0 + (nx + 1)*dR; 175 regions[Nr].Dmin = DEC0 + (ny + 0)*dD; 176 regions[Nr].Dmax = DEC0 + (ny + 1)*dD; 177 178 regions[Nr].index = Nr; 179 regions[Nr].depth = 3; 180 regions[Nr].parent = i; 181 regions[Nr].child = FALSE; 182 regions[Nr].table = (depth == 3); 183 regions[Nr].filename = NULL; 184 regions[Nr].childS = 0; 185 regions[Nr].childE = 0; 180 186 181 187 temp[5] = 0; -
trunk/Ohana/src/libdvo/src/skyregion_io.c
r5445 r5448 39 39 ALLOCATE (skytable, SkyTable, 1); 40 40 skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL); 41 for (i = 0; i < skytable[0].Nregions; i++) { 42 skytable[0].regions[i].filename = NULL; 43 } 41 44 42 45 fits_free_header (&header); … … 79 82 } 80 83 84 SkyTable *SkyTableLoadOptimal (char *catdir, char *SKY_TABLE, char *GSCFILE, int SKY_DEPTH, int VERBOSE) { 85 86 char filename[256]; 87 struct stat filestat; 88 SkyTable *sky; 89 int status; 90 91 /* first option: CATDIR/SkyTable.fits */ 92 sprintf (filename, "%s/SkyTable.fits", CATDIR); 93 check_permissions (filename); 94 95 /* check for file existence */ 96 status = stat (filename, &filestat); 97 if (status == 0) { /* file exists, are permissions OK? */ 98 sky = SkyTableLoad (filename, VERBOSE); 99 if (sky == NULL) { 100 fprintf (stderr, "error loading sky table\n"); 101 exit (1); 102 } 103 return (sky); 104 } 105 106 /* first option: SKY_TABLE */ 107 if ((SKY_TABLE != NULL) && (SKY_TABLE[0] != 0)) { 108 status = stat (SKY_TABLE, &filestat); 109 if (status == 0) { /* file exists, are permissions OK? */ 110 sky = SkyTableLoad (SKY_TABLE, VERBOSE); 111 if (sky == NULL) { 112 fprintf (stderr, "error loading sky table\n"); 113 exit (1); 114 } 115 SkyTableSetDepth (sky, SKY_DEPTH); 116 117 /* write CATDIR copy */ 118 sprintf (filename, "%s/SkyTable.fits", CATDIR); 119 check_permissions (filename); 120 SkyTableSave (sky, filename); 121 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions); 122 return (sky); 123 } 124 } 125 126 sky = SkyTableFromGSC (GSCFILE, SKY_DEPTH, VERBOSE); 127 if (sky == NULL) { 128 fprintf (stderr, "error loading sky table\n"); 129 exit (1); 130 } 131 132 /* write CATDIR copy */ 133 sprintf (filename, "%s/SkyTable.fits", CATDIR); 134 check_permissions (filename); 135 SkyTableSave (sky, filename); 136 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions); 137 138 return (sky); 139 } 140 141 int SkyListSetFilenames (SkyList *list, char *path, char *ext) { 142 143 int i; 144 char line[256]; 145 146 // this generates the names, be sure to free when not needed 147 for (i = 0; i < list[0].Nregions; i++) { 148 sprintf (line, "%s/%s.%s", path, list[0].regions[i][0].name, ext); 149 list[0].regions[i][0].filename = strcreate (line); 150 } 151 152 return (TRUE); 153 } 154 -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r5441 r5448 119 119 120 120 /* user must be careful about mosaic registration */ 121 SkyList *SkyListByImage (SkyTable *table, int depth, Image *image , Coords *mosaic) {121 SkyList *SkyListByImage (SkyTable *table, int depth, Image *image) { 122 122 123 123 int i, j; … … 126 126 double Rmin, Rmax, Dmin, Dmax; 127 127 128 RegisterMosaic (mosaic);128 // XXX EAM : image/mosaic MUST be registered (if WRP) 129 129 SetImageCorners (X, Y, image); 130 130 … … 269 269 if (table == NULL) return (TRUE); 270 270 if (table[0].regions != NULL) { 271 for (i = 0; i < table[0].Nregions; i++) { 272 if (table[0].regions[i].filename != NULL) { 273 free (table[0].regions[i].filename); 274 } 275 } 271 276 free (table[0].regions); 272 277 } -
trunk/Ohana/src/opihi/dvo/catalog.c
r5320 r5448 9 9 # define MISSCALE 2 10 10 11 // XXX EAM : should this function be dropped? 11 12 int catlog (int argc, char **argv) { 12 13 -
trunk/Ohana/src/opihi/dvo/dmt.c
r5320 r5448 4 4 int dmt (int argc, char **argv) { 5 5 6 int i, m, k, N, N regions, Ngraph, SaveVectors;6 int i, m, k, N, Ngraph, SaveVectors; 7 7 int Ns, Nsec, NPTS; 8 8 char catdir[256], filename[256]; … … 13 13 Catalog catalog; 14 14 Graphdata graphmode, graphsky; 15 RegionFile *regions; 15 SkyTable *sky; 16 SkyList *skylist; 16 17 Vector Xvec, Yvec, Zvec, Rvec, Dvec; 17 18 Vector *vec1, *vec2, *vec3, *vec4, *vec5; … … 53 54 Ns = GetPhotcodeNsec (code[0].code); 54 55 56 /* load sky from correct table */ 57 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 58 SkyTableSetFilenames (sky, CATDIR, "cpt"); 59 55 60 Radius = MAX (fabs(graphsky.xmax), fabs(graphsky.ymax)); 56 regions = find_regions (graphsky.coords.crval1, graphsky.coords.crval2, Radius, &Nregions);61 skylist = SkyListByRadius (sky, -1, graphsky.coords.crval1, graphsky.coords.crval2, Radius); 57 62 58 63 N = 0; … … 66 71 } 67 72 68 for (k = 0; k < Nregions; k++) {73 for (k = 0; k < skylist[0].Nregions; k++) { 69 74 70 sprintf (filename, "%s/%s", catdir, regions[k].name);71 75 /* lock, load, unlock catalog */ 72 catalog.filename = filename;76 catalog.filename = skylist[0].regions[k][0].filename; 73 77 switch (lock_catalog (&catalog, LCK_SOFT)) { 74 78 case 2: -
trunk/Ohana/src/opihi/dvo/extract.c
r5320 r5448 1 1 # include "dvo1.h" 2 // XXX EAM : this function is deprecated 2 3 3 4 enum {ZERO, RA, DEC, MAG, dMAG, Xm, Xp, NMEAS, NMISS, REF, TYPE, NPHOT, NCODE, FLAG}; -
trunk/Ohana/src/opihi/dvo/gcat.c
r3462 r5448 3 3 int gcat (int argc, char **argv) { 4 4 5 int i, Nregions; 6 RegionFile *regions; 7 char filename[128]; 5 int i; 8 6 struct stat filestat; 9 7 double Ra, Dec, Radius; 8 SkyTable *sky; 9 SkyList *skylist; 10 10 char catdir[256]; 11 11 … … 17 17 } 18 18 19 /* load sky from correct table */ 20 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 21 SkyTableSetFilenames (sky, CATDIR, "cpt"); 22 19 23 Ra = atof (argv[1]); 20 24 Dec = atof (argv[2]); … … 24 28 Radius = 0.0001; 25 29 26 regions = find_regions (Ra, Dec, Radius, &Nregions);30 skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius); 27 31 28 for (i = 0; i < Nregions; i++) { 29 sprintf (filename, "%s/%s", catdir, regions[i].name); 30 if (stat (filename, &filestat) != -1) { 32 for (i = 0; i < skylist[0].Nregions; i++) { 33 if (stat (skylist[0].regions[i][0].filename, &filestat) != -1) { 31 34 fprintf (stderr, "%3d %s *\n", i, regions[i].name); 32 35 } else { … … 37 40 38 41 return (TRUE); 39 free (regions); 40 42 SkyListFree (regions); 41 43 } 42 -
trunk/Ohana/src/opihi/dvo/gstar.c
r5320 r5448 9 9 double Mcat, Mrel; 10 10 float *RA, *DEC; 11 int i, j, k, m, N, *N1, N regions, Nsec, NPTS;11 int i, j, k, m, N, *N1, Nsec, NPTS; 12 12 int Nstars, found, GetMeasures, Nlo, Nhi; 13 13 int SaveVectors; 14 14 Vector *vec1, *vec2, *vec3, *vec4; 15 RegionFile *regions; 15 SkyTable *sky; 16 SkyList *skylist; 16 17 Catalog catalog; 17 18 PhotCode *code; … … 52 53 while (Ra > 360.0) Ra -= 360.0; 53 54 54 regions = find_regions (Ra, Dec, Radius, &Nregions); 55 56 if (Nregions > 1) { 55 /* load sky from correct table */ 56 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 57 SkyTableSetFilenames (sky, CATDIR, "cpt"); 58 skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius); 59 60 if (skylist[0].Nregions > 1) { 57 61 fprintf (stderr, "warning, radius overlaps region boundary, not yet implemented\n"); 58 62 } 59 63 60 /* set filename, read in header */61 sprintf (filename, "%s/%s", catdir, regions[0].name);62 64 /* lock, load, unlock catalog */ 63 catalog.filename = filename;65 catalog.filename = skylist[0].regions[0][0].filename; 64 66 switch (lock_catalog (&catalog, LCK_SOFT)) { 65 67 case 2: -
trunk/Ohana/src/opihi/dvo/imdata.c
r5320 r5448 1 1 # include "dvo1.h" 2 void copy_region (GSCRegion *in, GSCRegion *out);3 2 4 3 int imdata (int argc, char **argv) { … … 13 12 Image *image; 14 13 Catalog catalog; 15 GSCRegion *region, *tregion; 14 SkyTable *sky; 15 SkyList *skylist, *skyset; 16 16 Vector *vec; 17 17 … … 80 80 GetTimeFormat (&TimeReference, &TimeFormat); 81 81 82 /* load sky from correct table */ 83 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 84 SkyTableSetFilenames (sky, CATDIR, "cpt"); 85 86 Nregions = 0; 87 NREGIONS = 10; 88 ALLOCATE (skylist, SkyList, 1); 89 ALLOCATE (skylist[0].regions, SkyRegions *, NREGIONS); 90 82 91 /* for each image of interest, find the appropriate region files */ 83 Nregion = 0;84 ALLOCATE (region, GSCRegion, 1);85 92 for (i = 0; i < Nsubset; i++) { 86 93 I = subset[i]; 94 87 95 if (!FindMosaicForImage (image, Nimage, I)) continue; 88 tregion = get_regions (&image[I], &Ntregion);89 REALLOCATE (region, GSCRegion, MAX (1, Nregion + Ntregion)); 90 for (j = 0; j < Ntregion; j++) {91 skip= FALSE;92 for (k = 0; (k < Nregion) && !skip; k++) {93 if (!strcmp (region[k].filename, tregion[j].filename)) skip = TRUE;94 } 95 if ( !skip) {96 copy_region (&tregion[j], ®ion[Nregion]);97 Nregion++;98 }99 } 100 free (tregion);96 skyset = SkyListByImage (table, -1, &image[I]); 97 98 for (j = 0; j < skyset[0].Nregions; j++) { 99 found = FALSE; 100 for (k = 0; (k < skylist[0].Nregion) && !found; k++) { 101 found = !strcmp (skylist[0].regions[k].name, skyset[0].regions[j].name); 102 } 103 if (found) continue; 104 skylist[0].regions[Nregions] = skyset[0].regions[j]; 105 Nregions ++; 106 CHECK_REALLOCATE (skylist[0].regions, SkyRegions *, NREGIONS, Nregions, 10); 107 } 108 SkyListFree (skyset); 101 109 } 102 110 free (subset); 103 for (i = 0; i < Nregion; i++) {104 fprintf (stderr, "try %s\n", region[i].filename);111 for (i = 0; i < skylist[0].Nregions; i++) { 112 fprintf (stderr, "try %s\n", skylist[0].regions[i][0].name); 105 113 } 106 114 … … 111 119 112 120 /* for each region file, extract the data of interest in the right time range */ 113 for (j = 0; j < Nregion; j++) {121 for (j = 0; j < skylist[0].Nregions; j++) { 114 122 115 123 /* get file name and open */ 116 strcpy (filename, region[j].filename); 117 catalog.filename = filename; 124 catalog.filename = skylist[0].regions[j][0].filename; 118 125 switch (lock_catalog (&catalog, LCK_SOFT)) { 119 126 case 2: … … 210 217 return (TRUE); 211 218 } 212 213 214 void copy_region (GSCRegion *in, GSCRegion *out) {215 216 out[0].RA[0] = in[0].RA[0];217 out[0].RA[1] = in[0].RA[1];218 out[0].DEC[0] = in[0].DEC[0];219 out[0].DEC[1] = in[0].DEC[1];220 strcpy (out[0].filename, in[0].filename);221 }222 -
trunk/Ohana/src/opihi/dvo/init.c
r5442 r5448 53 53 {"addxtra", addxtra, "add extra data to object"}, 54 54 {"getxtra", getxtra, "get extra data from object"}, 55 {"catalog", catlog, "plot catalog stars"}, 55 56 */ 56 57 … … 60 61 {"calextract", calextract, "extract photometry calibration"}, 61 62 {"calmextract", calmextract, "extract photometry calibration"}, 62 {"catalog", catlog, "plot catalog stars"},63 63 {"ccd", ccd, "plot color-color diagram"}, 64 64 {"cmatch", cmatch, "match two catalogs"}, … … 91 91 {"lightcurve", lightcurve, "extract lightcurve for a star"}, 92 92 {"mextract", mextract, "extract measure data values"}, 93 {"pcat", pcat,"plot catalog boundaries"},93 {"pcat", skycat, "plot catalog boundaries"}, 94 94 {"photcodes", photcodes, "list photometry codes"}, 95 95 {"pmeasure", pmeasure, "plot individual measurements"}, -
trunk/Ohana/src/opihi/dvo/lcat.c
r4689 r5448 5 5 double Radius; 6 6 int i, N, Nregions, ShowAll; 7 RegionFile *regions;8 7 char filename[128], exists; 9 8 struct stat filestat; … … 11 10 Graphdata graphmode; 12 11 int Ngraph; 12 SkyTable *sky; 13 SkyList *skylist; 13 14 14 15 Ngraph = 0; … … 16 17 17 18 VarConfig ("CATDIR", "%s", catdir); 19 20 /* load sky from correct table */ 21 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 22 SkyTableSetFilenames (sky, CATDIR, "cpt"); 18 23 19 24 ShowAll = FALSE; … … 28 33 29 34 Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax)); 30 regions = find_regions (graphmode.coords.crval1, graphmode.coords.crval2, Radius, &Nregions);35 skylist = SkyListByRadius (sky, -1, graphmode.coords.crval1, graphmode.coords.crval2, Radius); 31 36 32 for (i = 0; i < Nregions; i++) { 33 sprintf (filename, "%s/%s", catdir, regions[i].name); 37 for (i = 0; i < skylist[0].Nregions; i++) { 34 38 exists = 'Y'; 35 if (stat ( filename, &filestat) == -1) exists = 'N';39 if (stat (skylist[0].regions[i][0].filename, &filestat) == -1) exists = 'N'; 36 40 if (ShowAll) { 37 fprintf (stderr, "%3d %s %c\n", i, regions[i].name, exists);41 fprintf (stderr, "%3d %s %c\n", i, skylist[0].regions[i][0].name, exists); 38 42 } else { 39 43 if (exists == 'Y') { 40 fprintf (stderr, "%3d %s\n", i, regions[i].name);44 fprintf (stderr, "%3d %s\n", i, skylist[0].regions[i][0].name); 41 45 } 42 46 } … … 44 48 45 49 return (TRUE); 46 47 free (regions); 48 50 SkyListFree (regions); 49 51 } 50 52 -
trunk/Ohana/src/opihi/dvo/lcurve.c
r5320 r5448 8 8 int Ngraph, Xgraph, TimeFormat; 9 9 int Nstars, found, AutoLimits, ErrorBars, GalMag, AbsPhot, SaveVectors; 10 int i, j, m, N, NPTS, *N1 , Nregions;10 int i, j, m, N, NPTS, *N1; 11 11 time_t TimeReference; 12 12 struct tm *timeptr; 13 RegionFile *regions;14 13 Vector *xvec, *yvec; 15 14 Vector Xvec, Yvec, dYvec; 16 15 Catalog catalog; 17 16 Graphdata graphmode; 17 SkyTable *sky; 18 SkyList *skylist; 18 19 19 20 VarConfig ("CATDIR", "%s", catdir); … … 69 70 } 70 71 72 /* load sky from correct table */ 73 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 74 SkyTableSetFilenames (sky, CATDIR, "cpt"); 75 71 76 Ra = atof (argv[1]); 72 77 Dec = atof (argv[2]); 73 78 Radius = atof (argv[3]); 74 79 75 regions = find_regions (Ra, Dec, Radius, &Nregions);76 77 if ( Nregions > 1) {80 skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius); 81 82 if (skylist[0].Nregions > 1) { 78 83 fprintf (stderr, "warning, radius overlaps region boundary, not yet implemented\n"); 79 84 } 80 85 81 86 /* set filename, read in header */ 82 sprintf (filename, "%s/%s", catdir, regions[0].name); 83 catalog.filename = filename; 87 catalog.filename = skylist[0].regions[0][0].filename; 84 88 switch (lock_catalog (&catalog, LCK_SOFT)) { 85 89 case 2: … … 198 202 if (catalog.measure != 0) free (catalog.measure); 199 203 204 SkyListFree (skylist); 200 205 return (TRUE); 201 202 206 } -
trunk/Ohana/src/opihi/dvo/lightcurve.c
r5320 r5448 7 7 float *RA, *DEC; 8 8 int Nstars, found, PhotCodeSelect; 9 int i, j, k, m, N, NPTS, Nsec, RELPHOT, *N1, Nregions,TimeFormat;9 int i, j, k, m, N, NPTS, Nsec, RELPHOT, *N1, TimeFormat; 10 10 time_t TimeReference; 11 RegionFile *regions;12 11 Vector *tvec, *mvec, *dmvec; 13 12 Catalog catalog; … … 50 49 Radius = atof (argv[3]); 51 50 52 regions = find_regions (Ra, Dec, Radius, &Nregions); 51 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 52 SkyTableSetFilenames (sky, CATDIR, "cpt"); 53 skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius); 53 54 54 if ( Nregions > 1) {55 if (skylist[0].Nregions > 1) { 55 56 fprintf (stderr, "warning, radius overlaps region boundary, not yet implemented\n"); 56 57 } 57 58 58 59 /* set filename, read in header */ 59 sprintf (filename, "%s/%s", catdir, regions[0].name); 60 catalog.filename = filename; 60 catalog.filename = skylist[0].regions[0][0].filename; 61 61 switch (lock_catalog (&catalog, LCK_SOFT)) { 62 62 case 2: … … 148 148 if (catalog.secfilt != 0) free (catalog.secfilt); 149 149 150 SkyListFree (skylist); 150 151 return (TRUE); 151 152 152 } -
trunk/Ohana/src/opihi/dvo/pcat.c
r5442 r5448 2 2 int RD_to_XYpic (double *x, double *y, double r, double d, Coords *coords, double Rmin, double Rmax, double Rmid, int *leftside); 3 3 4 // XXX EAM : this function is deprecated (now points at skycat) 4 5 int pcat (int argc, char **argv) { 5 6 -
trunk/Ohana/src/opihi/dvo/pmeasure.c
r5320 r5448 5 5 FILE *f; 6 6 int i, j, k, m, N; 7 int InRegion, Nregions,Ngraph;7 int Ngraph; 8 8 char filename[128], catdir[256]; 9 9 double Mz, Mr, mag; … … 13 13 int PhotcodeClip; 14 14 15 SkyTable *sky; 16 SkyList *skylist; 15 17 Catalog catalog; 16 RegionFile *regions;17 18 Graphdata graphmode; 18 19 Vector Xvec, Yvec, Zvec; … … 23 24 if (VarConfig ("CATDIR", "%s", catdir) == NULL) return (FALSE); 24 25 25 regions = (RegionFile *) NULL;26 26 f = (FILE *) NULL; 27 27 Mz = 17.0; … … 68 68 } 69 69 70 InRegion = FALSE; 71 if ((N = get_argument (argc, argv, "-all"))) { 72 remove_argument (N, &argc, argv); 73 InRegion = TRUE; 74 } 75 76 if ((InRegion || (argc != 2)) && (!InRegion || (argc != 1))) { 77 fprintf (stderr, "USAGE: catalog (filename / -all) [-m M M] [-n N N] [-g] [-a RA DEC MAG] \n"); 70 if (argc != 2) { 71 fprintf (stderr, "USAGE: pmeasure (-all) [-m M M] [-p photcode] [-ID ID] [-flag value] [-x]\n"); 78 72 return (FALSE); 79 73 } 80 74 81 if (InRegion) {82 Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax)); 83 regions = find_regions (graphmode.coords.crval1, graphmode.coords.crval2, Radius, &Nregions);84 } else {85 Nregions = 1;86 }75 Radius = MAX (fabs(graphmode.xmax), fabs(graphmode.ymax)); 76 77 /* load sky from correct table */ 78 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 79 SkyTableSetFilenames (sky, CATDIR, "cpt"); 80 skylist = SkyListByRadius (sky, -1, graphmode.coords.crval1, graphmode.coords.crval2, Radius); 87 81 88 for (j = 0; j < Nregions; j++) {82 for (j = 0; j < skylist[0].Nregions; j++) { 89 83 catalog.average = 0; 90 84 91 if (InRegion) {92 sprintf (filename, "%s/%s", catdir, regions[j].name);93 } else {94 sprintf (filename, "%s/%s", catdir, argv[1]);95 }96 97 85 /* lock, load, unlock catalog */ 98 catalog.filename = filename;86 catalog.filename = skylist[0].regions[j][0].filename; 99 87 switch (lock_catalog (&catalog, LCK_SOFT)) { 100 88 case 2: -
trunk/Ohana/src/opihi/dvo/region_list.c
r4689 r5448 1 1 # include "dvo1.h" 2 3 /* XXX note : for RegionName or RegionList, we need to free the skylist 4 elements, but not in the case of radius selection - this implies 5 information carried back up */ 2 6 3 7 static int RegionSelect; … … 42 46 } 43 47 44 RegionFile *SelectRegions (char *RegionName, char *RegionList, int *nregions) {48 SkyList *SelectRegions (char *RegionName, char *RegionList) { 45 49 46 50 double Radius; 47 51 int Ngraph; 48 52 Graphdata graphsky; 49 RegionFile *regions; 53 SkyTable *sky; 54 SkyList *skylist; 50 55 51 56 /* determine region-file names */ 52 57 if (RegionName != NULL) { 53 *nregions = 1; 54 ALLOCATE (regions, RegionFile, 1); 55 strcpy (regions[0].name, RegionName); 58 ALLOCATE (skylist, SkyList, 1); 59 ALLOCATE (skylist[0].regions[0], SkyRegion *, 1); 60 ALLOCATE (skylist[0].regions[0][0], SkyRegion, 1); 61 strcpy (skylist[0].regions[0][0].name, RegionName); 62 sprintf (filename, "%s/%s.cpt", CATDIR, RegionName); 63 skylist[0].regions[0][0].filename = strcreate (filename); 56 64 free (RegionName); 57 65 RegionName = NULL; 58 return ( regions);66 return (skylist); 59 67 } 60 68 if (RegionList != NULL) { 61 regions = region_list (RegionList, nregions);69 skylist = SkyListLoadFile (RegionList); 62 70 free (RegionList); 63 71 RegionList = NULL; 64 return ( regions);72 return (skylist); 65 73 } 66 74 … … 72 80 73 81 Radius = MAX (fabs(graphsky.xmax), fabs(graphsky.ymax)); 74 regions = find_regions (graphsky.coords.crval1, graphsky.coords.crval2, Radius, nregions); 75 return (regions); 82 83 /* load sky from correct table */ 84 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 85 SkyTableSetFilenames (sky, CATDIR, "cpt"); 86 skylist = SkyListByRadius (sky, -1, graphmode.coords.crval1, graphmode.coords.crval2, Radius); 87 88 return (skylist); 76 89 } 77 90 91 /* XXX EAM this should perhaps return a skytable? */ 78 92 /* returns a list of region files names from file */ 79 RegionFile *region_list (char *filename, int *Nregions) {93 SkyList *SkyListFromFile (char *filename) { 80 94 95 FILE *f; 81 96 int NREGIONS, nregion; 82 RegionFile *regions; 83 FILE *f; 97 SkyList *skylist; 98 99 ALLOCATE (skylist, SkyList, 1); 84 100 85 101 f = fopen (filename, "r"); 86 102 if (f == NULL) { 87 103 fprintf (stderr, "ERROR: can't find region list file %s\n", filename); 88 *Nregions = 0; 89 return (NULL); 104 skylist[0].Nregions = 0; 105 skylist[0].regions = NULL; 106 return (skylist); 90 107 } 91 108 109 Nregions = 0; 92 110 NREGIONS = 50; 93 ALLOCATE (regions, RegionFile, NREGIONS); 94 nregion = 0; 111 ALLOCATE (skylist[0].regions, SkyRegion *, NREGIONS); 95 112 96 while (fscanf (f, "%s", regions[nregion].name) != EOF) { 97 nregion ++; 98 if (nregion == NREGIONS) { 99 NREGIONS += 50; 100 REALLOCATE (regions, RegionFile, NREGIONS); 113 while (fscanf (f, "%s", filename) != EOF) { 114 ALLOCATE (skylist[0].regions[Nregions], SkyRegion, 1); 115 strcpy (skylist[0].regions[Nregions][0].name, filename); 116 sprintf (filename, "%s/%s.cpt", CATDIR, skylist[0].regions[Nregions][0].name); 117 skylist[0].regions[Nregions][0].filename = strcreate (filename); 118 Nregions ++; 119 CHECK_REALLOCATE (skylist[0].regions, SkyRegion *, NREGIONS, Nregions, 50); 101 120 } 102 121 } -
trunk/Ohana/src/opihi/dvo/subpix.c
r5320 r5448 5 5 int subpix (int argc, char **argv) { 6 6 7 int i, j, I, Nlo, Nhi, Nentry, Nstars, N regions, Nimage, Nmeasure;7 int i, j, I, Nlo, Nhi, Nentry, Nstars, Nimage, Nmeasure; 8 8 int *index, *entry; 9 9 int Nmin, Nsub, NSUB, status; … … 17 17 Measure *measure; 18 18 Image *image; 19 RegionFile *regions;20 19 Catalog catalog; 21 20 … … 35 34 Radius = atof (argv[3]); 36 35 36 /* load sky from correct table */ 37 sky = SkyTableLoadOptimal (CATDIR, SKY_TABLE, GSCFILE, -1, VERBOSE); 38 SkyTableSetFilenames (sky, CATDIR, "cpt"); 39 37 40 /* load star nearest position */ 38 regions = find_regions (Ra, Dec, Radius, &Nregions);39 if ( Nregions > 1) {41 skylist = SkyListByRadius (sky, -1, Ra, Dec, Radius); 42 if (skylist[0].Nregions > 1) { 40 43 fprintf (stderr, "warning, radius overlaps region boundary, not yet implemented\n"); 41 44 } 42 45 43 46 /* lock, load, unlock catalog */ 44 sprintf (filename, "%s/%s", catdir, regions[0].name); 45 catalog.filename = filename; 47 catalog.filename = skylist[0].regions[0][0].filename; 46 48 switch (lock_catalog (&catalog, LCK_SOFT)) { 47 49 case 2: … … 92 94 if (catalog.average != 0) free (catalog.average); 93 95 if (catalog.measure != 0) free (catalog.measure); 94 free (regions);96 SkyListFree (skylist); 95 97 return (TRUE); 96 98 } … … 158 160 free (image); 159 161 free (index); 160 free (regions);162 SkyListFree (regions); 161 163 162 164 return (TRUE); -
trunk/Ohana/src/relphot/src/relphot.c
r4864 r5448 16 16 17 17 /* load regions and images based on seed region */ 18 // XXX EAM : load images and regions based on bounds, not name 18 19 region = load_images (&db, argv[1], &Ncatalog, &fullregion); 19 20
Note:
See TracChangeset
for help on using the changeset viewer.
