Changeset 33649
- Timestamp:
- Apr 1, 2012, 2:28:17 PM (14 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 30 edited
- 6 copied
-
Makefile (modified) (5 diffs)
-
include/dvo.h (modified) (14 diffs)
-
include/dvodb.h (modified) (4 diffs)
-
include/ps1_v3_defs.h (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/include/ps1_v3_defs.h )
-
src/HostTable.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/HostTable.c )
-
src/LoadImages.c (modified) (1 diff)
-
src/LoadPhotcodesFITS.c (modified) (1 diff)
-
src/SavePhotcodesFITS.c (modified) (1 diff)
-
src/dbExtractAverages.c (modified) (1 diff)
-
src/dbExtractMeasures.c (modified) (6 diffs)
-
src/dbFields.c (modified) (5 diffs)
-
src/dvo_catalog.c (modified) (2 diffs)
-
src/dvo_catalog_mef.c (modified) (12 diffs)
-
src/dvo_catalog_raw.c (modified) (8 diffs)
-
src/dvo_catalog_split.c (modified) (3 diffs)
-
src/dvo_convert.c (modified) (10 diffs)
-
src/dvo_convert_PS1_DEV_1.c (modified) (4 diffs)
-
src/dvo_convert_PS1_DEV_2.c (modified) (4 diffs)
-
src/dvo_convert_PS1_DEV_3.c (modified) (2 diffs)
-
src/dvo_convert_PS1_REF.c (modified) (4 diffs)
-
src/dvo_convert_PS1_V1.c (modified) (4 diffs)
-
src/dvo_convert_PS1_V2.c (modified) (4 diffs)
-
src/dvo_convert_PS1_V3.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c )
-
src/dvo_convert_elixir.c (modified) (4 diffs)
-
src/dvo_convert_loneos.c (modified) (4 diffs)
-
src/dvo_convert_panstarrs_DEV_0.c (modified) (4 diffs)
-
src/dvo_convert_panstarrs_DEV_1.c (modified) (4 diffs)
-
src/dvo_image.c (modified) (1 diff)
-
src/dvo_image_raw.c (modified) (2 diffs)
-
src/dvo_photcode_ops.c (modified) (1 diff)
-
src/dvo_photcode_utils.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/dvo_photcode_utils.c )
-
src/dvo_tiny_values.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/dvo_tiny_values.c )
-
src/flatcorr_io.c (copied) (copied from branches/eam_branches/ipp-20111122/Ohana/src/libdvo/src/flatcorr_io.c )
-
src/skyregion_gsc.c (modified) (6 diffs)
-
src/skyregion_io.c (modified) (9 diffs)
-
src/skyregion_ops.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/Makefile
r31636 r33649 34 34 $(DESTINC)/ps1_v1_defs.h \ 35 35 $(DESTINC)/ps1_v2_defs.h \ 36 $(DESTINC)/ps1_v3_defs.h \ 36 37 $(DESTINC)/ps1_ref_defs.h 37 38 … … 43 44 $(SRC)/dvosorts.$(ARCH).o \ 44 45 $(SRC)/dvo_photcode_ops.$(ARCH).o \ 46 $(SRC)/dvo_photcode_utils.$(ARCH).o \ 45 47 $(SRC)/LoadPhotcodes.$(ARCH).o \ 46 48 $(SRC)/LoadPhotcodesText.$(ARCH).o \ … … 51 53 $(SRC)/mosaic_astrom.$(ARCH).o \ 52 54 $(SRC)/fits_db.$(ARCH).o \ 55 $(SRC)/dvo_tiny_values.$(ARCH).o \ 53 56 $(SRC)/dvo_image.$(ARCH).o \ 54 57 $(SRC)/dvo_image_raw.$(ARCH).o \ … … 69 72 $(SRC)/dvo_convert_PS1_V1.$(ARCH).o \ 70 73 $(SRC)/dvo_convert_PS1_V2.$(ARCH).o \ 74 $(SRC)/dvo_convert_PS1_V3.$(ARCH).o \ 71 75 $(SRC)/dvo_convert_PS1_REF.$(ARCH).o \ 76 $(SRC)/flatcorr_io.$(ARCH).o \ 72 77 $(SRC)/skyregion_io.$(ARCH).o \ 73 78 $(SRC)/skyregion_gsc.$(ARCH).o \ … … 94 99 $(SRC)/match_image.$(ARCH).o \ 95 100 $(SRC)/db_utils.$(ARCH).o \ 96 $(SRC)/convert.$(ARCH).o 101 $(SRC)/convert.$(ARCH).o \ 102 $(SRC)/HostTable.$(ARCH).o 97 103 98 104 -
trunk/Ohana/src/libdvo/include/dvo.h
r31663 r33649 26 26 DVO_FORMAT_PS1_V1, 27 27 DVO_FORMAT_PS1_V2, 28 DVO_FORMAT_PS1_V3, 28 29 } DVOTableFormat; 29 30 … … 95 96 /* Image.code values -- these values are 32 bit (as of PS1_V1) */ 96 97 typedef enum { 97 ID_IMAGE_NEW = 0x00000000, /* no calibrations yet attempted */ 98 ID_IMAGE_PHOTOM_NOCAL = 0x00000001, /* user-set value used within relphot: ignore */ 99 ID_IMAGE_PHOTOM_POOR = 0x00000002, /* relphot says image is bad (dMcal > limit) */ 100 ID_IMAGE_PHOTOM_SKIP = 0x00000004, /* user-set value: assert that this image has bad photometry */ 101 ID_IMAGE_PHOTOM_FEW = 0x00000008, /* currently too few measurements for photometry */ 102 ID_IMAGE_ASTROM_NOCAL = 0x00000010, /* user-set value used within relastro: ignore */ 103 ID_IMAGE_ASTROM_POOR = 0x00000020, /* relastro says image is bad (dR,dD > limit) */ 104 ID_IMAGE_ASTROM_FAIL = 0x00000040, /* relastro fit diverged, fit not applied */ 105 ID_IMAGE_ASTROM_SKIP = 0x00000080, /* user-set value: assert that this image has bad astrometry */ 106 ID_IMAGE_ASTROM_FEW = 0x00000100, /* currently too few measurements for astrometry */ 98 ID_IMAGE_NEW = 0x00000000, /* no calibrations yet attempted */ 99 ID_IMAGE_PHOTOM_NOCAL = 0x00000001, /* user-set value used within relphot: ignore */ 100 ID_IMAGE_PHOTOM_POOR = 0x00000002, /* relphot says image is bad (dMcal > limit) */ 101 ID_IMAGE_PHOTOM_SKIP = 0x00000004, /* user-set value: assert that this image has bad photometry */ 102 ID_IMAGE_PHOTOM_FEW = 0x00000008, /* currently too few measurements for photometry */ 103 ID_IMAGE_ASTROM_NOCAL = 0x00000010, /* user-set value used within relastro: ignore */ 104 ID_IMAGE_ASTROM_POOR = 0x00000020, /* relastro says image is bad (dR,dD > limit) */ 105 ID_IMAGE_ASTROM_FAIL = 0x00000040, /* relastro fit diverged, fit not applied */ 106 ID_IMAGE_ASTROM_SKIP = 0x00000080, /* user-set value: assert that this image has bad astrometry */ 107 ID_IMAGE_ASTROM_FEW = 0x00000100, /* currently too few measurements for astrometry */ 108 ID_IMAGE_PHOTOM_UBERCAL = 0x00000200, /* externally-supplied photometry zero point from ubercal analysis */ 107 109 } DVOImageFlags; 108 110 109 111 /* Measure.flags values -- these values are 32 bit (as of PS1_V1) */ 110 112 typedef enum { 111 ID_MEAS_NOCAL = 0x00000001, // detection ignored for this analysis (photcode, time range) -- internal only112 ID_MEAS_POOR_PHOTOM = 0x00000002, // detection is photometry outlier113 ID_MEAS_SKIP_PHOTOM = 0x00000004, // detection was ignored for photometry measurement114 ID_MEAS_AREA = 0x00000008, // detection near image edge115 ID_MEAS_POOR_ASTROM = 0x00000010, // detection is astrometry outlier116 ID_MEAS_SKIP_ASTROM = 0x00000020, // detection was ignored for astrometry measurement117 ID_MEAS_USED_OBJ = 0x00000040, // detection was used during opdate objects118 ID_MEAS_USED_CHIP = 0x00000080, // detection was used during update chips119 ID_MEAS_BLEND_MEAS = 0x00000100, // detection is within radius of multiple objects120 ID_MEAS_BLEND_OBJ = 0x00000200, // multiple detections within radius of object121 ID_MEAS_UNDEF_3 = 0x00000400, // unused122 ID_MEAS_UNDEF_4 = 0x00000800, // unused123 ID_MEAS_BLEND_MEAS_X = 0x00001000, // detection is within radius of multiple objects across catalogs124 ID_MEAS_ARTIFACT = 0x00002000, // detection is thought to be non-astronomical125 ID_MEAS_UNDEF_5 = 0x00004000, // unused126 ID_MEAS_ UNDEF_6 = 0x00008000, // unused113 ID_MEAS_NOCAL = 0x00000001, // detection ignored for this analysis (photcode, time range) -- internal only 114 ID_MEAS_POOR_PHOTOM = 0x00000002, // detection is photometry outlier 115 ID_MEAS_SKIP_PHOTOM = 0x00000004, // detection was ignored for photometry measurement 116 ID_MEAS_AREA = 0x00000008, // detection near image edge 117 ID_MEAS_POOR_ASTROM = 0x00000010, // detection is astrometry outlier 118 ID_MEAS_SKIP_ASTROM = 0x00000020, // detection was ignored for astrometry measurement 119 ID_MEAS_USED_OBJ = 0x00000040, // detection was used during update objects 120 ID_MEAS_USED_CHIP = 0x00000080, // detection was used during update chips (XXX this probably does not make it into the db) 121 ID_MEAS_BLEND_MEAS = 0x00000100, // detection is within radius of multiple objects 122 ID_MEAS_BLEND_OBJ = 0x00000200, // multiple detections within radius of object 123 ID_MEAS_UNDEF_3 = 0x00000400, // unused 124 ID_MEAS_UNDEF_4 = 0x00000800, // unused 125 ID_MEAS_BLEND_MEAS_X = 0x00001000, // detection is within radius of multiple objects across catalogs 126 ID_MEAS_ARTIFACT = 0x00002000, // detection is thought to be non-astronomical 127 ID_MEAS_UNDEF_5 = 0x00004000, // unused 128 ID_MEAS_PHOTOM_UBERCAL = 0x00008000, // externally-supplied zero point from ubercal analysis 127 129 } DVOMeasureFlags; 128 130 … … 141 143 */ 142 144 143 /* Average. codevalues -- these values are 32 bit (as of PS1_V1) */145 /* Average.flags values -- these values are 32 bit (as of PS1_V1) */ 144 146 typedef enum { 145 147 ID_STAR_FEW = 0x00000001, // used within relphot: skip star … … 168 170 } DVOAverageFlags; 169 171 172 /* Secfilt.flags values -- these values are 32 bit (as of PS1_V1) */ 173 typedef enum { 174 ID_SECF_STAR_FEW = 0x00000001, // used within relphot: skip star 175 ID_SECF_STAR_POOR = 0x00000002, // used within relphot: skip star 176 ID_SECF_USE_SYNTH = 0x00000004, // synthetic photometry used in average measurement 177 ID_SECF_USE_UBERCAL = 0x00000008, // synthetic photometry used in average measurement 178 ID_PHOTOM_PASS_0 = 0x00000100, // average magnitude calculated in 0th pass 179 ID_PHOTOM_PASS_1 = 0x00000200, // average magnitude calculated in 1th pass 180 ID_PHOTOM_PASS_2 = 0x00000400, // average magnitude calculated in 2th pass 181 ID_PHOTOM_PASS_3 = 0x00000800, // average magnitude calculated in 3th pass 182 ID_PHOTOM_PASS_4 = 0x00001000, // average magnitude calculated in 4th pass 183 ID_SECF_OBJ_EXT = 0x01000000, // extended in this band 184 } DVOSecfiltFlags; 185 170 186 /*** general dvo structures (internal use only / not IO) ***/ 171 187 … … 196 212 char **filename; 197 213 SkyRegion *regions; 214 char hosts[80]; 198 215 } SkyTable; 199 216 … … 203 220 char **filename; 204 221 SkyRegion **regions; 222 char hosts[80]; 205 223 } SkyList; 224 225 typedef struct { 226 off_t Nimage; 227 FlatCorrectionImage *image; 228 off_t Ncorr; 229 int *IDtoSeq; 230 FlatCorrection *corr; 231 float ***offset; // the correction images represented as a set of arrays (same sequence as *image) 232 int Nseason; 233 e_time *tstart; 234 e_time *tstop; 235 } FlatCorrectionTable; 236 237 /* definitions for parallel dvo host information 238 XXX : need better names (safer namespace) 239 */ 240 241 typedef enum { 242 DATA_ON_TGT = 0x01, 243 DATA_ON_BCK = 0x02, 244 DATA_USE_BCK = 0x04, 245 246 DATA_COPY_FAILURE = 0x80, 247 } SkyTableDataFlags; 248 249 typedef enum { 250 HOST_STDIN = 0, 251 HOST_STDOUT = 1, 252 HOST_STDERR = 2, 253 } HostInfoIOfd; 254 255 typedef struct { 256 char *hostname; // name of remote machine 257 char *pathname; // name of directory for this machine's data 258 char *results; // name of file machine's result data 259 int hostID; // remove machine ID in SkyTable 260 int stdio[3]; // fd's for communication with the remote host 261 int pid; // remote process ID 262 int status; // job exit status 263 IOBuffer stdout; 264 IOBuffer stderr; 265 } HostInfo; 266 267 typedef struct { 268 int Nhosts; 269 HostInfo *hosts; 270 unsigned short *index; 271 } HostTable; 206 272 207 273 // special-case function: … … 218 284 } PhotCodeData; 219 285 286 typedef enum { 287 DVO_TV_MEASURE = 0x01, 288 DVO_TV_AVERAGE = 0x02, 289 } DVOTinyValueMode; 290 291 // XXX DROP? // a reduced-subset structure for relastro 292 // XXX DROP? typedef struct { 293 // XXX DROP? double R; 294 // XXX DROP? double D; 295 // XXX DROP? unsigned short Nmeasure; 296 // XXX DROP? int measureOffset; 297 // XXX DROP? uint32_t flags; 298 // XXX DROP? int catID; 299 // XXX DROP? } AverageTinyAstro; 300 220 301 // a reduced-subset structure for relphot 221 302 typedef struct { … … 225 306 int measureOffset; 226 307 uint32_t flags; 308 int catID; 227 309 } AverageTiny; 228 310 229 // a reduced-subset structure for relphot 311 // a reduced-subset structure for relphot & relastro 230 312 typedef struct { 231 313 float dR; … … 242 324 unsigned int imageID; 243 325 unsigned int dbFlags; 326 unsigned int photFlags; 327 int catID; // unsigned int? 244 328 unsigned short photcode; 329 short dXccd; 330 short dYccd; 331 short dRsys; 245 332 } MeasureTiny; 246 333 … … 383 470 int PhotColorTiny (AverageTiny *average, SecFilt *secfilt, MeasureTiny *measure, int c1, int c2, double *color); 384 471 385 386 472 PhotCodeData *GetPhotcodeTable (void); 387 473 void SetPhotcodeTable (PhotCodeData *); 388 474 389 475 int *GetSecFiltMap(PhotCodeData *ouput, PhotCodeData* input); 476 PhotCode **ParsePhotcodeList (char *rawlist, int *nphotcodes, int needAve); 390 477 391 478 int LoadPhotcodes (char *catdir_file, char *master_file, int readwrite); … … 450 537 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, off_t Nsecfilt, char format); 451 538 539 DVOTableFormat FtableGetFormat (FTable *ftable); 540 452 541 Average *FtableToAverage (FTable *ftable, off_t *Naverage, char *format, SecFilt **primary); 453 542 Measure *FtableToMeasure (FTable *ftable, off_t *Nmeasure, char *format); … … 470 559 # include "ps1_v1_defs.h" 471 560 # include "ps1_v2_defs.h" 561 # include "ps1_v3_defs.h" 472 562 # include "ps1_ref_defs.h" 473 563 … … 484 574 void dvo_image_create (FITS_DB *db, double ZeroPoint); 485 575 576 /* flatcorr APIs */ 577 FlatCorrectionTable *FlatCorrectionLoad (char *filename, int VERBOSE); 578 int FlatCorrectionInternal(FlatCorrectionTable *flatcorrTable); 579 int FlatCorrectionSave (FlatCorrectionTable *flatcorrTable, char *filename); 580 float FlatCorrectionOffset (FlatCorrectionTable *flatcorr, int ID, int X, int Y); 581 486 582 /* skyregion APIs */ 487 583 int SkyTableSave PROTO((SkyTable *table, char *filename)); 488 584 SkyTable *SkyTableLoad PROTO((char *filename, int VERBOSE)); 585 char *SkyTableFilename PROTO((char *catdir)); 489 586 SkyTable *SkyTableFromGSC PROTO((char *filename, int depth, int VERBOSE)); 490 587 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int readwrite, int depth, int VERBOSE)); … … 528 625 #endif 529 626 530 # endif 627 // functions for parallel DVO 628 HostTable *HostTableLoad (char *catdir, char *rootname); 629 int HostTableWaitJobs (HostTable *table, char *file, int lineno); 630 int HostTableWaitJobsGetIO (HostTable *table, char *file, int lineno, int VERBOSE); 631 int HostTableTestHost (SkyRegion *region, int hostID); 632 633 // functions to support tiny versions of Average and Measure 634 void CopyAverageToTiny (AverageTiny *averageT, Average *average); 635 void CopyMeasureToTiny (MeasureTiny *measureT, Measure *measure); 636 int populate_tiny_values (Catalog *catalog, DVOTinyValueMode mode); 637 int free_tiny_values (Catalog *catalog); 638 639 # endif // DVO_H 640 -
trunk/Ohana/src/libdvo/include/dvodb.h
r31647 r33649 1 1 # ifndef DVODB_H 2 2 # define DVODB_H 3 4 # define MEASURE_HAS_XCCD 1 3 5 4 6 typedef enum { … … 74 76 MEAS_NPOS, 75 77 MEAS_OBJ_FLAGS, 78 MEAS_SECFILT_FLAGS, 76 79 MEAS_MAG, 77 80 MEAS_MINST, … … 82 85 MEAS_EXPTIME, 83 86 MEAS_AIRMASS, 87 MEAS_MEAN_AIRMASS, 84 88 MEAS_ALT, 85 89 MEAS_AZ, 86 90 MEAS_PHOTCODE, 87 91 MEAS_PHOTCODE_EQUIV, 92 MEAS_PHOTCODE_KLAM, 93 MEAS_PHOTCODE_C, 88 94 MEAS_TIME, 89 95 MEAS_FWHM, … … 120 126 MEAS_EXT_NSIGMA, 121 127 MEAS_EXTERN_ID, 128 MEAS_MCAL_OFFSET, 129 MEAS_FLAT, 122 130 }; 123 131 -
trunk/Ohana/src/libdvo/src/LoadImages.c
r31635 r33649 73 73 cacheNimage = *Nimage; 74 74 imageCache = image; 75 lastFilename = str dup(filename);75 lastFilename = strcreate(filename); 76 76 lastModified = getLastModified(filename); 77 77 } -
trunk/Ohana/src/libdvo/src/LoadPhotcodesFITS.c
r29001 r33649 41 41 gfits_scan (&db.theader, "EXTNAME", "%s", 1, extname); 42 42 43 if (!strcmp (extname, "DVO_PHOTCODE")) { 44 PhotCode_Elixir *photcode_elixir = gfits_table_get_PhotCode_Elixir (&db.ftable, &Ncode, &db.swapped); 45 if (!photcode_elixir) { 46 fprintf (stderr, "ERROR: failed to read photcodes\n"); 47 exit (2); 48 } 49 photcode = PhotCode_Elixir_To_Internal (photcode_elixir, Ncode); 50 free (photcode_elixir); 51 } 43 # define CONVERT_FORMAT(NAME, FORMAT) \ 44 if (!strcmp (extname, NAME)) { \ 45 PhotCode_##FORMAT *photcode_input = gfits_table_get_PhotCode_##FORMAT (&db.ftable, &Ncode, &db.swapped); \ 46 if (!photcode_input) { \ 47 fprintf (stderr, "ERROR: failed to read photcodes in LoadPhotcodesFITS.c\n"); \ 48 fprintf (stderr, "file is either corrupted or this is a programming error\n"); \ 49 fprintf (stderr, "exiting to avoid damaging dvo db\n"); \ 50 exit (2); \ 51 } \ 52 photcode = PhotCode_##FORMAT##_To_Internal (photcode_input, Ncode); \ 53 free (photcode_input); \ 54 } 52 55 53 if (!strcmp (extname, "DVO_PHOTCODE_ELIXIR")) { 54 PhotCode_Elixir *photcode_elixir = gfits_table_get_PhotCode_Elixir (&db.ftable, &Ncode, &db.swapped); 55 if (!photcode_elixir) { 56 fprintf (stderr, "ERROR: failed to read photcodes\n"); 57 exit (2); 58 } 59 photcode = PhotCode_Elixir_To_Internal (photcode_elixir, Ncode); 60 free (photcode_elixir); 61 } 62 63 if (!strcmp (extname, "DVO_PHOTCODE_PS1_DEV_1")) { 64 PhotCode_PS1_DEV_1 *photcode_ps1_dev_1 = gfits_table_get_PhotCode_PS1_DEV_1 (&db.ftable, &Ncode, &db.swapped); 65 if (!photcode_ps1_dev_1) { 66 fprintf (stderr, "ERROR: failed to read photcodes\n"); 67 exit (2); 68 } 69 photcode = PhotCode_PS1_DEV_1_To_Internal (photcode_ps1_dev_1, Ncode); 70 free (photcode_ps1_dev_1); 71 } 72 73 if (!strcmp (extname, "DVO_PHOTCODE_PS1_DEV_2")) { 74 PhotCode_PS1_DEV_2 *photcode_ps1_dev_2 = gfits_table_get_PhotCode_PS1_DEV_2 (&db.ftable, &Ncode, &db.swapped); 75 if (!photcode_ps1_dev_2) { 76 fprintf (stderr, "ERROR: failed to read photcodes\n"); 77 exit (2); 78 } 79 photcode = PhotCode_PS1_DEV_2_To_Internal (photcode_ps1_dev_2, Ncode); 80 free (photcode_ps1_dev_2); 81 } 82 83 if (!strcmp (extname, "DVO_PHOTCODE_PS1_DEV_3")) { 84 PhotCode_PS1_DEV_3 *photcode_ps1_dev_3 = gfits_table_get_PhotCode_PS1_DEV_3 (&db.ftable, &Ncode, &db.swapped); 85 if (!photcode_ps1_dev_3) { 86 fprintf (stderr, "ERROR: failed to read photcodes\n"); 87 exit (2); 88 } 89 photcode = PhotCode_PS1_DEV_3_To_Internal (photcode_ps1_dev_3, Ncode); 90 free (photcode_ps1_dev_3); 91 } 92 93 if (!strcmp (extname, "DVO_PHOTCODE_PS1_V1")) { 94 PhotCode_PS1_V1 *photcode_ps1_v1 = gfits_table_get_PhotCode_PS1_V1 (&db.ftable, &Ncode, &db.swapped); 95 if (!photcode_ps1_v1) { 96 fprintf (stderr, "ERROR: failed to read photcodes\n"); 97 exit (2); 98 } 99 photcode = PhotCode_PS1_V1_To_Internal (photcode_ps1_v1, Ncode); 100 free (photcode_ps1_v1); 101 } 102 103 if (!strcmp (extname, "DVO_PHOTCODE_PS1_V2")) { 104 PhotCode_PS1_V2 *photcode_ps1_v2 = gfits_table_get_PhotCode_PS1_V2 (&db.ftable, &Ncode, &db.swapped); 105 if (!photcode_ps1_v2) { 106 fprintf (stderr, "ERROR: failed to read photcodes\n"); 107 exit (2); 108 } 109 photcode = PhotCode_PS1_V2_To_Internal (photcode_ps1_v2, Ncode); 110 free (photcode_ps1_v2); 111 } 112 113 if (!strcmp (extname, "DVO_PHOTCODE_PS1_REF")) { 114 PhotCode_PS1_REF *photcode_ps1_ref = gfits_table_get_PhotCode_PS1_REF (&db.ftable, &Ncode, &db.swapped); 115 if (!photcode_ps1_ref) { 116 fprintf (stderr, "ERROR: failed to read photcodes\n"); 117 exit (2); 118 } 119 photcode = PhotCode_PS1_REF_To_Internal (photcode_ps1_ref, Ncode); 120 free (photcode_ps1_ref); 121 } 56 CONVERT_FORMAT("DVO_PHOTCODE", Elixir); 57 CONVERT_FORMAT("DVO_PHOTCODE_ELIXIR", Elixir); 58 CONVERT_FORMAT("DVO_PHOTCODE_PS1_DEV_1", PS1_DEV_1); 59 CONVERT_FORMAT("DVO_PHOTCODE_PS1_DEV_2", PS1_DEV_2); 60 CONVERT_FORMAT("DVO_PHOTCODE_PS1_DEV_3", PS1_DEV_3); 61 CONVERT_FORMAT("DVO_PHOTCODE_PS1_REF", PS1_REF); 62 CONVERT_FORMAT("DVO_PHOTCODE_PS1_V1", PS1_V1); 63 CONVERT_FORMAT("DVO_PHOTCODE_PS1_V2", PS1_V2); 64 CONVERT_FORMAT("DVO_PHOTCODE_PS1_V3", PS1_V3); 122 65 123 66 table = GetPhotcodeTable (); -
trunk/Ohana/src/libdvo/src/SavePhotcodesFITS.c
r28246 r33649 29 29 // for the moment, we simply support the latest photcode format for output 30 30 // XXX update this as needed as new formats are defined 31 PhotCode_PS1_V 2 *photcode_output = PhotCode_Internal_To_PS1_V2(table[0].code, table[0].Ncode);31 PhotCode_PS1_V3 *photcode_output = PhotCode_Internal_To_PS1_V3 (table[0].code, table[0].Ncode); 32 32 33 33 /* convert FITS format data to internal format (byteswaps & EXTNAME) */ 34 34 if (!gfits_db_create (&db)) return (FALSE); 35 if (!gfits_table_set_PhotCode_PS1_V 2(&db.ftable, photcode_output, table[0].Ncode)) return (FALSE);35 if (!gfits_table_set_PhotCode_PS1_V3 (&db.ftable, photcode_output, table[0].Ncode)) return (FALSE); 36 36 if (!gfits_db_save (&db)) return (FALSE); 37 37 if (!gfits_db_close (&db)) return (FALSE); -
trunk/Ohana/src/libdvo/src/dbExtractAverages.c
r31635 r33649 208 208 } 209 209 } else { 210 value.Int = 0; 210 Nsec = GetPhotcodeNsec (field->photcode->code); 211 if (Nsec == -1) break; 212 value.Int = secfilt[Nsec].flags; 211 213 } 212 214 break; -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r32695 r33649 277 277 value.Int = average[0].flags; 278 278 break; 279 case MEAS_SECFILT_FLAGS: /* OK */ 280 equiv = GetPhotcodeEquivbyCode (measure[0].photcode); 281 Nsec = GetPhotcodeNsec (equiv->code); 282 if (Nsec == -1) break; 283 value.Int = secfilt[Nsec].flags; 284 break; 285 279 286 // note that these represent the ra displacement relative to the average, not 280 287 // the error. … … 302 309 value.Flt = measure[0].airmass; 303 310 break; 311 case MEAS_MEAN_AIRMASS: /* OK */ 312 { 313 Image *image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 314 if (image == NULL) break; 315 value.Flt = image[0].secz; 316 break; 317 } 304 318 case MEAS_AZ: /* OK */ 305 319 value.Flt = measure[0].az; … … 317 331 value.Int = measure[0].photcode; 318 332 break; 333 case MEAS_PHOTCODE_KLAM: /* OK */ 334 { 335 PhotCode *code = GetPhotcodebyCode (measure[0].photcode); 336 if (!code) break; 337 value.Flt = code->K; 338 break; 339 } 340 case MEAS_PHOTCODE_C: /* OK */ 341 { 342 PhotCode *code = GetPhotcodebyCode (measure[0].photcode); 343 if (!code) break; 344 value.Flt = code->C; 345 break; 346 } 319 347 case MEAS_TIME: /* OK */ 320 348 value.Flt = TimeValue (measure[0].t, TimeReference, TimeFormat); … … 351 379 break; 352 380 case MEAS_XCCD: /* OK */ 353 /* I need to perform this conversion for ELIXIR and LONEOS formats on load */ 354 # if 1 381 # if MEASURE_HAS_XCCD 355 382 value.Flt = measure[0].Xccd; 356 383 # else 357 384 { 385 // I'm keeping this code because it gives a way of handing dvo dbs that don't have 386 // measure.xccd if we need it 358 387 Image *image; 359 388 ra = average[0].R - measure[0].dR / 3600.0; … … 367 396 break; 368 397 case MEAS_YCCD: /* OK */ 369 /* I need to perform this conversion for ELIXIR and LONEOS formats on load */ 370 # if 1 398 # if MEASURE_HAS_XCCD 371 399 value.Flt = measure[0].Yccd; 372 400 # else … … 456 484 break; 457 485 486 case MEAS_MCAL_OFFSET: /* OK */ 487 value.Flt = measure[0].Mcal; 488 break; 489 490 case MEAS_FLAT: /* OK */ 491 // flat = measure.Mcal - image.Mcal 492 { 493 Image *image; 494 image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID); 495 if (image == NULL) break; 496 value.Flt = measure[0].Mcal - image[0].Mcal; 497 } 498 break; 499 458 500 // add the star/galaxy sep -- 459 501 } -
trunk/Ohana/src/libdvo/src/dbFields.c
r31635 r33649 42 42 if (!strcasecmp (string, "aveerr")) return (MAG_AVE_ERR); 43 43 if (!strcasecmp (string, "photflags")) return (MAG_PHOT_FLAGS); 44 if (!strcasecmp (string, "flags")) return (MAG_PHOT_FLAGS); 44 45 if (!strcasecmp (string, "chisq")) return (MAG_CHISQ); 45 46 if (!strcasecmp (string, "ncode")) return (MAG_NCODE); … … 169 170 if (!strcasecmp (fieldName, "OBJFLAGS")) ESCAPE (MEAS_OBJ_FLAGS, MAG_NONE, OPIHI_INT); 170 171 if (!strcasecmp (fieldName, "OBJ_FLAGS")) ESCAPE (MEAS_OBJ_FLAGS, MAG_NONE, OPIHI_INT); 172 if (!strcasecmp (fieldName, "OBJ_PHOT_FLAGS")) ESCAPE (MEAS_SECFILT_FLAGS, MAG_NONE, OPIHI_INT); 173 if (!strcasecmp (fieldName, "SECFLAGS")) ESCAPE (MEAS_SECFILT_FLAGS, MAG_NONE, OPIHI_INT); 174 if (!strcasecmp (fieldName, "SEC_FLAGS")) ESCAPE (MEAS_SECFILT_FLAGS, MAG_NONE, OPIHI_INT); 175 if (!strcasecmp (fieldName, "SECFILT_FLAGS")) ESCAPE (MEAS_SECFILT_FLAGS, MAG_NONE, OPIHI_INT); 171 176 if (!strcasecmp (fieldName, "DB_FLAGS")) ESCAPE (MEAS_DB_FLAGS, MAG_NONE, OPIHI_INT); 172 177 if (!strcasecmp (fieldName, "PHOT_FLAGS")) ESCAPE (MEAS_PHOT_FLAGS, MAG_NONE, OPIHI_INT); … … 174 179 if (!strcasecmp (fieldName, "PHOTFLAGS")) ESCAPE (MEAS_PHOT_FLAGS, MAG_NONE, OPIHI_INT); 175 180 if (!strcasecmp (fieldName, "AIRMASS")) ESCAPE (MEAS_AIRMASS, MAG_NONE, OPIHI_FLT); 181 if (!strcasecmp (fieldName, "MEAN_AIRMASS")) ESCAPE (MEAS_MEAN_AIRMASS, MAG_NONE, OPIHI_FLT); 176 182 if (!strcasecmp (fieldName, "ALT")) ESCAPE (MEAS_ALT, MAG_NONE, OPIHI_FLT); 177 183 if (!strcasecmp (fieldName, "AZ")) ESCAPE (MEAS_AZ, MAG_NONE, OPIHI_FLT); 178 184 if (!strcasecmp (fieldName, "EXPTIME")) ESCAPE (MEAS_EXPTIME, MAG_NONE, OPIHI_FLT); 179 185 if (!strcasecmp (fieldName, "PHOTCODE")) ESCAPE (MEAS_PHOTCODE, MAG_NONE, OPIHI_INT); 186 if (!strcasecmp (fieldName, "PHOTCODE:KLAM")) ESCAPE (MEAS_PHOTCODE_KLAM, MAG_NONE, OPIHI_FLT); 187 if (!strcasecmp (fieldName, "PHOTCODE:C")) ESCAPE (MEAS_PHOTCODE_C, MAG_NONE, OPIHI_FLT); 180 188 if (!strcasecmp (fieldName, "PHOTCODE:EQUIV")) ESCAPE (MEAS_PHOTCODE_EQUIV, MAG_NONE, OPIHI_INT); 181 189 if (!strcasecmp (fieldName, "TIME")) ESCAPE (MEAS_TIME, MAG_NONE, OPIHI_FLT); … … 215 223 if (!strcasecmp (fieldName, "SKY_ERR")) ESCAPE (MEAS_dSKY, MAG_NONE, OPIHI_FLT); 216 224 if (!strcasecmp (fieldName, "externID")) ESCAPE (MEAS_EXTERN_ID, MAG_NONE, OPIHI_INT); 225 if (!strcasecmp (fieldName, "MCAL_OFFSET")) ESCAPE (MEAS_MCAL_OFFSET, MAG_NONE, OPIHI_FLT); 226 if (!strcasecmp (fieldName, "FLAT")) ESCAPE (MEAS_FLAT, MAG_NONE, OPIHI_FLT); 217 227 218 228 // for words that don't parse, try a photcode … … 286 296 if (!strcasecmp (fieldName, "dPAR")) ESCAPE (AVE_PAR_ERR, MAG_NONE, OPIHI_FLT); 287 297 if (!strcasecmp (fieldName, "ChiSqPos")) ESCAPE (AVE_CHISQ_POS, MAG_NONE, OPIHI_FLT); 288 if (!strcasecmp (fieldName, "ChiSqPM")) ESCAPE (AVE_CHISQ_PM, MAG_NONE, OPIHI_FLT);298 if (!strcasecmp (fieldName, "ChiSqPM")) ESCAPE (AVE_CHISQ_PM, MAG_NONE, OPIHI_FLT); 289 299 if (!strcasecmp (fieldName, "ChiSqPar")) ESCAPE (AVE_CHISQ_PAR, MAG_NONE, OPIHI_FLT); 290 300 if (!strcasecmp (fieldName, "Tmean")) ESCAPE (AVE_TMEAN, MAG_NONE, OPIHI_FLT); -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r31663 r33649 54 54 if (!strcasecmp (catformat, "PS1_V1")) return (DVO_FORMAT_PS1_V1); 55 55 if (!strcasecmp (catformat, "PS1_V2")) return (DVO_FORMAT_PS1_V2); 56 if (!strcasecmp (catformat, "PS1_V3")) return (DVO_FORMAT_PS1_V3); 56 57 if (!strcasecmp (catformat, "PS1_REF")) return (DVO_FORMAT_PS1_REF); 57 58 return (DVO_FORMAT_UNDEF); … … 250 251 251 252 dvo_catalog_init (catalog, FALSE); 253 254 // reset the file pointer in case we've already read some data 255 fseeko (catalog[0].f, 0, SEEK_SET); 252 256 253 257 // load the main catalog header, determine characteristics -
trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c
r29938 r33649 3 3 int dvo_catalog_load_mef (Catalog *catalog, int VERBOSE) { 4 4 5 off_t Nbytes; 6 off_t Naverage; 7 off_t Nmeasure; 8 off_t Nmissing; 9 off_t Nitems, Nexpect; 5 10 int Nsecfilt; 6 off_t Nitems, Nbytes, Nexpect, Naverage, Nmeasure, Nmissing;7 FILE *f;8 11 9 12 Header header; 10 Matrix matrix;11 13 FTable ftable; 12 SecFilt *primary; 13 14 f = catalog[0].f; 14 15 SecFilt *primary = NULL; 16 15 17 ftable.header = &header; 16 18 17 /* move pointer past header -- must be already read (load_catalog) */18 fseeko (f, catalog[0].header.datasize, SEEK_SET);19 20 /* matrix should be empty */21 if (!gfits_fread_matrix (f, &matrix, &catalog[0].header)) {22 if (VERBOSE) fprintf (stderr, "can't read primary matrix");23 return (FALSE);24 }25 19 /* get the components from the header */ 26 20 if (!gfits_scan (&catalog[0].header, "NSTARS", OFF_T_FMT, 1, &Naverage)) return (FALSE); … … 57 51 catalog[0].secfilt = NULL; 58 52 59 /* validate table mode */ 53 /* validate table mode ?*/ 54 55 /*** Average Table ***/ 56 57 /* need to read the table header to determine format (whether or not we read averages) */ 58 /* move pointer past PHU header -- must be already read (load_catalog) */ 59 Nbytes = catalog[0].header.datasize + gfits_data_size (&catalog[0].header); 60 fseeko (catalog[0].f, Nbytes, SEEK_SET); 60 61 61 62 /* read Average table header */ 62 if (!gfits_fread_header ( f, &header)) {63 if (!gfits_fread_header (catalog[0].f, &header)) { 63 64 if (VERBOSE) fprintf (stderr, "can't read table average header"); 64 65 return (FALSE); 65 66 } 67 66 68 /* read Average table data (or skip) */ 67 69 if (catalog[0].catflags & LOAD_AVES) { 68 if (!gfits_fread_ftable_data ( f, &ftable, FALSE)) {70 if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) { 69 71 if (VERBOSE) fprintf (stderr, "can't read table average data"); 70 72 return (FALSE); … … 78 80 catalog[0].Naves_off = 0; 79 81 } else { 82 catalog[0].catformat = FtableGetFormat (&ftable); 80 83 Nbytes = gfits_data_size (&header); 81 fseeko ( f, Nbytes, SEEK_CUR);84 fseeko (catalog[0].f, Nbytes, SEEK_CUR); 82 85 ALLOCATE (catalog[0].average, Average, 1); 83 86 catalog[0].Naverage = 0; … … 88 91 89 92 /* read Measure table header */ 90 if (!gfits_fread_header ( f, &header)) {93 if (!gfits_fread_header (catalog[0].f, &header)) { 91 94 if (VERBOSE) fprintf (stderr, "can't read table measure header"); 92 95 return (FALSE); … … 94 97 /* read Measure table data */ 95 98 if (catalog[0].catflags & LOAD_MEAS) { 96 if (!gfits_fread_ftable_data ( f, &ftable, FALSE)) {99 if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) { 97 100 if (VERBOSE) fprintf (stderr, "can't read table measure data"); 98 101 return (FALSE); … … 106 109 } else { 107 110 Nbytes = gfits_data_size (&header); 108 fseeko ( f, Nbytes, SEEK_CUR);111 fseeko (catalog[0].f, Nbytes, SEEK_CUR); 109 112 ALLOCATE (catalog[0].measure, Measure, 1); 110 113 catalog[0].Nmeasure = 0; … … 113 116 114 117 /* read Missing table header */ 115 if (!gfits_fread_header ( f, &header)) {118 if (!gfits_fread_header (catalog[0].f, &header)) { 116 119 if (VERBOSE) fprintf (stderr, "can't read table missing header"); 117 120 return (FALSE); … … 119 122 /* read Missing table data */ 120 123 if (catalog[0].catflags & LOAD_MISS) { 121 if (!gfits_fread_ftable_data ( f, &ftable, FALSE)) {124 if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) { 122 125 if (VERBOSE) fprintf (stderr, "can't read table missing data"); 123 126 return (FALSE); … … 136 139 } else { 137 140 Nbytes = gfits_data_size (&header); 138 fseeko ( f, Nbytes, SEEK_CUR);141 fseeko (catalog[0].f, Nbytes, SEEK_CUR); 139 142 ALLOCATE (catalog[0].missing, Missing, 1); 140 143 catalog[0].Nmissing = 0; … … 143 146 144 147 /* read secfilt table header */ 145 if (!gfits_fread_header ( f, &header)) {148 if (!gfits_fread_header (catalog[0].f, &header)) { 146 149 if (VERBOSE) fprintf (stderr, "can't read table secfilt header"); 147 150 return (FALSE); … … 149 152 /* read secfilt table data */ 150 153 if (catalog[0].catflags & LOAD_SECF) { 151 if (!gfits_fread_ftable_data ( f, &ftable, FALSE)) {154 if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) { 152 155 if (VERBOSE) fprintf (stderr, "can't read table secfilt data"); 153 156 return (FALSE); … … 187 190 /* no real need to skip the data array here... */ 188 191 Nbytes = gfits_data_size (&header); 189 fseeko ( f, Nbytes, SEEK_CUR);192 fseeko (catalog[0].f, Nbytes, SEEK_CUR); 190 193 if (primary != NULL) { 191 194 free (primary); -
trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c
r28241 r33649 88 88 FORMAT_CASE (PS1_V1, PS1_V1); 89 89 FORMAT_CASE (PS1_V2, PS1_V2); 90 FORMAT_CASE (PS1_V3, PS1_V3); 90 91 FORMAT_CASE (PS1_REF, PS1_REF); 91 92 … … 280 281 if (catalog[0].catformat == DVO_FORMAT_PS1_V1) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V1"); 281 282 if (catalog[0].catformat == DVO_FORMAT_PS1_V2) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V2"); 283 if (catalog[0].catformat == DVO_FORMAT_PS1_V3) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_V3"); 282 284 if (catalog[0].catformat == DVO_FORMAT_PS1_REF) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PS1_REF"); 283 285 … … 381 383 FORMAT_CASE (PS1_V1, PS1_V1); 382 384 FORMAT_CASE (PS1_V2, PS1_V2); 385 FORMAT_CASE (PS1_V3, PS1_V3); 383 386 FORMAT_CASE (PS1_REF, PS1_REF); 384 387 … … 430 433 FORMAT_CASE (PS1_V1, PS1_V1); 431 434 FORMAT_CASE (PS1_V2, PS1_V2); 435 FORMAT_CASE (PS1_V3, PS1_V3); 432 436 FORMAT_CASE (PS1_REF, PS1_REF); 433 437 … … 483 487 FORMAT_CASE (PS1_V1, PS1_V1); 484 488 FORMAT_CASE (PS1_V2, PS1_V2); 489 FORMAT_CASE (PS1_V3, PS1_V3); 485 490 FORMAT_CASE (PS1_REF, PS1_REF); 486 491 … … 532 537 FORMAT_CASE (PS1_V1, PS1_V1); 533 538 FORMAT_CASE (PS1_V2, PS1_V2); 539 FORMAT_CASE (PS1_V3, PS1_V3); 534 540 FORMAT_CASE (PS1_REF, PS1_REF); 535 541 … … 585 591 FORMAT_CASE (PS1_V1, PS1_V1); 586 592 FORMAT_CASE (PS1_V2, PS1_V2); 593 FORMAT_CASE (PS1_V3, PS1_V3); 587 594 FORMAT_CASE (PS1_REF, PS1_REF); 588 595 … … 634 641 FORMAT_CASE (PS1_V1, PS1_V1); 635 642 FORMAT_CASE (PS1_V2, PS1_V2); 643 FORMAT_CASE (PS1_V3, PS1_V3); 636 644 FORMAT_CASE (PS1_REF, PS1_REF); 637 645 -
trunk/Ohana/src/libdvo/src/dvo_catalog_split.c
r31663 r33649 160 160 161 161 off_t Nbytes; 162 off_t Naverage, Nmeasure, Nmissing; 162 off_t Naverage; 163 off_t Nmeasure; 164 off_t Nmissing; 163 165 off_t Nitems; 164 166 int status, Nsecfilt; … … 209 211 210 212 /*** Average Table ***/ 213 214 /* need to read the table header to determine format (whether or not we read averages) */ 215 /* move pointer past PHU header -- must be already read (load_catalog) */ 216 Nbytes = catalog[0].header.datasize + gfits_data_size (&catalog[0].header); 217 fseeko (catalog[0].f, Nbytes, SEEK_SET); 218 219 /* read Average table header */ 220 if (!gfits_fread_header (catalog[0].f, &header)) { 221 if (VERBOSE) fprintf (stderr, "can't read table average header"); 222 return (FALSE); 223 } 211 224 if (catalog[0].catflags & LOAD_AVES) { 212 /* move pointer past header -- must be already read (load_catalog) */213 Nbytes = catalog[0].header.datasize + gfits_data_size (&catalog[0].header);214 fseeko (catalog[0].f, Nbytes, SEEK_SET);215 /* read Average table header */216 if (!gfits_fread_header (catalog[0].f, &header)) {217 if (VERBOSE) fprintf (stderr, "can't read table average header");218 return (FALSE);219 }220 225 /* read Average table data : format is irrelevant here */ 221 226 if (!gfits_fread_ftable_data (catalog[0].f, &ftable, FALSE)) { … … 234 239 catalog[0].Naves_off = 0; 235 240 } else { 241 catalog[0].catformat = FtableGetFormat (&ftable); 236 242 ALLOCATE (catalog[0].average, Average, 1); 237 243 catalog[0].Naverage = 0; -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r29001 r33649 10 10 /** this file might be more readable if I use macros for the repetative 11 11 constructions below **/ 12 13 DVOTableFormat FtableGetFormat (FTable *ftable) { 14 15 DVOTableFormat format; 16 char extname[80]; 17 18 /* read the format of this table */ 19 if (!gfits_scan (ftable[0].header, "EXTNAME", "%s", 1, extname)) { 20 fprintf (stderr, "EXTNAME missing for average table\n"); 21 return (DVO_FORMAT_UNDEF); 22 } 23 24 if (!strcmp (extname, "DVO_AVERAGE")) { 25 format = DVO_FORMAT_INTERNAL; 26 return (format); 27 } 28 # define CONVERT_FORMAT(NAME, FORMAT) \ 29 if (!strcmp (extname, NAME)) { \ 30 format = DVO_FORMAT_##FORMAT; \ 31 return (format); } 32 33 CONVERT_FORMAT ("DVO_AVERAGE_ELIXIR", ELIXIR); 34 CONVERT_FORMAT ("DVO_AVERAGE_LONEOS", LONEOS); 35 CONVERT_FORMAT ("DVO_AVERAGE_PANSTARRS_DEV_0", PANSTARRS_DEV_0); 36 CONVERT_FORMAT ("DVO_AVERAGE_PANSTARRS_DEV_1", PANSTARRS_DEV_1); 37 CONVERT_FORMAT ("DVO_AVERAGE_PS1_DEV_1", PS1_DEV_1); 38 CONVERT_FORMAT ("DVO_AVERAGE_PS1_DEV_2", PS1_DEV_2); 39 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V1", PS1_V1); 40 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V2", PS1_V2); 41 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V3", PS1_V3); 42 CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF", PS1_REF); 43 # undef CONVERT_FORMAT 44 45 fprintf (stderr, "table format unknown: %s\n", extname); 46 return (DVO_FORMAT_UNDEF); 47 } 12 48 13 49 /*** Average / FTable conversion functions ***/ … … 59 95 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V1", PS1_V1, PS1_V1); 60 96 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V2", PS1_V2, PS1_V2); 97 CONVERT_FORMAT ("DVO_AVERAGE_PS1_V3", PS1_V3, PS1_V3); 61 98 CONVERT_FORMAT ("DVO_AVERAGE_PS1_REF", PS1_REF, PS1_REF); 62 99 # undef CONVERT_FORMAT … … 92 129 FORMAT_CASE (PS1_V1, PS1_V1); 93 130 FORMAT_CASE (PS1_V2, PS1_V2); 131 FORMAT_CASE (PS1_V3, PS1_V3); 94 132 FORMAT_CASE (PS1_REF, PS1_REF); 95 133 # undef FORMAT_CASE … … 146 184 CONVERT_FORMAT ("DVO_MEASURE_PS1_V1", PS1_V1, PS1_V1); 147 185 CONVERT_FORMAT ("DVO_MEASURE_PS1_V2", PS1_V2, PS1_V2); 186 CONVERT_FORMAT ("DVO_MEASURE_PS1_V3", PS1_V3, PS1_V3); 148 187 CONVERT_FORMAT ("DVO_MEASURE_PS1_REF", PS1_REF, PS1_REF); 149 188 # undef CONVERT_FORMAT … … 179 218 FORMAT_CASE (PS1_V1, PS1_V1); 180 219 FORMAT_CASE (PS1_V2, PS1_V2); 220 FORMAT_CASE (PS1_V3, PS1_V3); 181 221 FORMAT_CASE (PS1_REF, PS1_REF); 182 222 # undef FORMAT_CASE … … 233 273 CONVERT_FORMAT ("DVO_SECFILT_PS1_V1", PS1_V1, PS1_V1); 234 274 CONVERT_FORMAT ("DVO_SECFILT_PS1_V2", PS1_V2, PS1_V2); 275 CONVERT_FORMAT ("DVO_SECFILT_PS1_V3", PS1_V3, PS1_V3); 235 276 CONVERT_FORMAT ("DVO_SECFILT_PS1_REF", PS1_REF, PS1_REF); 236 277 # undef CONVERT_FORMAT … … 266 307 FORMAT_CASE (PS1_V1, PS1_V1); 267 308 FORMAT_CASE (PS1_V2, PS1_V2); 309 FORMAT_CASE (PS1_V3, PS1_V3); 268 310 FORMAT_CASE (PS1_REF, PS1_REF); 269 311 # undef FORMAT_CASE … … 344 386 CONVERT_FORMAT ("DVO_IMAGE_PS1_V1", PS1_V1, PS1_V1); 345 387 CONVERT_FORMAT ("DVO_IMAGE_PS1_V2", PS1_V2, PS1_V2); 388 CONVERT_FORMAT ("DVO_IMAGE_PS1_V3", PS1_V3, PS1_V3); 346 389 CONVERT_FORMAT ("DVO_IMAGE_PS1_REF", PS1_REF, PS1_REF); 347 390 … … 381 424 FORMAT_CASE (PS1_V1, PS1_V1); 382 425 FORMAT_CASE (PS1_V2, PS1_V2); 426 FORMAT_CASE (PS1_V3, PS1_V3); 383 427 FORMAT_CASE (PS1_REF, PS1_REF); 384 428 … … 434 478 FORMAT_CASE (PS1_V1, PS1_V1); 435 479 FORMAT_CASE (PS1_V2, PS1_V2); 480 FORMAT_CASE (PS1_V3, PS1_V3); 436 481 FORMAT_CASE (PS1_REF, PS1_REF); 437 482 -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
r30605 r33649 147 147 out[i].Npos = 0.0; 148 148 out[i].extID = 0; 149 150 // added in PS1_V3 151 out[i].photFlagsUpper = 0; 152 out[i].photFlagsLower = 0; 149 153 } 150 154 return (out); … … 206 210 // changed or added for PS1_V2 207 211 out[i].flags = 0; 212 213 // added in PS1_V3 214 out[i].Map = 0; 215 out[i].ubercalDist = 0; 208 216 } 209 217 return (out); … … 268 276 out[i].nLinkAstrom = in[i].nLinkAstrom; 269 277 out[i].nLinkPhotom = in[i].nLinkPhotom; 270 out[i]. dummy3 = in[i].dummy3;278 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 271 279 out[i].dXpixSys = in[i].dXpixSys; 272 280 out[i].dYpixSys = in[i].dYpixSys; … … 335 343 out[i].nLinkAstrom = in[i].nLinkAstrom; 336 344 out[i].nLinkPhotom = in[i].nLinkPhotom; 337 out[i].dummy3 = in[i]. dummy3;345 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 338 346 out[i].dXpixSys = in[i].dXpixSys; 339 347 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
r30605 r33649 141 141 out[i].Npos = 0.0; 142 142 out[i].extID = 0; 143 144 // added in PS1_V3 145 out[i].photFlagsUpper = 0; 146 out[i].photFlagsLower = 0; 143 147 } 144 148 return (out); … … 200 204 // changed or added for PS1_V2 201 205 out[i].flags = 0; 206 207 // added in PS1_V3 208 out[i].Map = 0; 209 out[i].ubercalDist = 0; 202 210 } 203 211 return (out); … … 264 272 out[i].nLinkAstrom = in[i].nLinkAstrom; 265 273 out[i].nLinkPhotom = in[i].nLinkPhotom; 266 out[i]. dummy3 = in[i].dummy3;274 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 267 275 out[i].dXpixSys = in[i].dXpixSys; 268 276 out[i].dYpixSys = in[i].dYpixSys; … … 329 337 out[i].nLinkAstrom = in[i].nLinkAstrom; 330 338 out[i].nLinkPhotom = in[i].nLinkPhotom; 331 out[i].dummy3 = in[i]. dummy3;339 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 332 340 out[i].dXpixSys = in[i].dXpixSys; 333 341 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_3.c
r30605 r33649 48 48 out[i].nLinkAstrom = in[i].nLinkAstrom; 49 49 out[i].nLinkPhotom = in[i].nLinkPhotom; 50 out[i]. dummy3 = in[i].dummy3;50 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 51 51 out[i].dXpixSys = in[i].dXpixSys; 52 52 out[i].dYpixSys = in[i].dYpixSys; … … 107 107 out[i].nLinkAstrom = in[i].nLinkAstrom; 108 108 out[i].nLinkPhotom = in[i].nLinkPhotom; 109 out[i].dummy3 = in[i]. dummy3;109 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 110 110 out[i].dXpixSys = in[i].dXpixSys; 111 111 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
r30605 r33649 114 114 out[i].catID = in[i].catID; 115 115 out[i].extID = 0; 116 117 // added in PS1_V3 118 out[i].photFlagsUpper = 0; 119 out[i].photFlagsLower = 0; 116 120 } 117 121 return (out); … … 160 164 // changed or added for PS1_V2 161 165 out[i].flags = 0; 166 167 // added in PS1_V3 168 out[i].Map = 0; 169 out[i].ubercalDist = 0; 162 170 } 163 171 return (out); … … 223 231 out[i].nLinkAstrom = in[i].nLinkAstrom; 224 232 out[i].nLinkPhotom = in[i].nLinkPhotom; 225 out[i]. dummy3 = in[i].dummy3;233 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 226 234 out[i].dXpixSys = in[i].dXpixSys; 227 235 out[i].dYpixSys = in[i].dYpixSys; … … 285 293 out[i].nLinkAstrom = in[i].nLinkAstrom; 286 294 out[i].nLinkPhotom = in[i].nLinkPhotom; 287 out[i].dummy3 = in[i]. dummy3;295 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 288 296 out[i].dXpixSys = in[i].dXpixSys; 289 297 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
r30605 r33649 146 146 out[i].catID = in[i].catID; 147 147 out[i].extID = in[i].extID; 148 149 // added in PS1_V3 150 out[i].photFlagsUpper = 0; 151 out[i].photFlagsLower = 0; 148 152 } 149 153 return (out); … … 204 208 // changed or added for PS1_V2 205 209 out[i].flags = 0; 210 211 // added in PS1_V3 212 out[i].Map = 0; 213 out[i].ubercalDist = 0; 206 214 } 207 215 return (out); … … 272 280 out[i].nLinkAstrom = in[i].nLinkAstrom; 273 281 out[i].nLinkPhotom = in[i].nLinkPhotom; 274 out[i]. dummy3= in[i].dummy3;282 out[i].ubercalDist = in[i].dummy3; 275 283 out[i].dXpixSys = in[i].dXpixSys; 276 284 out[i].dYpixSys = in[i].dYpixSys; … … 336 344 out[i].nLinkAstrom = in[i].nLinkAstrom; 337 345 out[i].nLinkPhotom = in[i].nLinkPhotom; 338 out[i].dummy3 = in[i]. dummy3;346 out[i].dummy3 = in[i].ubercalDist; 339 347 out[i].dXpixSys = in[i].dXpixSys; 340 348 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
r30605 r33649 147 147 out[i].catID = in[i].catID; 148 148 out[i].extID = in[i].extID; 149 150 // added in PS1_V3 151 out[i].photFlagsUpper = 0; 152 out[i].photFlagsLower = 0; 149 153 } 150 154 return (out); … … 207 211 out[i].M_20 = in[i].M_20; 208 212 out[i].M_80 = in[i].M_80; 213 214 // added in PS1_V3 215 out[i].Map = 0; 216 out[i].ubercalDist = 0; 209 217 } 210 218 return (out); … … 281 289 out[i].nLinkAstrom = in[i].nLinkAstrom; 282 290 out[i].nLinkPhotom = in[i].nLinkPhotom; 283 out[i]. dummy3 = in[i].dummy3;291 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 284 292 out[i].dXpixSys = in[i].dXpixSys; 285 293 out[i].dYpixSys = in[i].dYpixSys; … … 343 351 out[i].nLinkAstrom = in[i].nLinkAstrom; 344 352 out[i].nLinkPhotom = in[i].nLinkPhotom; 345 out[i].dummy3 = in[i]. dummy3;353 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 346 354 out[i].dXpixSys = in[i].dXpixSys; 347 355 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_elixir.c
r30605 r33649 158 158 out[i].Npos = 0.0; 159 159 out[i].extID = 0; 160 161 // added in PS1_V3 162 out[i].photFlagsUpper = 0; 163 out[i].photFlagsLower = 0; 160 164 } 161 165 return (out); … … 215 219 // changed or added for PS1_V2 216 220 out[i].flags = 0; 221 222 // added in PS1_V3 223 out[i].Map = 0; 224 out[i].ubercalDist = 0; 217 225 } 218 226 return (out); … … 271 279 out[i].nLinkAstrom = in[i].nLinkAstrom; 272 280 out[i].nLinkPhotom = in[i].nLinkPhotom; 273 out[i]. dummy3 = in[i].dummy3;281 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 274 282 out[i].dXpixSys = in[i].dXpixSys; 275 283 out[i].dYpixSys = in[i].dYpixSys; … … 341 349 out[i].nLinkAstrom = in[i].nLinkAstrom; 342 350 out[i].nLinkPhotom = in[i].nLinkPhotom; 343 out[i].dummy3 = in[i]. dummy3;351 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 344 352 out[i].dXpixSys = in[i].dXpixSys; 345 353 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_loneos.c
r30605 r33649 150 150 out[i].Npos = 0.0; 151 151 out[i].extID = 0; 152 153 // added in PS1_V3 154 out[i].photFlagsUpper = 0; 155 out[i].photFlagsLower = 0; 152 156 } 153 157 return (out); … … 208 212 // changed or added for PS1_V2 209 213 out[i].flags = 0; 214 215 // added in PS1_V3 216 out[i].Map = 0; 217 out[i].ubercalDist = 0; 210 218 } 211 219 return (out); … … 264 272 out[i].nLinkAstrom = in[i].nLinkAstrom; 265 273 out[i].nLinkPhotom = in[i].nLinkPhotom; 266 out[i]. dummy3 = in[i].dummy3;274 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 267 275 out[i].dXpixSys = in[i].dXpixSys; 268 276 out[i].dYpixSys = in[i].dYpixSys; … … 334 342 out[i].nLinkAstrom = in[i].nLinkAstrom; 335 343 out[i].nLinkPhotom = in[i].nLinkPhotom; 336 out[i].dummy3 = in[i]. dummy3;344 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 337 345 out[i].dXpixSys = in[i].dXpixSys; 338 346 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
r30605 r33649 154 154 out[i].Npos = 0.0; 155 155 out[i].extID = 0; 156 157 // added in PS1_V3 158 out[i].photFlagsUpper = 0; 159 out[i].photFlagsLower = 0; 156 160 } 157 161 return (out); … … 215 219 // changed or added for PS1_V2 216 220 out[i].flags = 0; 221 222 // added in PS1_V3 223 out[i].Map = 0; 224 out[i].ubercalDist = 0; 217 225 } 218 226 return (out); … … 278 286 out[i].nLinkAstrom = in[i].nLinkAstrom; 279 287 out[i].nLinkPhotom = in[i].nLinkPhotom; 280 out[i]. dummy3 = in[i].dummy3;288 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 281 289 out[i].dXpixSys = in[i].dXpixSys; 282 290 out[i].dYpixSys = in[i].dYpixSys; … … 347 355 out[i].nLinkAstrom = in[i].nLinkAstrom; 348 356 out[i].nLinkPhotom = in[i].nLinkPhotom; 349 out[i].dummy3 = in[i]. dummy3;357 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 350 358 out[i].dXpixSys = in[i].dXpixSys; 351 359 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
r30605 r33649 154 154 out[i].Npos = 0.0; 155 155 out[i].extID = 0; 156 157 // added in PS1_V3 158 out[i].photFlagsUpper = 0; 159 out[i].photFlagsLower = 0; 156 160 } 157 161 return (out); … … 215 219 // changed or added for PS1_V2 216 220 out[i].flags = 0; 221 222 // added in PS1_V3 223 out[i].Map = 0; 224 out[i].ubercalDist = 0; 217 225 } 218 226 return (out); … … 278 286 out[i].nLinkAstrom = in[i].nLinkAstrom; 279 287 out[i].nLinkPhotom = in[i].nLinkPhotom; 280 out[i]. dummy3 = in[i].dummy3;288 out[i].ubercalDist = in[i].dummy3; // new name PS1_V3 281 289 out[i].dXpixSys = in[i].dXpixSys; 282 290 out[i].dYpixSys = in[i].dYpixSys; … … 347 355 out[i].nLinkAstrom = in[i].nLinkAstrom; 348 356 out[i].nLinkPhotom = in[i].nLinkPhotom; 349 out[i].dummy3 = in[i]. dummy3;357 out[i].dummy3 = in[i].ubercalDist; // new name PS1_V3 350 358 out[i].dXpixSys = in[i].dXpixSys; 351 359 out[i].dYpixSys = in[i].dYpixSys; -
trunk/Ohana/src/libdvo/src/dvo_image.c
r28246 r33649 211 211 if (db[0].format == DVO_FORMAT_PS1_V1) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V1"); 212 212 if (db[0].format == DVO_FORMAT_PS1_V2) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V2"); 213 if (db[0].format == DVO_FORMAT_PS1_V3) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_V3"); 213 214 if (db[0].format == DVO_FORMAT_PS1_REF) gfits_modify (&db[0].header, "FORMAT", "%s", 1, "PS1_REF"); 214 215 -
trunk/Ohana/src/libdvo/src/dvo_image_raw.c
r28241 r33649 57 57 if (db[0].format == DVO_FORMAT_PS1_V1) ImageSize = sizeof(Image_PS1_V1); 58 58 if (db[0].format == DVO_FORMAT_PS1_V2) ImageSize = sizeof(Image_PS1_V2); 59 if (db[0].format == DVO_FORMAT_PS1_V3) ImageSize = sizeof(Image_PS1_V3); 59 60 if (db[0].format == DVO_FORMAT_PS1_REF) ImageSize = sizeof(Image_PS1_REF); 60 61 … … 85 86 if (db[0].format == DVO_FORMAT_PS1_V1) gfits_table_mkheader_Image_PS1_V1 (&db[0].theader); 86 87 if (db[0].format == DVO_FORMAT_PS1_V2) gfits_table_mkheader_Image_PS1_V2 (&db[0].theader); 88 if (db[0].format == DVO_FORMAT_PS1_V3) gfits_table_mkheader_Image_PS1_V3 (&db[0].theader); 87 89 if (db[0].format == DVO_FORMAT_PS1_REF) gfits_table_mkheader_Image_PS1_REF (&db[0].theader); 88 90 -
trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c
r31450 r33649 857 857 /***********************************************/ 858 858 859 // Create a map between the secfilt values from one photcode table to another860 int *GetSecFiltMap(PhotCodeData *output, PhotCodeData *input) {861 int i, j;862 int NsecfiltIn = input[0].Nsecfilt;863 int NsecfiltOut = output[0].Nsecfilt;864 int *map;865 ALLOCATE(map, int, NsecfiltIn);866 867 // loop over entries in the input table868 for (i = 0; i < NsecfiltIn; i++) {869 int code = input[0].codeNsec[i];870 int entry = -1;871 // find the matching entry in the output table872 for (j = 0; j < NsecfiltOut; j++) {873 int outcode = output[0].codeNsec[j];874 if (code == outcode) {875 entry = j;876 break;877 }878 }879 // if (entry == -1) {880 // // entry is missing fail (no printfs in this file)881 // free(map);882 // return(FALSE);883 // }884 885 // if entry is still -1, we will skip this one (not map into the output db)886 map[i] = entry;887 }888 889 return map;890 }891 859 892 860 /* photcode table should have the following format: -
trunk/Ohana/src/libdvo/src/skyregion_gsc.c
r20936 r33649 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); -
trunk/Ohana/src/libdvo/src/skyregion_io.c
r29001 r33649 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 } -
trunk/Ohana/src/libdvo/src/skyregion_ops.c
r29439 r33649 20 20 list[0].Nregions = 0; 21 21 list[0].ownElements = FALSE; // this list is only holding a view to the elements 22 strcpy (list[0].hosts, table[0].hosts); 22 23 23 24 region = table[0].regions; … … 67 68 list[0].Nregions = N; 68 69 list[0].ownElements = FALSE; // this list is only holding a view to the elements 70 strcpy (list[0].hosts, table[0].hosts); 69 71 70 72 region = table[0].regions; … … 102 104 list[0].Nregions = N; 103 105 list[0].ownElements = FALSE; // this list is only holding a view to the elements 106 strcpy (list[0].hosts, table[0].hosts); 104 107 105 108 region = table[0].regions; … … 261 264 ALLOCATE (list[0].filename, char *, NNEW); 262 265 list[0].ownElements = FALSE; // this list is only holding a view to the elements 266 strcpy (list[0].hosts, table[0].hosts); 263 267 264 268 region = table[0].regions; … … 326 330 list[0].Nregions = 0; 327 331 list[0].ownElements = FALSE; // this list is only holding a view to the elements 332 strcpy (list[0].hosts, inList[0].hosts); 328 333 329 334 region = inList[0].regions; … … 403 408 ALLOCATE (list[0].filename, char *, NNEW); 404 409 list[0].ownElements = FALSE; // this list is only holding a view to the elements 410 strcpy (list[0].hosts, table[0].hosts); 405 411 406 412 region = table[0].regions;
Note:
See TracChangeset
for help on using the changeset viewer.
