IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 5, 2012, 2:15:02 PM (14 years ago)
Author:
eugene
Message:

boundary tree needs DEC_min and DEC_max for each zone, even though zone centers are evenly spaced (projection cells not quite large enough to cover exact midpoints)

Location:
trunk/Ohana/src/libdvo
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/include/dvo.h

    r34260 r34291  
    305305  double *RA_origin;
    306306  double *RA_offset;
     307  double *DEC_min;
     308  double *DEC_max;
     309  double *DEC_min_raw;
     310  double *DEC_max_raw;
    307311
    308312  int *Nband;
  • trunk/Ohana/src/libdvo/src/BoundaryTree.c

    r34260 r34291  
    5959 
    6060    // need to create and assign to flat-field correction
    61     GET_COLUMN_RAW(tree->Nband,     "NBAND",     int);
    62     GET_COLUMN_RAW(tree->RA_origin, "RA_ORIGIN", double);
    63     GET_COLUMN_RAW(tree->RA_offset, "RA_OFFSET", double);
     61    GET_COLUMN_RAW(tree->Nband,       "NBAND",           int);
     62    GET_COLUMN_RAW(tree->RA_origin,   "RA_ORIGIN",   double);
     63    GET_COLUMN_RAW(tree->RA_offset,   "RA_OFFSET",   double);
     64    GET_COLUMN_RAW(tree->DEC_min  ,   "DEC_MIN",     double);
     65    GET_COLUMN_RAW(tree->DEC_max  ,   "DEC_MAX",     double);
     66    GET_COLUMN_RAW(tree->DEC_min_raw, "DEC_MIN_RAW", double);
     67    GET_COLUMN_RAW(tree->DEC_max_raw, "DEC_MAX_RAW", double);
    6468    gfits_free_header (&theader);
    6569    gfits_free_table  (&ftable);
     
    171175    gfits_create_table_header (&theader, "BINTABLE", "ZONE_DATA");
    172176
    173     gfits_define_bintable_column (&theader, "J", "ZONE",      "zone sequence number", "none", 1.0, 0.0);
    174     gfits_define_bintable_column (&theader, "J", "NBAND",     "number of cells in each zone", "none", 1.0, 0.0);
    175     gfits_define_bintable_column (&theader, "D", "RA_ORIGIN", "origin of ra cell sequence", "degree", 1.0, 0.0);
    176     gfits_define_bintable_column (&theader, "D", "RA_OFFSET", "offset per cell of ra cell sequence", "degree/cell", 1.0, 0.0);
     177    gfits_define_bintable_column (&theader, "J", "ZONE",        "zone sequence number", "none", 1.0, 0.0);
     178    gfits_define_bintable_column (&theader, "J", "NBAND",       "number of cells in each zone", "none", 1.0, 0.0);
     179    gfits_define_bintable_column (&theader, "D", "RA_ORIGIN",   "origin of ra cell sequence", "degree", 1.0, 0.0);
     180    gfits_define_bintable_column (&theader, "D", "RA_OFFSET",   "offset per cell of ra cell sequence", "degree/cell", 1.0, 0.0);
     181    gfits_define_bintable_column (&theader, "D", "DEC_MIN",     "min dec for zone", "degree", 1.0, 0.0);
     182    gfits_define_bintable_column (&theader, "D", "DEC_MAX",     "max dec for zone", "degree", 1.0, 0.0);
     183    gfits_define_bintable_column (&theader, "D", "DEC_MIN_RAW", "min dec for zone", "degree", 1.0, 0.0);
     184    gfits_define_bintable_column (&theader, "D", "DEC_MAX_RAW", "max dec for zone", "degree", 1.0, 0.0);
    177185
    178186    // generate the output array that carries the data
     
    188196
    189197    // add the columns to the output array
    190     gfits_set_bintable_column (&theader, &ftable, "ZONE",       zone,            tree->Nzone);
    191     gfits_set_bintable_column (&theader, &ftable, "NBAND",      tree->Nband,     tree->Nzone);
    192     gfits_set_bintable_column (&theader, &ftable, "RA_ORIGIN",  tree->RA_origin, tree->Nzone);
    193     gfits_set_bintable_column (&theader, &ftable, "RA_OFFSET",  tree->RA_offset, tree->Nzone);
     198    gfits_set_bintable_column (&theader, &ftable, "ZONE",        zone,              tree->Nzone);
     199    gfits_set_bintable_column (&theader, &ftable, "NBAND",       tree->Nband,       tree->Nzone);
     200    gfits_set_bintable_column (&theader, &ftable, "RA_ORIGIN",   tree->RA_origin,   tree->Nzone);
     201    gfits_set_bintable_column (&theader, &ftable, "RA_OFFSET",   tree->RA_offset,   tree->Nzone);
     202    gfits_set_bintable_column (&theader, &ftable, "DEC_MIN",     tree->DEC_min,     tree->Nzone);
     203    gfits_set_bintable_column (&theader, &ftable, "DEC_MAX",     tree->DEC_max,     tree->Nzone);
     204    gfits_set_bintable_column (&theader, &ftable, "DEC_MIN_RAW", tree->DEC_min_raw, tree->Nzone);
     205    gfits_set_bintable_column (&theader, &ftable, "DEC_MAX_RAW", tree->DEC_max_raw, tree->Nzone);
    194206    free (zone);
    195207
     
    283295  if (*zone >= tree->Nzone) return FALSE;
    284296
     297  // test if:
     298  // (a) DEC_min,DEC_max of *zone are defined (not NAN)
     299  // (b) dec for *zone falls in range DEC_min[*zone] <= dec < DEC_max[*zone]
     300  //     migrate up or down
     301
     302  // TEST int zone_raw = *zone;
     303  if (isfinite(tree->DEC_min[*zone])) {
     304    if (dec >= tree->DEC_max[*zone]) (*zone) ++;
     305    if (dec <  tree->DEC_min[*zone]) (*zone) --;
     306    // TEST assert (dec <  tree->DEC_max[*zone]);
     307    // TEST assert (dec >= tree->DEC_min[*zone]);
     308  }
     309  // TEST assert (zone_raw > -1);
     310
    285311  // now select the RA bin for that zone
    286312  *band = (ra - tree->RA_origin[*zone]) / tree->RA_offset[*zone];
Note: See TracChangeset for help on using the changeset viewer.