- Timestamp:
- May 3, 2010, 8:50:52 AM (16 years ago)
- Location:
- branches/simtest_nebulous_branches
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/simtest_nebulous_branches
- Property svn:mergeinfo changed
-
branches/simtest_nebulous_branches/Ohana
-
Property svn:mergeinfo
set to (toggle deleted branches)
/trunk/Ohana merged eligible /branches/eam_branches/Ohana.20100407 27635-27772 /branches/pap_delete/Ohana 27530-27595
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
branches/simtest_nebulous_branches/Ohana/src/libdvo/include/dvo.h
r24976 r27840 10 10 11 11 /* DVO table formats */ 12 typedef enum {DVO_FORMAT_UNDEF, 13 DVO_FORMAT_INTERNAL, 14 DVO_FORMAT_ELIXIR, 15 DVO_FORMAT_LONEOS, 16 DVO_FORMAT_PANSTARRS_DEV_0, 17 DVO_FORMAT_PANSTARRS_DEV_1, 18 DVO_FORMAT_PS1_DEV_1, 19 DVO_FORMAT_PS1_DEV_2, 20 DVO_FORMAT_PS1_DEV_3, 21 DVO_FORMAT_PS1_V1, 22 DVO_FORMAT_PS1_REF 12 typedef enum { 13 DVO_FORMAT_UNDEF, 14 DVO_FORMAT_INTERNAL, 15 DVO_FORMAT_ELIXIR, 16 DVO_FORMAT_LONEOS, 17 DVO_FORMAT_PANSTARRS_DEV_0, 18 DVO_FORMAT_PANSTARRS_DEV_1, 19 DVO_FORMAT_PS1_DEV_1, 20 DVO_FORMAT_PS1_DEV_2, 21 DVO_FORMAT_PS1_DEV_3, 22 DVO_FORMAT_PS1_V1, 23 DVO_FORMAT_PS1_V2, 24 DVO_FORMAT_PS1_REF 23 25 } DVOTableFormat; 24 26 … … 64 66 } DVO_INT_NAN; 65 67 66 # ifndef NAN67 # ifndef BYTE_SWAP68 # define __nan_bytes { 0x7f, 0xc0, 0, 0 }69 # else70 # define __nan_bytes { 0, 0, 0xc0, 0x7f }71 # endif72 static union { unsigned char __c[4]; float __d; } __nan_union73 __attribute_used__ = { __nan_bytes };74 # define NAN (__nan_union.__d)75 # endif76 77 68 /* RegImage.flag values */ 78 69 # define IMREG_DIST 0x01 /* image distributed, only imregister-3.0 */ … … 101 92 # define ID_IMAGE_FEW 0x0008 /* currently too few measurements for good value */ 102 93 103 /* Measure.flags values */ 104 // XXX replace the # defines with typedef enum 105 # define ID_MEAS_NOCAL 0x0001 /* detection ignored for this analysis (photcode, time range) -- internal only */ 106 # define ID_MEAS_POOR_PHOTOM 0x0002 /* detection is photometry outlier */ 107 # define ID_MEAS_SKIP_PHOTOM 0x0004 /* detection was ignored for photometry measurement */ 108 # define ID_MEAS_AREA 0x0008 /* detection near image edge */ 109 # define ID_MEAS_POOR_ASTROM 0x0010 /* detection is astrometry outlier */ 110 # define ID_MEAS_SKIP_ASTROM 0x0020 /* detection was ignored for astrometry measurement */ 111 # define ID_MEAS_USED_OBJ 0x0040 /* detection was used during opdate objects */ 112 # define ID_MEAS_USED_CHIP 0x0080 /* detection was used during update chips */ 113 # define ID_MEAS_BLEND_MEAS 0x0100 /* detection is within radius of multiple objects */ 114 # define ID_MEAS_BLEND_OBJ 0x0200 /* multiple detections within radius of object */ 115 # define ID_MEAS_UNDEF_3 0x0400 /* unused */ 116 # define ID_MEAS_UNDEF_4 0x0800 /* unused */ 117 # define ID_MEAS_BLEND_MEAS_X 0x1000 /* detection is within radius of multiple objects across catalogs */ 118 # define ID_MEAS_ARTIFACT 0x2000 /* detection is thought to be non-astronomical */ 119 # define ID_MEAS_UNDEF_5 0x4000 /* unused */ 120 # define ID_MEAS_UNDEF_6 0x8000 /* unused */ 94 /* Measure.flags values -- these values are 32 bit (as of PS1_V1) */ 95 typedef enum { 96 ID_MEAS_NOCAL = 0x0001, // detection ignored for this analysis (photcode, time range) -- internal only 97 ID_MEAS_POOR_PHOTOM = 0x0002, // detection is photometry outlier 98 ID_MEAS_SKIP_PHOTOM = 0x0004, // detection was ignored for photometry measurement 99 ID_MEAS_AREA = 0x0008, // detection near image edge 100 ID_MEAS_POOR_ASTROM = 0x0010, // detection is astrometry outlier 101 ID_MEAS_SKIP_ASTROM = 0x0020, // detection was ignored for astrometry measurement 102 ID_MEAS_USED_OBJ = 0x0040, // detection was used during opdate objects 103 ID_MEAS_USED_CHIP = 0x0080, // detection was used during update chips 104 ID_MEAS_BLEND_MEAS = 0x0100, // detection is within radius of multiple objects 105 ID_MEAS_BLEND_OBJ = 0x0200, // multiple detections within radius of object 106 ID_MEAS_UNDEF_3 = 0x0400, // unused 107 ID_MEAS_UNDEF_4 = 0x0800, // unused 108 ID_MEAS_BLEND_MEAS_X = 0x1000, // detection is within radius of multiple objects across catalogs 109 ID_MEAS_ARTIFACT = 0x2000, // detection is thought to be non-astronomical 110 ID_MEAS_UNDEF_5 = 0x4000, // unused 111 ID_MEAS_UNDEF_6 = 0x8000, // unused 112 } DVOMeasureFlags; 121 113 122 114 // XXX we used these names previously in markstar: replace with ID_MEAS_ARTIFACT … … 134 126 */ 135 127 136 /* Average.code values */ 137 # define ID_STAR_FEW 0x0001 /* used within relphot: skip star */ 138 # define ID_STAR_POOR 0x0002 /* used within relphot: skip star */ 139 # define ID_PROPER 0x0400 /* star with large proper motion */ 140 # define ID_TRANSIENT 0x1000 /* is this mutually exclusive with USNO? */ 141 # define ID_VARIABLE 0x2000 /* not currently set? */ 142 # define ID_ASTEROID 0x2000 /* identified with an asteroid */ 143 # define ID_BAD_OBJECT 0x4000 /* if all measurements are bad, set this bit */ 144 # define ID_MOVING 0x8000 145 # define ID_ROCK 0xa000 /* 0x8000 + 0x2000 */ 146 # define ID_GHOST 0xc001 /* 0x8000 + 0x4000 + 0x0001 */ 147 # define ID_TRAIL 0xc002 /* 0x8000 + 0x4000 + 0x0002 */ 148 # define ID_BLEED 0xc003 /* 0x8000 + 0x4000 + 0x0003 */ 149 # define ID_COSMIC 0xc004 /* 0x8000 + 0x4000 + 0x0004 */ 128 /* Average.code values -- these values are 32 bit (as of PS1_V1) */ 129 typedef enum { 130 ID_STAR_FEW = 0x00000001, // used within relphot: skip star 131 ID_STAR_POOR = 0x00000002, // used within relphot: skip star 132 ID_PROPER = 0x00000400, // star with large proper motion 133 ID_TRANSIENT = 0x00001000, // is this mutually exclusive with USNO? 134 ID_VARIABLE = 0x00002000, // not currently set? 135 ID_ASTEROID = 0x00002000, // identified with an asteroid 136 ID_BAD_OBJECT = 0x00004000, // if all measurements are bad, set this bit 137 ID_MOVING = 0x00008000, // is a moving object 138 ID_ROCK = 0x0000a000, // 0x8000 + 0x2000 139 ID_GHOST = 0x0000c001, // 0x8000 + 0x4000 + 0x0001 140 ID_TRAIL = 0x0000c002, // 0x8000 + 0x4000 + 0x0002 141 ID_BLEED = 0x0000c003, // 0x8000 + 0x4000 + 0x0003 142 ID_COSMIC = 0x0000c004, // 0x8000 + 0x4000 + 0x0004 143 ID_STAR_FIT_AVE = 0x00010000, // average position fitted 144 ID_STAR_FIT_PM = 0x00020000, // proper motion fitted 145 ID_STAR_FIT_PAR = 0x00040000, // parallax fitted 146 ID_STAR_USE_AVE = 0x00080000, // average position used (not PM or PAR) 147 ID_STAR_USE_PM = 0x00100000, // proper motion used (not AVE or PAR) 148 ID_STAR_USE_PAR = 0x00200000, // parallax used (not AVE or PM) 149 } DVOAverageFlags; 150 150 151 151 /*** general dvo structures (internal use only / not IO) ***/ … … 155 155 FILE *f; 156 156 char *filename; 157 int dbstate;158 int lockstate;159 157 double timeout; 160 158 Header header; … … 163 161 FTable ftable; 164 162 VTable vtable; 165 int mode; /* what data storage mode is used for disk file? */ 166 int format; /* what data format is used for disk file? */ 167 int virtual; /* is table in ftable or vtable? */ 168 int swapped; /* is table in internal byte-order? */ 163 int dbstate; 164 char lockstate; 165 char mode; /* what data storage mode is used for disk file? */ 166 char format; /* what data format is used for disk file? */ 167 char virtual; /* is table in ftable or vtable? */ 168 char swapped; /* is table in internal byte-order? */ 169 169 } FITS_DB; 170 170 … … 174 174 /* SkyRegion : better implementation than GSCRegion */ 175 175 typedef struct { 176 int Nregions;176 off_t Nregions; 177 177 char **filename; 178 178 SkyRegion *regions; … … 180 180 181 181 typedef struct { 182 int Nregions;182 off_t Nregions; 183 183 int ownElements; /* does this list own filename, regions? */ 184 184 char **filename; … … 187 187 188 188 // special-case function: 189 CMF_PS1_V2 *gfits_table_get_CMF_PS1_V1_Alt (FTable *ftable, int *Ndata, int *swapped); 190 191 # if (0) 192 /* structure for data on a catalog region */ 193 typedef struct { 194 char filename[256]; 195 double DEC[2], RA[2]; 196 } GSCRegion; 197 # endif 189 CMF_PS1_V2 *gfits_table_get_CMF_PS1_V1_Alt (FTable *ftable, off_t *Ndata, char *swapped); 198 190 199 191 typedef struct { … … 219 211 220 212 int Nsecfilt; /* number of secfilt entries for each average entry */ 221 int Naverage, Nmeasure, Nmissing, Nsecf_mem; /* current number of each component in memory */ 222 int Naves_disk, Nmeas_disk, Nmiss_disk, Nsecf_disk; /* current number of each component on disk */ 223 int Naves_off, Nmeas_off, Nmiss_off, Nsecf_off; /* index of first loaded data value */ 213 off_t Naverage, Nmeasure, Nmissing, Nsecf_mem; /* current number of each component in memory */ 214 off_t Naves_disk, Nmeas_disk, Nmiss_disk, Nsecf_disk; /* current number of each component on disk */ 215 off_t Naves_off, Nmeas_off, Nmiss_off, Nsecf_off; /* index of first loaded data value */ 216 217 /* the Nsecf_* values above are number of table rows (eg, Naverage*Nsecfilt) */ 224 218 225 219 /* note the different counting for Nsecfilt: … … 239 233 240 234 /* extra catalog information */ 241 intlockmode;242 intcatmode; /* storage mode (raw, mef, split, mysql) */243 intcatformat; /* storage format (elixir, panstarrs, etc) */244 intcatflags; /* choices to be loaded */245 intsorted; /* is measure table average-sorted? */235 char lockmode; 236 char catmode; /* storage mode (raw, mef, split, mysql) */ 237 char catformat; /* storage format (elixir, panstarrs, etc) */ 238 char catflags; /* choices to be loaded */ 239 char sorted; /* is measure table average-sorted? */ 246 240 247 241 /* pointers for data manipulation */ 248 int *found;249 int *image;250 int *mosaic;242 off_t *found; 243 off_t *image; 244 off_t *mosaic; 251 245 float *X; 252 246 float *Y; … … 261 255 int gfits_db_lock PROTO((FITS_DB *db, char *filename)); 262 256 int gfits_db_load PROTO((FITS_DB *db)); 263 int gfits_db_load_segment PROTO((FITS_DB *db, int start, int Nrows));257 int gfits_db_load_segment PROTO((FITS_DB *db, off_t start, off_t Nrows)); 264 258 int gfits_db_save PROTO((FITS_DB *db)); 265 259 int gfits_db_update PROTO((FITS_DB *db)); … … 287 281 288 282 int isRegisteredMosaic (void); 289 int GetRegisteredMosaic (void);283 off_t GetRegisteredMosaic (void); 290 284 int GetMosaicCoords (Coords *coords); 291 int FindMosaicForImage (Image *images, int Nimages, int entry);292 int FindMosaicForImage_TableSearch (Image *images, int Nimages, int entry);293 int FindMosaicForImage_MatchSearch (Image *images, int Nimages, int entry);294 int BuildChipMatch (Image *images, int Nimages);285 int FindMosaicForImage (Image *images, off_t Nimages, off_t entry); 286 int FindMosaicForImage_TableSearch (Image *images, off_t Nimages, off_t entry); 287 int FindMosaicForImage_MatchSearch (Image *images, off_t Nimages, off_t entry); 288 int BuildChipMatch (Image *images, off_t Nimages); 295 289 void SetImageCorners (double *X, double *Y, Image *image); 296 290 … … 325 319 PhotCodeData *GetPhotcodeTable (void); 326 320 327 int LoadPhotcodes (char *catdir_file, char *master_file );321 int LoadPhotcodes (char *catdir_file, char *master_file, int readwrite); 328 322 int LoadPhotcodesText (char *filename); 329 323 int LoadPhotcodesFITS (char *filename); … … 347 341 int get_image_mode (char *name); 348 342 char *get_mode_name (int mode); 349 350 /* these functions refer to the DVO structures defined in the includes above351 * they are being replaced with autocode entries (drop when totally autocoded)352 */353 354 int Fread (void *ptr, int size, int nitems, FILE *f, char *type);355 int Fwrite (void *ptr, int size, int nitems, FILE *f, char *type);356 int ByteSwap (char *ptr, int size, int nitems, char *type);357 int ConvertStruct (char *buffer, int size, int Nbytes, char *type);358 343 359 344 /** dvo_catalog APIs */ … … 384 369 int dvo_catalog_save_split_complete (Catalog *catalog, char VERBOSE); 385 370 386 int dvo_catalog_load_segment (Catalog *catalog, int VERBOSE, int start, int Nrows);387 int dvo_catalog_load_segment_split (Catalog *catalog, int VERBOSE, int start, int Nrows);371 int dvo_catalog_load_segment (Catalog *catalog, int VERBOSE, off_t start, off_t Nrows); 372 int dvo_catalog_load_segment_split (Catalog *catalog, int VERBOSE, off_t start, off_t Nrows); 388 373 389 374 /*** conversion functions / I/O conversions ***/ 390 Average *ReadRawAverage (FILE *f, int Naverage, intformat, SecFilt **primary);391 Measure *ReadRawMeasure (FILE *f, int Nmeasure, intformat);392 SecFilt *ReadRawSecFilt (FILE *f, int Nsecfilt, intformat);393 int WriteRawAverage (FILE *f, Average *average, int Naverage, intformat, SecFilt *primary);394 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, intformat);395 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, int Nsecfilt, intformat);396 397 Average *FtableToAverage (FTable *ftable, int *Naverage, int*format, SecFilt **primary);398 Measure *FtableToMeasure (FTable *ftable, int *Nmeasure, int*format);399 SecFilt *FtableToSecFilt (FTable *ftable, int *Nsecfilt, int*format);400 int FtableToImage (FTable *ftable, Header *theader, int*format);401 402 int AverageToFtable (FTable *ftable, Average *average, int Naverage, intformat, SecFilt *primary);403 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, intformat);404 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, intformat);405 int ImageToFtable (FTable *ftable, Header *theader, intformat);406 int ImageToVtable (VTable *vtable, Header *theader, intformat);375 Average *ReadRawAverage (FILE *f, off_t Naverage, char format, SecFilt **primary); 376 Measure *ReadRawMeasure (FILE *f, off_t Nmeasure, char format); 377 SecFilt *ReadRawSecFilt (FILE *f, off_t Nsecfilt, char format); 378 int WriteRawAverage (FILE *f, Average *average, off_t Naverage, char format, SecFilt *primary); 379 int WriteRawMeasure (FILE *f, Measure *measure, off_t Nmeasure, char format); 380 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, off_t Nsecfilt, char format); 381 382 Average *FtableToAverage (FTable *ftable, off_t *Naverage, char *format, SecFilt **primary); 383 Measure *FtableToMeasure (FTable *ftable, off_t *Nmeasure, char *format); 384 SecFilt *FtableToSecFilt (FTable *ftable, off_t *Nsecfilt, char *format); 385 int FtableToImage (FTable *ftable, Header *theader, char *format); 386 387 int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary); 388 int MeasureToFtable (FTable *ftable, Measure *measure, off_t Nmeasure, char format); 389 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, off_t Nsecfilt, char format); 390 int ImageToFtable (FTable *ftable, Header *theader, char format); 391 int ImageToVtable (VTable *vtable, Header *theader, char format); 407 392 408 393 # include "loneos_defs.h" … … 414 399 # include "ps1_dev_3_defs.h" 415 400 # include "ps1_v1_defs.h" 401 # include "ps1_v2_defs.h" 416 402 # include "ps1_ref_defs.h" 417 403 … … 425 411 int dvo_image_update_raw (FITS_DB *db, int VERBOSE); 426 412 int dvo_image_save_raw (FITS_DB *db, int VERBOSE); 427 int dvo_image_addrows (FITS_DB *db, Image *new, int Nnew);413 int dvo_image_addrows (FITS_DB *db, Image *new, off_t Nnew); 428 414 void dvo_image_create (FITS_DB *db, double ZeroPoint); 429 415 … … 432 418 SkyTable *SkyTableLoad PROTO((char *filename, int VERBOSE)); 433 419 SkyTable *SkyTableFromGSC PROTO((char *filename, int depth, int VERBOSE)); 434 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int depth, int VERBOSE));420 SkyTable *SkyTableLoadOptimal PROTO((char *catdir, char *SKYFILE, char *GSCFILE, int readwrite, int depth, int VERBOSE)); 435 421 int SkyTableSetDepth PROTO((SkyTable *sky, int depth)); 436 422 SkyList *SkyRegionByPoint PROTO((SkyTable *table, int depth, double ra, double dec)); … … 454 440 455 441 /* dvo-specific sorting functions */ 456 void sortave (Average *ave, int N); 457 void sort_image_subset (Image *image, int *subset, int N); 458 void sort_coords_index (double *X, double *Y, int *S, int N); 459 void sort_regions (SkyRegion *region, int N); 442 void sortave (Average *ave, off_t N); 443 void sort_image_subset (Image *image, off_t *subset, off_t N); 444 void sort_coords_index (double *X, double *Y, off_t *S, off_t N); 445 void sort_coords_indexonly (double *X, double *Y, off_t *S, off_t N); 446 void sort_regions (SkyRegion *region, off_t N); 460 447 461 448 # endif
Note:
See TracChangeset
for help on using the changeset viewer.
