IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 3, 2010, 8:41:49 AM (16 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/tap_branches
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/tap_branches

  • branches/tap_branches/Ohana

  • branches/tap_branches/Ohana/src/libdvo/include/dvo.h

    r25757 r27838  
    1010
    1111/* 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
     12typedef 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
    2325} DVOTableFormat;
    2426
     
    6466} DVO_INT_NAN;
    6567
    66 # ifndef NAN
    67 # ifndef BYTE_SWAP
    68 #  define __nan_bytes           { 0x7f, 0xc0, 0, 0 }
    69 # else
    70 #  define __nan_bytes           { 0, 0, 0xc0, 0x7f }
    71 # endif
    72 static union { unsigned char __c[4]; float __d; } __nan_union
    73     __attribute_used__ = { __nan_bytes };
    74 # define NAN    (__nan_union.__d)
    75 # endif
    76 
    7768/* RegImage.flag values */
    7869# define IMREG_DIST  0x01 /* image distributed, only imregister-3.0 */
     
    10192# define ID_IMAGE_FEW   0x0008  /* currently too few measurements for good value */
    10293
    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) */
     95typedef 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;
    121113
    122114// XXX we used these names previously in markstar: replace with ID_MEAS_ARTIFACT
     
    134126*/
    135127
    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) */
     129typedef 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;
    150150
    151151/*** general dvo structures (internal use only / not IO) ***/
     
    155155  FILE  *f;
    156156  char  *filename;
    157   int    dbstate;
    158   int    lockstate;
    159157  double timeout;
    160158  Header header;
     
    163161  FTable ftable;
    164162  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? */
    169169} FITS_DB;
    170170
     
    174174/* SkyRegion : better implementation than GSCRegion */
    175175typedef struct {
    176   int Nregions;
     176  off_t Nregions;
    177177  char **filename;
    178178  SkyRegion *regions;
     
    180180
    181181typedef struct {
    182   int Nregions;
     182  off_t Nregions;
    183183  int ownElements;                                /* does this list own filename, regions? */
    184184  char **filename;
     
    187187
    188188// 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
     189CMF_PS1_V2 *gfits_table_get_CMF_PS1_V1_Alt (FTable *ftable, off_t *Ndata, char *swapped);
    198190
    199191typedef struct {
     
    219211
    220212  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) */
    224218
    225219  /* note the different counting for Nsecfilt:
     
    239233
    240234  /* extra catalog information */
    241   int lockmode;
    242   int catmode;                          /* storage mode (raw, mef, split, mysql) */
    243   int catformat;                        /* storage format (elixir, panstarrs, etc) */
    244   int catflags;                         /* choices to be loaded */
    245   int sorted;                           /* 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? */
    246240 
    247241  /* 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;
    251245  float *X;
    252246  float *Y;
     
    261255int   gfits_db_lock                PROTO((FITS_DB *db, char *filename));
    262256int   gfits_db_load                PROTO((FITS_DB *db));
    263 int   gfits_db_load_segment        PROTO((FITS_DB *db, int start, int Nrows));
     257int   gfits_db_load_segment        PROTO((FITS_DB *db, off_t start, off_t Nrows));
    264258int   gfits_db_save                PROTO((FITS_DB *db));
    265259int   gfits_db_update              PROTO((FITS_DB *db));
     
    287281
    288282int isRegisteredMosaic (void);
    289 int GetRegisteredMosaic (void);
     283off_t GetRegisteredMosaic (void);
    290284int 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);
     285int FindMosaicForImage (Image *images, off_t Nimages, off_t entry);
     286int FindMosaicForImage_TableSearch (Image *images, off_t Nimages, off_t entry);
     287int FindMosaicForImage_MatchSearch (Image *images, off_t Nimages, off_t entry);
     288int BuildChipMatch (Image *images, off_t Nimages);
    295289void SetImageCorners (double *X, double *Y, Image *image);
    296290
     
    347341int get_image_mode (char *name);
    348342char *get_mode_name (int mode);
    349 
    350 /* these functions refer to the DVO structures defined in the includes above
    351  *  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);
    358343
    359344/** dvo_catalog APIs */
     
    384369int dvo_catalog_save_split_complete (Catalog *catalog, char VERBOSE);
    385370
    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);
     371int dvo_catalog_load_segment (Catalog *catalog, int VERBOSE, off_t start, off_t Nrows);
     372int dvo_catalog_load_segment_split (Catalog *catalog, int VERBOSE, off_t start, off_t Nrows);
    388373
    389374/*** conversion functions / I/O conversions ***/
    390 Average *ReadRawAverage (FILE *f, int Naverage, int format, SecFilt **primary);
    391 Measure *ReadRawMeasure (FILE *f, int Nmeasure, int format);
    392 SecFilt *ReadRawSecFilt (FILE *f, int Nsecfilt, int format);
    393 int WriteRawAverage (FILE *f, Average *average, int Naverage, int format, SecFilt *primary);
    394 int WriteRawMeasure (FILE *f, Measure *measure, int Nmeasure, int format);
    395 int WriteRawSecFilt (FILE *f, SecFilt *secfilt, int Nsecfilt, int format);
    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, int format, SecFilt *primary);
    403 int MeasureToFtable (FTable *ftable, Measure *measure, int Nmeasure, int format);
    404 int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, int Nsecfilt, int format);
    405 int ImageToFtable (FTable *ftable, Header *theader, int format);
    406 int ImageToVtable (VTable *vtable, Header *theader, int format);
     375Average *ReadRawAverage (FILE *f, off_t Naverage, char format, SecFilt **primary);
     376Measure *ReadRawMeasure (FILE *f, off_t Nmeasure, char format);
     377SecFilt *ReadRawSecFilt (FILE *f, off_t Nsecfilt, char format);
     378int WriteRawAverage (FILE *f, Average *average, off_t Naverage, char format, SecFilt *primary);
     379int WriteRawMeasure (FILE *f, Measure *measure, off_t Nmeasure, char format);
     380int WriteRawSecFilt (FILE *f, SecFilt *secfilt, off_t Nsecfilt, char format);
     381
     382Average *FtableToAverage (FTable *ftable, off_t *Naverage, char *format, SecFilt **primary);
     383Measure *FtableToMeasure (FTable *ftable, off_t *Nmeasure, char *format);
     384SecFilt *FtableToSecFilt (FTable *ftable, off_t *Nsecfilt, char *format);
     385int      FtableToImage   (FTable *ftable, Header *theader, char *format);
     386
     387int AverageToFtable (FTable *ftable, Average *average, off_t Naverage, char format, SecFilt *primary);
     388int MeasureToFtable (FTable *ftable, Measure *measure, off_t Nmeasure, char format);
     389int SecFiltToFtable (FTable *ftable, SecFilt *secfilt, off_t Nsecfilt, char format);
     390int ImageToFtable (FTable *ftable, Header *theader, char format);
     391int ImageToVtable (VTable *vtable, Header *theader, char format);
    407392
    408393# include "loneos_defs.h"
     
    414399# include "ps1_dev_3_defs.h"
    415400# include "ps1_v1_defs.h"
     401# include "ps1_v2_defs.h"
    416402# include "ps1_ref_defs.h"
    417403
     
    425411int dvo_image_update_raw (FITS_DB *db, int VERBOSE);
    426412int dvo_image_save_raw (FITS_DB *db, int VERBOSE);
    427 int dvo_image_addrows (FITS_DB *db, Image *new, int Nnew);
     413int dvo_image_addrows (FITS_DB *db, Image *new, off_t Nnew);
    428414void dvo_image_create (FITS_DB *db, double ZeroPoint);
    429415
     
    454440
    455441/* 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);
     442void sortave (Average *ave, off_t N);
     443void sort_image_subset (Image *image, off_t *subset, off_t N);
     444void sort_coords_index (double *X, double *Y, off_t *S, off_t N);
     445void sort_coords_indexonly (double *X, double *Y, off_t *S, off_t N);
     446void sort_regions (SkyRegion *region, off_t N);
    460447
    461448# endif
Note: See TracChangeset for help on using the changeset viewer.