IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34209


Ignore:
Timestamp:
Jul 25, 2012, 8:16:31 AM (14 years ago)
Author:
eugene
Message:

adding boundary tree I/O functions

Location:
branches/eam_branches/ipp-20120627/Ohana/src/addstar/src
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120627/Ohana/src/addstar/src/findskycell.c

    r34206 r34209  
    211211  MARKTIME("-- test %d pts: %f sec\n", Npts, dtime);
    212212
    213   // save the tree
    214   Header header, theader;
    215   Matrix matrix;
    216   FTable ftable;
    217 
    218   gfits_init_header (&header);
    219   header.extend = TRUE;
    220   gfits_create_header (&header);
    221   gfits_create_matrix (&header, &matrix);
    222 
    223   ftable.header = &theader;
    224  
    225   FILE *f = fopen (filename, "w");
    226   if (!f) {
    227     fprintf (stderr, "ERROR: cannot open image subset file for output %s\n", filename);
    228     return FALSE;
    229   }
    230 
    231   gfits_fwrite_header  (f, &header);
    232   gfits_fwrite_matrix  (f, &matrix);
    233   gfits_free_header (&header);
    234   gfits_free_matrix (&matrix);
    235 
    236   /*** MeasureTiny ***/
    237   {
    238     gfits_create_table_header (&theader, "BINTABLE", "MEASURE_TINY");
    239 
    240     gfits_define_bintable_column (&theader, "E", "RA_OFF",   "ra offset",                  "arcsec", 1.0, 0.0);
    241     gfits_define_bintable_column (&theader, "E", "DEC_OFF",  "dec offset",                 "arcsec", 1.0, 0.0);
    242     gfits_define_bintable_column (&theader, "E", "MAG_SYS",  "magnitude (sys)",             NULL,    1.0, 0.0);
    243     gfits_define_bintable_column (&theader, "E", "MAG_CAL",  "magnitude (cal)",             NULL,    1.0, 0.0);
    244     gfits_define_bintable_column (&theader, "E", "MAG_ERR",  "magnitude (err)",             NULL,    1.0, 0.0);
    245     gfits_define_bintable_column (&theader, "E", "AIRMASS",  "airmass",                     NULL,    1.0, 0.0);
    246     gfits_define_bintable_column (&theader, "E", "X_CCD",    "ccd x coord",                "pix",    1.0, 0.0);
    247     gfits_define_bintable_column (&theader, "E", "Y_CCD",    "ccd y coord",                "pix",    1.0, 0.0);
    248     gfits_define_bintable_column (&theader, "E", "EXPTIME",  "-2.5 * log (exposure time)", "sec",    1.0, 0.0);
    249     gfits_define_bintable_column (&theader, "J", "TIME",     "time of exp",                "sec",    1.0, 1.0*0x8000);
    250     gfits_define_bintable_column (&theader, "J", "AVE_REF",  "pointer to average table",    NULL,    1.0, 1.0*0x8000);
    251     gfits_define_bintable_column (&theader, "J", "IMAGE_ID", "image",                       NULL,    1.0, 1.0*0x8000);
    252     gfits_define_bintable_column (&theader, "J", "DB_FLAGS", "flags",                       NULL,    1.0, 1.0*0x8000);
    253     gfits_define_bintable_column (&theader, "J", "PHOT_FLAGS", "photflags",                 NULL,    1.0, 1.0*0x8000);
    254     gfits_define_bintable_column (&theader, "J", "CAT_ID",   "catalog",                     NULL,    1.0, 1.0*0x8000);
    255     gfits_define_bintable_column (&theader, "I", "PHOTCODE", "photcode",                    NULL,    1.0, 1.0*0x80);
    256 
    257     // generate the output array that carries the data
    258     gfits_create_table (&theader, &ftable);
    259 
    260     // create intermediate storage arrays
    261     float *dR        ; ALLOCATE (dR       ,  float, catalog->Nmeasure);
    262     float *dD        ; ALLOCATE (dD       ,  float, catalog->Nmeasure);
    263     float *M         ; ALLOCATE (M        ,  float, catalog->Nmeasure);
    264     float *Mcal      ; ALLOCATE (Mcal     ,  float, catalog->Nmeasure);
    265     float *dM        ; ALLOCATE (dM       ,  float, catalog->Nmeasure);
    266     float *airmass   ; ALLOCATE (airmass  ,  float, catalog->Nmeasure);
    267     float *Xccd      ; ALLOCATE (Xccd     ,  float, catalog->Nmeasure);
    268     float *Yccd      ; ALLOCATE (Yccd     ,  float, catalog->Nmeasure);
    269     float *dt        ; ALLOCATE (dt       ,  float, catalog->Nmeasure);
    270     int   *t         ; ALLOCATE (t        ,  int  , catalog->Nmeasure);
    271     int   *averef    ; ALLOCATE (averef   ,  int  , catalog->Nmeasure);
    272     int   *imageID   ; ALLOCATE (imageID  ,  int  , catalog->Nmeasure);
    273     int   *dbFlags   ; ALLOCATE (dbFlags  ,  int  , catalog->Nmeasure);
    274     int   *photFlags ; ALLOCATE (photFlags,  int  , catalog->Nmeasure);
    275     int   *catID     ; ALLOCATE (catID    ,  int  , catalog->Nmeasure);
    276     short *photcode  ; ALLOCATE (photcode ,  short, catalog->Nmeasure);
    277 
    278     // assign the storage arrays
    279     MeasureTiny *measure = catalog->measure;
    280     for (i = 0; i < catalog->Nmeasure; i++) {
    281       dR[i]       = measure[i].dR       ;
    282       dD[i]       = measure[i].dD       ;
    283       M[i]        = measure[i].M        ;
    284       Mcal[i]     = measure[i].Mcal     ;
    285       dM[i]       = measure[i].dM       ;
    286       airmass[i]  = measure[i].airmass  ;
    287       Xccd[i]     = measure[i].Xccd     ;
    288       Yccd[i]     = measure[i].Yccd     ;
    289       dt[i]       = measure[i].dt       ;
    290       t[i]        = measure[i].t        ;
    291       averef[i]   = measure[i].averef   ;
    292       catID[i]    = measure[i].catID    ;
    293       imageID[i]  = measure[i].imageID  ;
    294       dbFlags[i]  = measure[i].dbFlags  ;
    295       photFlags[i]= measure[i].photFlags;
    296       photcode[i] = measure[i].photcode ;
    297     }
    298 
    299   header.buffer = NULL;
    300   matrix.buffer = NULL;
    301   ftable.buffer = NULL;
    302   theader.buffer = NULL;
    303 
     213  BoundaryTreeSave (treefile, &tree);
    304214
    305215  return TRUE;
    306216}
    307 
    308217
    309218// the boundary tree...
Note: See TracChangeset for help on using the changeset viewer.