Changeset 5451 for trunk/Ohana/src/libdvo
- Timestamp:
- Oct 27, 2005, 7:10:17 PM (21 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 4 edited
-
include/dvo.h (modified) (1 diff)
-
src/skyregion_gsc.c (modified) (6 diffs)
-
src/skyregion_io.c (modified) (9 diffs)
-
src/skyregion_ops.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/include/dvo.h
r5448 r5451 335 335 336 336 /* skyregion APIs */ 337 int SkyTableSave (SkyTable *table, char *filename); 338 SkyTable *SkyTableLoad (char *filename, int VERBOSE); 339 SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE); 340 SkyTable *SkyTableLoadOptimal (char *catdir, char *SKY_TABLE, char *GSCFILE, int VERBOSE); 341 SkyRegion *SkyRegionByPoint (SkyTable *table, int depth, double ra, double dec); 342 SkyList *SkyListByPoint (SkyTable *table, double ra, double dec); 343 SkyList *SkyListByRadius (SkyTable *table, int depth, double RA, double DEC, double radius); 344 SkyList *SkyListByPatch (SkyTable *table, int depth, SkyRegion *patch); 345 SkyList *SkyListByImage (SkyTable *table, int depth, Image *image, Coords *mosaic); 346 SkyList *SkyListByBounds (SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax); 347 SkyList *SkyListChildrenByBounds (SkyTable *table, int No, int depth, double Rmin, double Rmax, double Dmin, double Dmax); 348 int SkyListFree (SkyList *list); 349 int SkyTableFree (SkyTable *table); 337 int SkyTableSave PROTO((SkyTable *table, char *filename)); 338 SkyTable *SkyTableLoad PROTO((char *filename, int VERBOSE)); 339 SkyTable *SkyTableFromGSC PROTO((char *filename, int depth, int VERBOSE)); 340 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int depth, int VERBOSE)); 341 int SkyTableSetDepth PROTO((SkyTable *sky, int depth)); 342 SkyRegion *SkyRegionByPoint PROTO((SkyTable *table, int depth, double ra, double dec)); 343 SkyList *SkyListByPoint PROTO((SkyTable *table, double ra, double dec)); 344 SkyList *SkyListByRadius PROTO((SkyTable *table, int depth, double RA, double DEC, double radius)); 345 SkyList *SkyListByPatch PROTO((SkyTable *table, int depth, SkyRegion *patch)); 346 SkyList *SkyListByImage PROTO((SkyTable *table, int depth, Image *image)); 347 SkyList *SkyListByBounds PROTO((SkyTable *table, int depth, double Rmin, double Rmax, double Dmin, double Dmax)); 348 SkyList *SkyListChildrenByBounds PROTO((SkyTable *table, int No, int depth, double Rmin, double Rmax, double Dmin, double Dmax)); 349 int SkyListFree PROTO((SkyList *list, int ELEMENTS)); 350 int SkyTableFree PROTO((SkyTable *table)); 351 int SkyListSetFilenames PROTO((SkyList *list, char *path, char *ext)); 352 int SkyTableSetFilenames PROTO((SkyTable *sky, char *path, char *ext)); 350 353 351 354 # endif -
trunk/Ohana/src/libdvo/src/skyregion_gsc.c
r5448 r5451 3 3 # define NDIV 4 4 4 5 int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 0, 6 597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48, 0}; 7 8 double DecBands[] = {0.0, +7.5, +15.0, +22.5, +30.0, +37.5, +45.0, +52.5, +60.0, +67.5, +75.0, +82.5, +90.0, 9 0.0, -7.5, -15.0, -22.5, -30.0, -37.5, -45.0, -52.5, -60.0, -67.5, -75.0, -82.5, -90.0}; 10 11 char *DecNames[] = { 12 "n0000", "n0730", "n1500", "n2230", "n3000", "n3730", "n4500", "n5230", "n6000", "n6730", "n7500", "n8230", "none", 13 "s0000", "s0730", "s1500", "s2230", "s3000", "s3730", "s4500", "s5230", "s6000", "s6730", "s7500", "s8230", "none", 14 }; 5 static int DecLines[] = {593, 584, 551, 530, 522, 465, 406, 362, 280, 198, 123, 24, 0, 6 597, 578, 574, 577, 534, 499, 442, 376, 294, 212, 144, 48, 0}; 7 8 static double DecBands[] = {0.0, +7.5, +15.0, +22.5, +30.0, +37.5, +45.0, +52.5, +60.0, +67.5, +75.0, +82.5, +90.0, 9 0.0, -7.5, -15.0, -22.5, -30.0, -37.5, -45.0, -52.5, -60.0, -67.5, -75.0, -82.5, -90.0}; 10 11 static char *DecNames[] = {"n0000", "n0730", "n1500", "n2230", "n3000", "n3730", "n4500", "n5230", "n6000", "n6730", "n7500", "n8230", "none", 12 "s0000", "s0730", "s1500", "s2230", "s3000", "s3730", "s4500", "s5230", "s6000", "s6730", "s7500", "s8230", "none"}; 15 13 16 14 SkyTable *SkyTableFromGSC (char *filename, int depth, int VERBOSE) { … … 61 59 regions[Nr].child = TRUE; 62 60 regions[Nr].table = (depth == 0); 63 regions[Nr].filename = NULL;61 regions[Nr].filename = (e_void) NULL; 64 62 strcpy (regions[Nr].name, "fullsky"); 65 63 … … 81 79 regions[Nr].child = TRUE; 82 80 regions[Nr].table = (depth == 1); 83 regions[Nr].filename = NULL;81 regions[Nr].filename = (e_void) NULL; 84 82 strcpy (regions[Nr].name, DecNames[i]); 85 83 } … … 95 93 regions[Nr].child = TRUE; 96 94 regions[Nr].table = (depth == 1); 97 regions[Nr].filename = NULL;95 regions[Nr].filename = (e_void) NULL; 98 96 strcpy (regions[Nr].name, DecNames[i+13]); 99 97 } … … 143 141 regions[Nr].child = TRUE; 144 142 regions[Nr].table = (depth == 2); 145 regions[Nr].filename = NULL;143 regions[Nr].filename = (e_void) NULL; 146 144 regions[Nr].childS = 0; 147 145 regions[Nr].childE = 0; … … 181 179 regions[Nr].child = FALSE; 182 180 regions[Nr].table = (depth == 3); 183 regions[Nr].filename = NULL;181 regions[Nr].filename = (e_void) NULL; 184 182 regions[Nr].childS = 0; 185 183 regions[Nr].childE = 0; -
trunk/Ohana/src/libdvo/src/skyregion_io.c
r5448 r5451 9 9 SkyTable *skytable; 10 10 FILE *f; 11 int i; 11 12 12 13 f = fopen (filename, "r"); … … 40 41 skytable[0].regions = fits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL); 41 42 for (i = 0; i < skytable[0].Nregions; i++) { 42 skytable[0].regions[i].filename = NULL;43 skytable[0].regions[i].filename = (e_void) NULL; 43 44 } 44 45 … … 82 83 } 83 84 84 SkyTable *SkyTableLoadOptimal (char *catdir, char * SKY_TABLE, char *GSCFILE, int SKY_DEPTH, int VERBOSE) {85 SkyTable *SkyTableLoadOptimal (char *catdir, char *skyfile, char *gscfile, int depth, int verbose) { 85 86 86 87 char filename[256]; … … 89 90 int status; 90 91 91 /* first option: CATDIR/SkyTable.fits */92 sprintf (filename, "%s/SkyTable.fits", CATDIR);93 check_ permissions (filename);92 /* first option: catdir/SkyTable.fits */ 93 sprintf (filename, "%s/SkyTable.fits", catdir); 94 check_file_access (filename, FALSE, verbose); 94 95 95 96 /* check for file existence */ 96 97 status = stat (filename, &filestat); 97 98 if (status == 0) { /* file exists, are permissions OK? */ 98 sky = SkyTableLoad (filename, VERBOSE);99 sky = SkyTableLoad (filename, verbose); 99 100 if (sky == NULL) { 100 101 fprintf (stderr, "error loading sky table\n"); … … 105 106 106 107 /* first option: SKY_TABLE */ 107 if (( SKY_TABLE != NULL) && (SKY_TABLE[0] != 0)) {108 status = stat ( SKY_TABLE, &filestat);108 if ((skyfile != NULL) && (skyfile[0] != 0)) { 109 status = stat (skyfile, &filestat); 109 110 if (status == 0) { /* file exists, are permissions OK? */ 110 sky = SkyTableLoad ( SKY_TABLE, VERBOSE);111 sky = SkyTableLoad (skyfile, verbose); 111 112 if (sky == NULL) { 112 113 fprintf (stderr, "error loading sky table\n"); 113 114 exit (1); 114 115 } 115 SkyTableSetDepth (sky, SKY_DEPTH);116 SkyTableSetDepth (sky, depth); 116 117 117 118 /* write CATDIR copy */ 118 sprintf (filename, "%s/SkyTable.fits", CATDIR);119 check_ permissions (filename);119 sprintf (filename, "%s/SkyTable.fits", catdir); 120 check_file_access (filename, FALSE, verbose); 120 121 SkyTableSave (sky, filename); 121 122 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions); … … 124 125 } 125 126 126 sky = SkyTableFromGSC ( GSCFILE, SKY_DEPTH, VERBOSE);127 sky = SkyTableFromGSC (gscfile, depth, verbose); 127 128 if (sky == NULL) { 128 129 fprintf (stderr, "error loading sky table\n"); … … 131 132 132 133 /* write CATDIR copy */ 133 sprintf (filename, "%s/SkyTable.fits", CATDIR);134 check_ permissions (filename);134 sprintf (filename, "%s/SkyTable.fits", catdir); 135 check_file_access (filename, FALSE, verbose); 135 136 SkyTableSave (sky, filename); 136 137 fits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions); … … 147 148 for (i = 0; i < list[0].Nregions; i++) { 148 149 sprintf (line, "%s/%s.%s", path, list[0].regions[i][0].name, ext); 149 list[0].regions[i][0].filename = strcreate (line);150 list[0].regions[i][0].filename = (e_void) strcreate (line); 150 151 } 151 152 … … 153 154 } 154 155 156 int SkyTableSetFilenames (SkyTable *sky, char *path, char *ext) { 157 158 int i; 159 char line[256]; 160 161 // this generates the names, be sure to free when not needed 162 for (i = 0; i < sky[0].Nregions; i++) { 163 sprintf (line, "%s/%s.%s", path, sky[0].regions[i].name, ext); 164 sky[0].regions[i].filename = (e_void) strcreate (line); 165 } 166 167 return (TRUE); 168 } 169 -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r5448 r5451 121 121 SkyList *SkyListByImage (SkyTable *table, int depth, Image *image) { 122 122 123 int i,j;123 int j; 124 124 SkyList *list; 125 125 double r, d, X[4], Y[4]; … … 172 172 } 173 173 list[0].Nregions += extra[0].Nregions; 174 SkyListFree (extra );174 SkyListFree (extra, FALSE); 175 175 } else { 176 176 list = SkyListChildrenByBounds (table, -1, depth, Rmin, Rmax, Dmin, Dmax); … … 226 226 } 227 227 Nnew += children[0].Nregions; 228 SkyListFree (children );228 SkyListFree (children, FALSE); 229 229 } else { 230 230 list[0].regions[Nnew] = ®ion[i]; … … 254 254 } 255 255 256 int SkyListFree (SkyList *list) { 256 int SkyTableSetDepth (SkyTable *sky, int depth) { 257 258 int i; 259 260 for (i = 0; i < sky[0].Nregions; i++) { 261 sky[0].regions[i].table = (sky[0].regions[i].depth == depth); 262 } 263 return (TRUE); 264 } 265 266 int SkyListFree (SkyList *list, int ELEMENTS) { 267 268 int i; 257 269 258 270 if (list == NULL) return (TRUE); 259 271 if (list[0].regions != NULL) { 272 if (ELEMENTS) { 273 for (i = 0; i < list[0].Nregions; i++) { 274 if (list[0].regions[i][0].filename != (e_void) NULL) { 275 free ((size_t *) list[0].regions[i][0].filename); 276 } 277 free (list[0].regions[i]); 278 } 279 } 260 280 free (list[0].regions); 261 281 } … … 267 287 int SkyTableFree (SkyTable *table) { 268 288 289 int i; 290 269 291 if (table == NULL) return (TRUE); 270 292 if (table[0].regions != NULL) { 271 293 for (i = 0; i < table[0].Nregions; i++) { 272 if (table[0].regions[i].filename != NULL) {273 free ( table[0].regions[i].filename);294 if (table[0].regions[i].filename != (e_void) NULL) { 295 free ((size_t *) table[0].regions[i].filename); 274 296 } 275 297 }
Note:
See TracChangeset
for help on using the changeset viewer.
