Changeset 33215
- Timestamp:
- Feb 8, 2012, 8:04:55 AM (14 years ago)
- Location:
- branches/eam_branches/ipp-20111122/Ohana/src/libdvo
- Files:
-
- 4 edited
-
include/dvo.h (modified) (2 diffs)
-
src/dvo_catalog_mef.c (modified) (1 diff)
-
src/skyregion_gsc.c (modified) (6 diffs)
-
src/skyregion_io.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20111122/Ohana/src/libdvo/include/dvo.h
r33129 r33215 197 197 char **filename; 198 198 SkyRegion *regions; 199 char hosts[80]; 199 200 } SkyTable; 200 201 … … 506 507 int SkyTableSave PROTO((SkyTable *table, char *filename)); 507 508 SkyTable *SkyTableLoad PROTO((char *filename, int VERBOSE)); 509 char *SkyTableFilename PROTO((char *catdir)); 508 510 SkyTable *SkyTableFromGSC PROTO((char *filename, int depth, int VERBOSE)); 509 511 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int readwrite, int depth, int VERBOSE)); -
branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/dvo_catalog_mef.c
r29938 r33215 10 10 Matrix matrix; 11 11 FTable ftable; 12 SecFilt *primary; 12 13 SecFilt *primary = NULL; 13 14 14 15 f = catalog[0].f; -
branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/skyregion_gsc.c
r20936 r33215 91 91 L0.regions[0].childS = 0; 92 92 L0.regions[0].childE = NDECBANDS; 93 L0.regions[0].hostFlags = 0; 94 L0.regions[0].hostID = 0; 95 L0.regions[0].backupID = 0; 93 96 strcpy (L0.regions[0].name, "fullsky"); 94 97 if (DEBUG) SkyRegionPrint (&L0.regions[0]); … … 117 120 L1.regions[i].child = TRUE; 118 121 L1.regions[i].table = -1; 122 L1.regions[i].hostFlags = 0; 123 L1.regions[i].hostID = 0; 124 L1.regions[i].backupID = 0; 119 125 strcpy (L1.regions[i].name, DecNames[i]); 120 126 if (DEBUG) SkyRegionPrint (&L1.regions[i]); … … 152 158 ALLOCATE (skytable[0].regions, SkyRegion, 1); 153 159 skytable[0].Nregions = 0; 160 161 // define the host table filename 162 strcpy (skytable->hosts, "HostTable.dat"); 154 163 155 164 // L0, L1, L2, L3, L4 all have index ranges of 0 -> Nregions and parent values pointing … … 417 426 L2[0].regions[Nr].childS = 0; 418 427 L2[0].regions[Nr].childE = 0; 428 L2[0].regions[Nr].hostFlags = 0; 429 L2[0].regions[Nr].hostID = 0; 430 L2[0].regions[Nr].backupID = 0; 419 431 420 432 /* define names for L2 regions */ … … 464 476 L3[0].regions[Nr].childS = 0; 465 477 L3[0].regions[Nr].childE = 0; 478 L3[0].regions[Nr].hostFlags = 0; 479 L3[0].regions[Nr].hostID = 0; 480 L3[0].regions[Nr].backupID = 0; 466 481 467 482 if (DEBUG >= 3) SkyRegionPrint (&L3[0].regions[Nr]); … … 514 529 L4[0].regions[Nr].childS = 0; 515 530 L4[0].regions[Nr].childE = 0; 531 L4[0].regions[Nr].hostFlags = 0; 532 L4[0].regions[Nr].hostID = 0; 533 L4[0].regions[Nr].backupID = 0; 516 534 517 535 sprintf (name, "%s.%02d", L3[0].name, Nbox); -
branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/skyregion_io.c
r29001 r33215 39 39 40 40 ALLOCATE (skytable, SkyTable, 1); 41 memset (skytable->hosts, 0, 80); 41 42 skytable[0].regions = gfits_table_get_SkyRegion (&ftable, &skytable[0].Nregions, NULL); 42 43 if (!skytable[0].regions) { … … 50 51 } 51 52 53 // 2012.02.08 : I updated the schema for SkyTable.dat to add 3 fields by stealing the 54 // last 3 bytes of the 'name' field (going from 21 bytes to 18 bytes). This was safe 55 // because no files had yet been defined with more than 16 bytes in the names, leave 56 // room for 1 more byte includig the EOF char. 57 58 // When we load old tables, we need to zero out the values of those 3 new fields (they 59 // may have garbage left over). To distinguish old and new tables, I add the field 60 // 'HOSTS' to the PHU header (which also tells the location of the host table, if used). 61 62 int haveHosts = gfits_scan (&header, "HOSTS", "%s", 1, skytable->hosts); 63 if (!haveHosts) { 64 strcpy (skytable->hosts, "HostTable.dat"); 65 for (i = 0; i < skytable[0].Nregions; i++) { 66 if (strlen(skytable[0].regions[i].name) > 17) { 67 fprintf (stderr, "WARNING : this skytable has some names longer than the adjusted size of 17 bytes.\n"); 68 fprintf (stderr, " This is not compatible with the current SkyTable definition\n"); 69 exit (1); 70 } 71 skytable[0].regions[i].hostFlags = 0; 72 skytable[0].regions[i].hostID = 0; 73 skytable[0].regions[i].backupID = 0; 74 } 75 } 76 52 77 gfits_free_header (&header); 53 78 gfits_free_matrix (&matrix); … … 71 96 gfits_create_header (&header); 72 97 gfits_create_matrix (&header, &matrix); 98 gfits_print (&header, "HOSTS", "%s", 1, skytable->hosts); 73 99 74 100 gfits_table_set_SkyRegion (&ftable, skytable[0].regions, skytable[0].Nregions); … … 91 117 SkyTable *SkyTableLoadOptimal (char *catdir, char *skyfile, char *gscfile, int readwrite, int depth, int verbose) { 92 118 93 char filename[256];119 char *filename; 94 120 struct stat filestat; 95 121 SkyTable *sky; 96 122 97 /* first option: CATDIR/SkyTable.fits*/98 sprintf (filename, "%s/SkyTable.fits",catdir);123 /* first option: in CATDIR */ 124 filename = SkyTableFilename (catdir); 99 125 if (stat (filename, &filestat)) goto SKYFILE; 100 126 if (!check_file_access (filename, FALSE, readwrite, verbose)) goto SKYFILE; … … 115 141 if (sky == NULL) { 116 142 fprintf (stderr, "error loading sky table\n"); 143 free (filename); 117 144 return (NULL); 118 145 } … … 121 148 122 149 /* create CATDIR copy */ 123 sprintf (filename, "%s/SkyTable.fits", catdir);124 150 check_file_access (filename, FALSE, readwrite, verbose); 125 if (!SkyTableSave (sky, filename)) return NULL; 151 if (!SkyTableSave (sky, filename)) { 152 free (filename); 153 return NULL; 154 } 126 155 127 156 gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyTable), sky[0].Nregions); 157 free (filename); 128 158 return (sky); 129 159 … … 134 164 if (gscfile == NULL) { 135 165 fprintf (stderr, "error loading sky table from existing db (%s)\n", catdir); 166 free (filename); 136 167 return (NULL); 137 168 } … … 140 171 if (sky == NULL) { 141 172 fprintf (stderr, "error loading sky table\n"); 173 free (filename); 142 174 return (NULL); 143 175 } 144 176 145 177 /* create CATDIR copy */ 146 sprintf (filename, "%s/SkyTable.fits", catdir);147 178 check_file_access (filename, FALSE, readwrite, verbose); 148 if (!SkyTableSave (sky, filename)) return NULL; 179 if (!SkyTableSave (sky, filename)) { 180 free (filename); 181 return NULL; 182 } 149 183 150 184 gfits_convert_SkyRegion (sky[0].regions, sizeof (SkyRegion), sky[0].Nregions); 185 free (filename); 151 186 return (sky); 152 187 } … … 180 215 } 181 216 217 // given a CATDIR, return an allocated string with the full skytable name 218 char *SkyTableFilename (char *catdir) { 219 220 if (!catdir) return NULL; 221 222 char *skyfile; 223 ALLOCATE (skyfile, char, strlen(catdir) + strlen("/SkyTable.fits") + 1); 224 sprintf (skyfile, "%s/SkyTable.fits", catdir); 225 226 return skyfile; 227 }
Note:
See TracChangeset
for help on using the changeset viewer.
