IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 11, 2016, 10:23:42 PM (10 years ago)
Author:
eugene
Message:

modify to pass with extremely pedantic build; force consistency for signed vs unsigned and int sizes; various relastro updates

Location:
trunk/Ohana
Files:
32 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana

  • trunk/Ohana/src/libdvo/include/dvo_util.h

    r27435 r39457  
    6161// There is no need to release memory pointed to by return value.
    6262// It will be freed when dvoConfigFree() is invoked.
    63 Image *dvoImageByExternID(dvoConfig *dvoConfig, int sourceID, int externID);
     63Image *dvoImageByExternID(dvoConfig *dvoConfig, unsigned short sourceID, unsigned int externID);
    6464
    6565// Loads the sky table for the database.
     
    7272// return a list of detections from a particular image id
    7373// Use dvoFree() to free the memory pointed to by results
    74 off_t dvoGetDetections(SkyList *skylist, int imageID, dvoDetection **results, int *pMaxDetID);
     74off_t dvoGetDetections(SkyList *skylist, unsigned int imageID, dvoDetection **results, unsigned int *pMaxDetID);
    7575
    7676// free memory returned by various dvo util functions
  • trunk/Ohana/src/libdvo/include/dvodb.h

    r39308 r39457  
    490490double        TimeValue (time_t time, time_t TimeReference, int TimeFormat);
    491491
    492 void          image_subset          PROTO((Image *image, off_t Nimage, off_t **Subset, off_t *Nsubset, SkyRegionSelection *selection, unsigned long int tzero, double trange, int TimeSelect));
    493 off_t         match_image_subset    PROTO((Image *image, off_t *subset, off_t Nsubset, unsigned int T, short int S));
     492void          image_subset          PROTO((Image *image, off_t Nimage, off_t **Subset, off_t *Nsubset, SkyRegionSelection *selection, e_time tzero, double trange, int TimeSelect));
     493off_t         match_image_subset    PROTO((Image *image, off_t *subset, off_t Nsubset, e_time T, short int S));
    494494
    495495// dvo DB field functions
  • trunk/Ohana/src/libdvo/include/libdvo_astro.h

    r39245 r39457  
    6767  int NMAP;
    6868  AstromOffsetMap **map;
    69    int *imageIDtoTableSeq;
    70   int MaxImageID;
    71   int MaxTableID;
     69  int *imageIDtoTableSeq;
     70  unsigned int MaxImageID;
     71  unsigned int MaxTableID;
    7272} AstromOffsetTable;
    7373
  • trunk/Ohana/src/libdvo/src/AstromOffsetMapIO.c

    r38986 r39457  
    7777    }
    7878    AstromOffsetTableSetIDs (table);
    79     gfits_free_header (ftable.header);
     79
     80    gfits_free_header (&theader);
    8081    gfits_free_table  (&ftable);
    8182  } else {
     
    9899    // Convert the disk array of maps to then internal format in a rich structure:
    99100    table = AstromOffsetMapToTable (map_disk, Nmap);
     101
     102    gfits_free_header (&theader);
    100103    gfits_free_table  (&ftable);
    101104  }
    102105
    103   gfits_free_header (&theader);
     106  gfits_free_header (&header);
    104107  gfits_free_matrix (&matrix);
     108  fclose (f);
    105109
    106110  return (table);
     
    130134  ftable.header = &theader;
    131135  gfits_table_set_AstromOffsetMap_Disk_6x6 (&ftable, map_disk, Nmap, TRUE);
     136  FREE (map_disk);
    132137
    133138  f = fopen (filename, "w");
     
    143148  fclose (f);
    144149
     150  gfits_free_header (&header);
     151  gfits_free_matrix (&matrix);
     152  gfits_free_header (&theader);
     153  gfits_free_table  (&ftable);
     154
    145155  return (TRUE);
    146156}
     
    148158AstromOffsetTable *AstromOffsetMapToTable(AstromOffsetMap_Disk_6x6 *map_disk, off_t Nmap) {
    149159
    150   int i, j, k;
     160  unsigned int i;
     161  int j, k;
    151162
    152163  AstromOffsetTable *table = NULL;
     
    157168
    158169  // find the max value of imageID
    159   int MaxTableID = 0;
    160   int MaxImageID = 0;
     170  unsigned int MaxTableID = 0;
     171  unsigned int MaxImageID = 0;
    161172  for (i = 0; i < Nmap; i++) {
    162     MaxTableID = MAX(map_disk[i].tableID, MaxTableID);
    163     MaxImageID = MAX(map_disk[i].imageID, MaxImageID);
     173    MaxTableID = MAX(MaxTableID, map_disk[i].tableID);
     174    MaxImageID = MAX(MaxImageID, map_disk[i].imageID);
    164175  }
    165176  table->MaxTableID = MaxTableID;
     
    312323int AstromOffsetTableSetIDs (AstromOffsetTable *table) {
    313324
    314   int i;
    315 
    316325  // find the max value of imageID
    317   int MaxTableID = 0;
    318   int MaxImageID = 0;
    319   for (i = 0; i < table->Nmap; i++) {
    320     MaxTableID = MAX(table->map[i][0].tableID, MaxTableID);
    321     MaxImageID = MAX(table->map[i][0].imageID, MaxImageID);
    322   }
    323   table->MaxTableID = MaxTableID;
    324   table->MaxImageID = MaxImageID;
     326  unsigned int MaxTableID = 0;
     327  unsigned int MaxImageID = 0;
     328  {
     329    int j;
     330    for (j = 0; j < table->Nmap; j++) {
     331      MaxTableID = MAX(MaxTableID, table->map[j][0].tableID);
     332      MaxImageID = MAX(MaxImageID, table->map[j][0].imageID);
     333    }
     334    table->MaxTableID = MaxTableID;
     335    table->MaxImageID = MaxImageID;
     336  }
    325337
    326338  // generate the index and init values to -1
    327   ALLOCATE (table->imageIDtoTableSeq, int, MaxImageID + 1);
    328   for (i = 0; i <= MaxImageID; i++) {
    329     table->imageIDtoTableSeq[i] = -1;
     339  {
     340    unsigned int i;
     341    ALLOCATE (table->imageIDtoTableSeq, int, MaxImageID + 1);
     342    for (i = 0; i <= MaxImageID; i++) {
     343      table->imageIDtoTableSeq[i] = -1;
     344    }
    330345  }
    331346
    332347  // assign the ID values
    333   for (i = 0; i < table->Nmap; i++) {
    334     int ImageID = table->map[i][0].imageID;
    335     myAssert (table->imageIDtoTableSeq[ImageID] == -1, "oops, duplicate image IDs");
    336     table->imageIDtoTableSeq[ImageID] = i;
     348  {
     349    int j;
     350    for (j = 0; j < table->Nmap; j++) {
     351      int ImageID = table->map[j][0].imageID;
     352      myAssert (table->imageIDtoTableSeq[ImageID] == -1, "oops, duplicate image IDs");
     353      table->imageIDtoTableSeq[ImageID] = j;
     354    }
    337355  }
    338356  return TRUE;
  • trunk/Ohana/src/libdvo/src/AstromOffsetMapUtils.c

    r38986 r39457  
    1111  off_t i;
    1212  for (i = 0; i < Nimages; i++) {
    13     int imageID = images[i].imageID;
    14     if (imageID < 0) continue;
     13    // if (images[i].imageID < 0) continue;
     14
     15    unsigned int imageID = images[i].imageID;
    1516    if (imageID > table->MaxImageID) continue;
    1617   
     
    126127  tgt->keep = src->keep;
    127128
    128   int Nx = src->dX;
    129   int Ny = src->dY;
     129  int Nx = src->Nx;
     130  int Ny = src->Ny;
    130131
    131132  int j, k;
  • trunk/Ohana/src/libdvo/src/HostTable.c

    r39395 r39457  
    2727  int i;
    2828  for (i = 0; i < Nhosts; i++) {
    29     free (hosts[i].hostname);
    30     free (hosts[i].pathname);
     29    FREE (hosts[i].hostname);
     30    FREE (hosts[i].pathname);
     31    FREE (hosts[i].results);
    3132    FreeIOBuffer (&hosts[i].stdout);
    3233    FreeIOBuffer (&hosts[i].stderr);
     
    4344  }
    4445  if (table->index) free (table->index);
     46
    4547  free (table);
    4648  return;
  • trunk/Ohana/src/libdvo/src/ImageOps.c

    r39347 r39457  
    55void image_subset (Image *image, off_t Nimage, off_t **Subset, off_t *Nsubset,
    66                   SkyRegionSelection *selection,
    7                    unsigned long int tzero, double trange, int TimeSelect)
     7                   e_time tzero, double trange, int TimeSelect)
    88{
    99
  • trunk/Ohana/src/libdvo/src/RegionHostTable.c

    r39395 r39457  
    4242  for (i = 0; i < Nhosts; i++) {
    4343    free (hosts[i].hostname);
     44    FreeIOBuffer (&hosts[i].stdout);
     45    FreeIOBuffer (&hosts[i].stderr);
     46    FREE (hosts[i].image);
     47    FREE (hosts[i].imseq);
     48    FREE (hosts[i].neighbors);
     49    if (hosts[i].astromTable) {
     50      FREE (hosts[i].astromTable->map);
     51      FREE (hosts[i].astromTable->imageIDtoTableSeq);
     52      FREE (hosts[i].astromTable);
     53    }
     54    // do NOT use AstromOffsetTableFree : an astromTable is
     55    // only set here by relastro:assign_images, and it uses
     56    // AstromOffsetTableAddMapFromImage to assign pointers, not copies
     57    // AstromOffsetTableFree(hosts[i].astromTable);
    4458  }
    4559  free (hosts);
     
    5569  if (table->index) free (table->index);
    5670  free (table);
     71
    5772  return;
    5873}
     
    8398  RegionHostInfo *hosts = NULL;
    8499  ALLOCATE (hosts, RegionHostInfo, NHOSTS);
    85   InitRegionHosts (hosts, Nhosts, NHOSTS);
     100  InitRegionHosts (hosts, 0, NHOSTS);
    86101
    87102  int maxID = 0;
  • trunk/Ohana/src/libdvo/src/dbExtractImages.c

    r39308 r39457  
    5555/* return image.field based on the selection */
    5656dbValue dbExtractImages (Image *image, off_t Nimage, off_t N, dbField *field) {
     57  OHANA_UNUSED_PARAM(Nimage); // XXX: not sure why this is supplied
    5758
    5859  double x, y;
  • trunk/Ohana/src/libdvo/src/db_utils.c

    r31636 r39457  
    1010// by default, no graphdata
    1111int GetGraphdata(Graphdata *graph, int *kapa, char *name) {
     12  OHANA_UNUSED_PARAM(graph);
     13  OHANA_UNUSED_PARAM(kapa);
     14  OHANA_UNUSED_PARAM(name);
    1215    return FALSE;
    1316}
  • trunk/Ohana/src/libdvo/src/dvo_catalog_chipcoords.c

    r37035 r39457  
    11# include <dvo.h>
    22
    3 int dvo_match_image (Image *image, int Nimage, unsigned int T, short int S) {
     3int dvo_match_image (Image *image, int Nimage, int T, short int S) {
    44
    55  int N, Nlo, Nhi, N1, N2;
  • trunk/Ohana/src/libdvo/src/dvo_catalog_mef.c

    r38441 r39457  
    1717     it is not defined for a legacy database, we can generate them using the existing index values.
    1818     If it is missing, give a warning and recommend the user upgrade the DB */
    19   if (!gfits_scan (&catalog[0].header, "OBJID",    "%d", 1, &catalog[0].objID)) {
     19  if (!gfits_scan (&catalog[0].header, "OBJID",    "%u", 1, &catalog[0].objID)) {
    2020    if (VERBOSE) fprintf (stderr, "WARNING: OBJID is not set for %s: upgrade for full feature set\n", catalog[0].filename);
    2121    catalog[0].objID = 0;
    2222  }
    23   if (!gfits_scan (&catalog[0].header, "CATID",    "%d", 1, &catalog[0].catID)) {
     23  if (!gfits_scan (&catalog[0].header, "CATID",    "%u", 1, &catalog[0].catID)) {
    2424    if (VERBOSE) fprintf (stderr, "WARNING: CATID is not set for %s: upgrade for full feature set\n", catalog[0].filename);
    2525    catalog[0].catID = 0;
  • trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c

    r38441 r39457  
    2929     it is not defined for a legacy database, we can generate them using the existing index values.
    3030     If it is missing, give a warning and recommend the user upgrade the DB */
    31   if (!gfits_scan (&catalog[0].header, "OBJID",    "%d", 1, &catalog[0].objID)) {
     31  if (!gfits_scan (&catalog[0].header, "OBJID",    "%u", 1, &catalog[0].objID)) {
    3232    if (VERBOSE) fprintf (stderr, "WARNING: OBJID is not set for this database: upgrade for full feature set\n");
    3333    catalog[0].objID = 0;
    3434  }
    35   if (!gfits_scan (&catalog[0].header, "CATID",    "%d", 1, &catalog[0].catID)) {
     35  if (!gfits_scan (&catalog[0].header, "CATID",    "%u", 1, &catalog[0].catID)) {
    3636    if (VERBOSE) fprintf (stderr, "WARNING: CATID is not set for this database: upgrade for full feature set\n");
    3737    catalog[0].catID = 0;
  • trunk/Ohana/src/libdvo/src/dvo_convert.c

    r38986 r39457  
    320320
    321321Missing *FtableToMissing (FTable *ftable, Average *average, off_t *Nmissing, DVOCatFormat *format, char nativeBytes) {
     322  OHANA_UNUSED_PARAM(average);
    322323
    323324  Missing *missing;
     
    397398
    398399SecFilt *FtableToSecFilt (FTable *ftable, Average *average, off_t *Nsecfilt, DVOCatFormat *format, char nativeBytes) {
     400  OHANA_UNUSED_PARAM(average);
    399401
    400402  SecFilt *secfilt;
     
    509511
    510512Lensing *FtableToLensing (FTable *ftable, Average *average, off_t *Nlensing, DVOCatFormat *format, char nativeBytes) {
     513  OHANA_UNUSED_PARAM(average);
    511514
    512515  Lensing *lensing;
     
    652655
    653656Lensobj *FtableToLensobj (FTable *ftable, Average *average, off_t *Nlensobj, DVOCatFormat *format, char nativeBytes) {
     657  OHANA_UNUSED_PARAM(average);
    654658
    655659  Lensobj *lensobj;
     
    769773
    770774StarPar *FtableToStarPar (FTable *ftable, Average *average, off_t *Nstarpar, DVOCatFormat *format, char nativeBytes) {
     775  OHANA_UNUSED_PARAM(average);
    771776
    772777  StarPar *starpar;
     
    874879
    875880GalPhot *FtableToGalPhot (FTable *ftable, Average *average, off_t *Ngalphot, DVOCatFormat *format, char nativeBytes) {
     881  OHANA_UNUSED_PARAM(average);
    876882
    877883  GalPhot *galphot;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c

    r38462 r39457  
    100100// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    101101Average *Average_PS1_DEV_1_ToInternal (Average_PS1_DEV_1 *in, off_t Nvalues, SecFilt **primary) {
     102  OHANA_UNUSED_PARAM(primary);
    102103
    103104  off_t i;
     
    138139// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    139140Average_PS1_DEV_1 *AverageInternalTo_PS1_DEV_1 (Average *in, off_t Nvalues, SecFilt *primary) {
     141  OHANA_UNUSED_PARAM(primary);
    140142
    141143  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c

    r38462 r39457  
    9797// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    9898Average *Average_PS1_DEV_2_ToInternal (Average_PS1_DEV_2 *in, off_t Nvalues, SecFilt **primary) {
     99  OHANA_UNUSED_PARAM(primary);
    99100
    100101  off_t i;
     
    133134// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    134135Average_PS1_DEV_2 *AverageInternalTo_PS1_DEV_2 (Average *in, off_t Nvalues, SecFilt *primary) {
     136  OHANA_UNUSED_PARAM(primary);
    135137
    136138  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c

    r38462 r39457  
    5555// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    5656Average *Average_PS1_REF_ToInternal (Average_PS1_REF *in, off_t Nvalues, SecFilt **primary) {
     57  OHANA_UNUSED_PARAM(primary);
    5758
    5859  off_t i;
     
    8081// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    8182Average_PS1_REF *AverageInternalTo_PS1_REF (Average *in, off_t Nvalues, SecFilt *primary) {
     83  OHANA_UNUSED_PARAM(primary);
    8284
    8385  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_SIM.c

    r39262 r39457  
    44
    55Measure *Measure_PS1_SIM_ToInternal (Average *ave, Measure_PS1_SIM *in, off_t Nvalues) {
     6  OHANA_UNUSED_PARAM(ave);
    67
    78  off_t i;
     
    5152
    5253Measure_PS1_SIM *MeasureInternalTo_PS1_SIM (Average *ave, Measure *in, off_t Nvalues) {
     54  OHANA_UNUSED_PARAM(ave);
    5355
    5456  off_t i;
     
    9799// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    98100Average *Average_PS1_SIM_ToInternal (Average_PS1_SIM *in, off_t Nvalues, SecFilt **primary) {
     101  OHANA_UNUSED_PARAM(primary);
    99102
    100103  off_t i;
     
    143146// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    144147Average_PS1_SIM *AverageInternalTo_PS1_SIM (Average *in, off_t Nvalues, SecFilt *primary) {
     148  OHANA_UNUSED_PARAM(primary);
    145149
    146150  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c

    r38462 r39457  
    115115// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    116116Average *Average_PS1_V1_ToInternal (Average_PS1_V1 *in, off_t Nvalues, SecFilt **primary) {
     117  OHANA_UNUSED_PARAM(primary);
    117118
    118119  off_t i;
     
    152153// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    153154Average_PS1_V1 *AverageInternalTo_PS1_V1 (Average *in, off_t Nvalues, SecFilt *primary) {
     155  OHANA_UNUSED_PARAM(primary);
    154156
    155157  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c

    r38462 r39457  
    116116// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    117117Average *Average_PS1_V2_ToInternal (Average_PS1_V2 *in, off_t Nvalues, SecFilt **primary) {
     118  OHANA_UNUSED_PARAM(primary);
    118119
    119120  off_t i;
     
    157158// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    158159Average_PS1_V2 *AverageInternalTo_PS1_V2 (Average *in, off_t Nvalues, SecFilt *primary) {
     160  OHANA_UNUSED_PARAM(primary);
    159161
    160162  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c

    r38462 r39457  
    116116// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    117117Average *Average_PS1_V3_ToInternal (Average_PS1_V3 *in, off_t Nvalues, SecFilt **primary) {
     118  OHANA_UNUSED_PARAM(primary);
    118119
    119120  off_t i;
     
    159160// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    160161Average_PS1_V3 *AverageInternalTo_PS1_V3 (Average *in, off_t Nvalues, SecFilt *primary) {
     162  OHANA_UNUSED_PARAM(primary);
    161163
    162164  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c

    r38462 r39457  
    134134// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    135135Average *Average_PS1_V4_ToInternal (Average_PS1_V4 *in, off_t Nvalues, SecFilt **primary) {
     136  OHANA_UNUSED_PARAM(primary);
    136137
    137138  off_t i;
     
    180181// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    181182Average_PS1_V4 *AverageInternalTo_PS1_V4 (Average *in, off_t Nvalues, SecFilt *primary) {
     183  OHANA_UNUSED_PARAM(primary);
    182184
    183185  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c

    r39262 r39457  
    44
    55Measure *Measure_PS1_V5_ToInternal (Average *ave, Measure_PS1_V5 *in, off_t Nvalues) {
     6  OHANA_UNUSED_PARAM(ave);
    67
    78  off_t i;
     
    7980
    8081Measure_PS1_V5 *MeasureInternalTo_PS1_V5 (Average *ave, Measure *in, off_t Nvalues) {
     82  OHANA_UNUSED_PARAM(ave);
    8183
    8284  off_t i;
     
    153155// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    154156Average *Average_PS1_V5_ToInternal (Average_PS1_V5 *in, off_t Nvalues, SecFilt **primary) {
     157  OHANA_UNUSED_PARAM(primary);
    155158
    156159  off_t i;
     
    225228// 'primary' is needed to conform with the API for Loneos and Elixir, but is not used
    226229Average_PS1_V5 *AverageInternalTo_PS1_V5 (Average *in, off_t Nvalues, SecFilt *primary) {
     230  OHANA_UNUSED_PARAM(primary);
    227231
    228232  off_t i;
     
    16401644
    16411645Measure *Measure_PS1_V5alt_ToInternal (Average *ave, Measure_PS1_V5alt *in, off_t Nvalues) {
     1646  OHANA_UNUSED_PARAM(ave);
    16421647
    16431648  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c

    r38462 r39457  
    106106// 'primary is needed to conform with the API for Loneos and Elixir, but is not used
    107107Average *Average_Panstarrs_DEV_0_ToInternal (Average_Panstarrs_DEV_0 *in, off_t Nvalues, SecFilt **primary) {
     108  OHANA_UNUSED_PARAM(primary);
    108109
    109110  off_t i;
     
    143144// 'primary is needed to conform with the API for Loneos and Elixir, but is not used
    144145Average_Panstarrs_DEV_0 *AverageInternalTo_Panstarrs_DEV_0 (Average *in, off_t Nvalues, SecFilt *primary) {
     146  OHANA_UNUSED_PARAM(primary);
    145147
    146148  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c

    r38462 r39457  
    106106// 'primary is needed to conform with the API for Loneos and Elixir, but is not used
    107107Average *Average_Panstarrs_DEV_1_ToInternal (Average_Panstarrs_DEV_1 *in, off_t Nvalues, SecFilt **primary) {
     108  OHANA_UNUSED_PARAM(primary);
    108109
    109110  off_t i;
     
    143144// 'primary is needed to conform with the API for Loneos and Elixir, but is not used
    144145Average_Panstarrs_DEV_1 *AverageInternalTo_Panstarrs_DEV_1 (Average *in, off_t Nvalues, SecFilt *primary) {
     146  OHANA_UNUSED_PARAM(primary);
    145147
    146148  off_t i;
  • trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c

    r39277 r39457  
    467467/***/
    468468float PhotAve (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     469  OHANA_UNUSED_PARAM(average);
    469470
    470471  if (code == NULL) return NAN;
     
    572573
    573574float PhotCalErr (Measure *measure, dvoMagClassType class) {
     575  OHANA_UNUSED_PARAM(class);
    574576
    575577  float dMcal = measure[0].dMcal;
     
    578580
    579581float PhotAveErr (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     582  OHANA_UNUSED_PARAM(average);
    580583
    581584  if (code == NULL) return NAN;
     
    640643
    641644float PhotZeroPoint (Measure *measure, Average *average, SecFilt *secfilt) {
     645  OHANA_UNUSED_PARAM(average);
     646  OHANA_UNUSED_PARAM(secfilt);
    642647
    643648  int Np;
     
    710715
    711716float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     717  OHANA_UNUSED_PARAM(average);
    712718
    713719  if (code == NULL) return NAN;
     
    757763// return the number of detections in this filter (gpc1)
    758764int PhotNcode (PhotCode *code, Average *average, SecFilt *secfilt) {
     765  OHANA_UNUSED_PARAM(average);
    759766
    760767  if (code == NULL) return 0;
     
    768775// return the number of detections in this filter (gpc1)
    769776int PhotSecfiltFlags (PhotCode *code, Average *average, SecFilt *secfilt) {
     777  OHANA_UNUSED_PARAM(average);
    770778
    771779  if (code == NULL) return 0;
     
    778786
    779787int PhotNphot (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     788  OHANA_UNUSED_PARAM(average);
    780789
    781790  if (code == NULL) return 0;
     
    824833
    825834float PhotAveFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt) {
     835  OHANA_UNUSED_PARAM(average);
    826836
    827837  int Ns;
     
    836846
    837847float PhotAvedFluxPSF (PhotCode *code, Average *average, SecFilt *secfilt) {
     848  OHANA_UNUSED_PARAM(average);
    838849
    839850  int Ns;
     
    848859
    849860float PhotAveFluxKron (PhotCode *code, Average *average, SecFilt *secfilt) {
     861  OHANA_UNUSED_PARAM(average);
    850862
    851863  int Ns;
     
    860872
    861873float PhotAvedFluxKron (PhotCode *code, Average *average, SecFilt *secfilt) {
     874  OHANA_UNUSED_PARAM(average);
    862875
    863876  int Ns;
     
    872885
    873886float PhotMmin (PhotCode *code, Average *average, SecFilt *secfilt) {
     887  OHANA_UNUSED_PARAM(average);
    874888
    875889  int Ns;
     
    884898
    885899float PhotMmax (PhotCode *code, Average *average, SecFilt *secfilt) {
     900  OHANA_UNUSED_PARAM(average);
    886901
    887902  int Ns;
     
    896911
    897912float PhotUCdist (PhotCode *code, Average *average, SecFilt *secfilt) {
     913  OHANA_UNUSED_PARAM(average);
    898914
    899915  int Ns;
     
    921937// Xm is now (2014.07.03) stored as the chisq except in dvo formats which use as short
    922938float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt) {
     939  OHANA_UNUSED_PARAM(average);
    923940
    924941  int Ns;
     
    11881205/***/
    11891206float PhotFluxAve (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     1207  OHANA_UNUSED_PARAM(average);
    11901208
    11911209  if (code == NULL) return NAN;
     
    12481266
    12491267float PhotFluxAveErr (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     1268  OHANA_UNUSED_PARAM(average);
    12501269
    12511270  if (code == NULL) return NAN;
     
    16101629/***/
    16111630float PhotAveTiny (PhotCode *code, AverageTiny *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) {
     1631  OHANA_UNUSED_PARAM(average);
    16121632
    16131633  if (code == NULL) return NAN;
     
    17461766
    17471767float PhotdMTiny (PhotCode *code, AverageTiny *average, SecFilt *secfilt) {
     1768  OHANA_UNUSED_PARAM(average);
    17481769
    17491770  int Ns;
     
    17591780// Xm is now (2014.07.03) stored as the chisq except in dvo formats which use as short
    17601781float PhotXmTiny (PhotCode *code, AverageTiny *average, SecFilt *secfilt) {
     1782  OHANA_UNUSED_PARAM(average);
    17611783
    17621784  int Ns;
     
    18531875}
    18541876
    1855 LENSFIELD(X11_sm_obj);
    1856 LENSFIELD(X12_sm_obj);
    1857 LENSFIELD(X22_sm_obj);
    1858 LENSFIELD(E1_sm_obj);
    1859 LENSFIELD(E2_sm_obj);
    1860 
    1861 LENSFIELD(X11_sh_obj);
    1862 LENSFIELD(X12_sh_obj);
    1863 LENSFIELD(X22_sh_obj);
    1864 LENSFIELD(E1_sh_obj);
    1865 LENSFIELD(E2_sh_obj);
    1866 
    1867 LENSFIELD(X11_sm_psf);
    1868 LENSFIELD(X12_sm_psf);
    1869 LENSFIELD(X22_sm_psf);
    1870 LENSFIELD(E1_sm_psf);
    1871 LENSFIELD(E2_sm_psf);
    1872 
    1873 LENSFIELD(X11_sh_psf);
    1874 LENSFIELD(X12_sh_psf);
    1875 LENSFIELD(X22_sh_psf);
    1876 LENSFIELD(E1_sh_psf);
    1877 LENSFIELD(E2_sh_psf);
    1878 
    1879 LENSFIELD( F_ApR5);
    1880 LENSFIELD(dF_ApR5);
    1881 LENSFIELD(sF_ApR5);
    1882 LENSFIELD(fF_ApR5);
    1883 
    1884 LENSFIELD( F_ApR6);
    1885 LENSFIELD(dF_ApR6);
    1886 LENSFIELD(sF_ApR6);
    1887 LENSFIELD(fF_ApR6);
    1888 
    1889 LENSFIELD( F_ApR7);
    1890 LENSFIELD(dF_ApR7);
    1891 LENSFIELD(sF_ApR7);
    1892 LENSFIELD(fF_ApR7);
    1893 
    1894 LENSFIELD(E1);
    1895 LENSFIELD(E2);
     1877LENSFIELD(X11_sm_obj)
     1878LENSFIELD(X12_sm_obj)
     1879LENSFIELD(X22_sm_obj)
     1880LENSFIELD(E1_sm_obj)
     1881LENSFIELD(E2_sm_obj)
     1882
     1883LENSFIELD(X11_sh_obj)
     1884LENSFIELD(X12_sh_obj)
     1885LENSFIELD(X22_sh_obj)
     1886LENSFIELD(E1_sh_obj)
     1887LENSFIELD(E2_sh_obj)
     1888
     1889LENSFIELD(X11_sm_psf)
     1890LENSFIELD(X12_sm_psf)
     1891LENSFIELD(X22_sm_psf)
     1892LENSFIELD(E1_sm_psf)
     1893LENSFIELD(E2_sm_psf)
     1894
     1895LENSFIELD(X11_sh_psf)
     1896LENSFIELD(X12_sh_psf)
     1897LENSFIELD(X22_sh_psf)
     1898LENSFIELD(E1_sh_psf)
     1899LENSFIELD(E2_sh_psf)
     1900
     1901LENSFIELD( F_ApR5)
     1902LENSFIELD(dF_ApR5)
     1903LENSFIELD(sF_ApR5)
     1904LENSFIELD(fF_ApR5)
     1905
     1906LENSFIELD( F_ApR6)
     1907LENSFIELD(dF_ApR6)
     1908LENSFIELD(sF_ApR6)
     1909LENSFIELD(fF_ApR6)
     1910
     1911LENSFIELD( F_ApR7)
     1912LENSFIELD(dF_ApR7)
     1913LENSFIELD(sF_ApR7)
     1914LENSFIELD(fF_ApR7)
     1915
     1916LENSFIELD(E1)
     1917LENSFIELD(E2)
    18961918
    18971919# if (1)
  • trunk/Ohana/src/libdvo/src/dvo_tiny_values.c

    r39380 r39457  
    7878int free_tiny_values (Catalog *catalog) {
    7979
    80   if (catalog[0].averageT) free (catalog[0].averageT);
    81   if (catalog[0].measureT) free (catalog[0].measureT);
     80  if (catalog[0].averageT) {
     81    free (catalog[0].averageT);
     82    catalog[0].averageT = NULL;
     83  }
     84  if (catalog[0].measureT) {
     85    free (catalog[0].measureT);
     86    catalog[0].measureT = NULL;
     87  }
    8288  return (TRUE);
    8389}
  • trunk/Ohana/src/libdvo/src/dvo_util.c

    r38553 r39457  
     1#include <dvo_util.h>
     2
    13// dvo_util.c
    24// This file contains a set of functions that provide simple read-only access to a dvo database
    35//
    4 #include <dvo_util.h>
    5 
    6 void dvoFree(void *ptr)
    7 {
    8     if (ptr) {
    9         FREE(ptr);
    10     }
    11 }
    12 
    13 dvoConfig * dvoConfigAlloc()
    14 {
    15     dvoConfig *config;
    16 
    17     ALLOCATE(config, dvoConfig, 1);
    18 
    19     memset(config, 0, sizeof(dvoConfig));
    20     return config;
    21 }
    22 
    23 void dvoConfigFree(dvoConfig *dvoConfig)
    24 {
    25     if (dvoConfig) {
    26         if (dvoConfig->skyTable) {
    27             SkyTableFree(dvoConfig->skyTable);
    28         }
    29         if (dvoConfig->images) {
    30             gfits_db_free(&dvoConfig->imageDB);
    31         }
    32         FREE(dvoConfig);
    33     }
    34 }
    35 
    36 dvoConfig *dvoConfigRead(int *argc, char **argv)
    37 {
    38     dvoConfig *dvoConfig = dvoConfigAlloc();
    39     char MasterPhotcodeFile[256];
    40 
    41     char *file = SelectConfigFile(argc, argv, "ptolemy");
    42     char *configData = LoadConfigFile(file);
    43     if (!configData) {
    44         fprintf(stderr, "ERROR: can't find configuration file %s\n", file);
    45         if (file) {
    46             FREE(file);
    47         }
    48         exit(3);
    49     }
    50     FREE (file);
    51     file = NULL;
    52 
    53     ScanConfig (configData, "GSCFILE",         "%s", 0, dvoConfig->gscfile);
    54     ScanConfig (configData, "CATDIR",          "%s", 0, dvoConfig->catdir);
    55     ScanConfig (configData, "CATMODE",         "%s",  0, dvoConfig->catmode);
    56     ScanConfig (configData, "CATFORMAT",       "%s",  0, dvoConfig->catformat);
    57     ScanConfig (configData, "PHOTCODE_FILE",   "%s",  0, MasterPhotcodeFile);
    58     if (!ScanConfig (configData, "SKY_DEPTH",    "%d",  0, &dvoConfig->skyDepth)) {
    59         dvoConfig->skyDepth = 2;
    60     }
    61     if (!ScanConfig (configData, "SKY_TABLE",    "%s",  0, dvoConfig->skyTableFile)) {
    62         dvoConfig->skyTableFile[0] = 0;
    63     }
    64 
    65     snprintf (dvoConfig->photcodeFile, 256, "%s/Photcodes.dat", dvoConfig->catdir);
    66     if (!LoadPhotcodes (dvoConfig->photcodeFile, MasterPhotcodeFile, FALSE)) {
    67         fprintf (stderr, "error loading photcode table %s or master file %s\n",
    68             dvoConfig->photcodeFile, MasterPhotcodeFile);
    69         exit (1);
    70     }
    71 
    72     double zero_point;
    73     ScanConfig (configData, "ZERO_PT",                "%lf", 0, &zero_point);
    74     SetZeroPoint (zero_point);
     6
     7void dvoFree(void *ptr) {
     8  if (ptr) {
     9    FREE(ptr);
     10  }
     11}
     12
     13dvoConfig *dvoConfigAlloc() {
     14  dvoConfig *config;
     15
     16  ALLOCATE(config, dvoConfig, 1);
     17
     18  memset(config, 0, sizeof(dvoConfig));
     19  return config;
     20}
     21
     22void dvoConfigFree(dvoConfig *dvoConfig) {
     23  if (dvoConfig) {
     24    if (dvoConfig->skyTable) {
     25      SkyTableFree(dvoConfig->skyTable);
     26    }
     27    if (dvoConfig->images) {
     28      gfits_db_free(&dvoConfig->imageDB);
     29    }
     30    FREE(dvoConfig);
     31  }
     32}
     33
     34dvoConfig *dvoConfigRead(int *argc, char **argv) {
     35  dvoConfig *dvoConfig = dvoConfigAlloc();
     36  char MasterPhotcodeFile[256];
     37
     38  char *file = SelectConfigFile(argc, argv, "ptolemy");
     39  char *configData = LoadConfigFile(file);
     40  if (!configData) {
     41    fprintf(stderr, "ERROR: can't find configuration file %s\n", file);
     42    if (file) {
     43      FREE(file);
     44    }
     45    exit(3);
     46  }
     47  FREE (file);
     48  file = NULL;
     49
     50  ScanConfig (configData, "GSCFILE",         "%s", 0, dvoConfig->gscfile);
     51  ScanConfig (configData, "CATDIR",          "%s", 0, dvoConfig->catdir);
     52  ScanConfig (configData, "CATMODE",         "%s",  0, dvoConfig->catmode);
     53  ScanConfig (configData, "CATFORMAT",       "%s",  0, dvoConfig->catformat);
     54  ScanConfig (configData, "PHOTCODE_FILE",   "%s",  0, MasterPhotcodeFile);
     55  if (!ScanConfig (configData, "SKY_DEPTH",    "%d",  0, &dvoConfig->skyDepth)) {
     56    dvoConfig->skyDepth = 2;
     57  }
     58  if (!ScanConfig (configData, "SKY_TABLE",    "%s",  0, dvoConfig->skyTableFile)) {
     59    dvoConfig->skyTableFile[0] = 0;
     60  }
     61
     62  snprintf (dvoConfig->photcodeFile, 256, "%s/Photcodes.dat", dvoConfig->catdir);
     63  if (!LoadPhotcodes (dvoConfig->photcodeFile, MasterPhotcodeFile, FALSE)) {
     64    fprintf (stderr, "error loading photcode table %s or master file %s\n",
     65             dvoConfig->photcodeFile, MasterPhotcodeFile);
     66    exit (1);
     67  }
     68
     69  double zero_point;
     70  ScanConfig (configData, "ZERO_PT",                "%lf", 0, &zero_point);
     71  SetZeroPoint (zero_point);
    7572
    7673#if (DVO_UTIL_READ_CAMERA_CONFIG)
    77     // at one point I thought reading the camera configuration might be useful
    78     // but we didn't need it
    79     if (!ScanConfig (configData, "CAMERA_CONFIG", "%s", 0, dvoConfig->cameraConfig)) {
    80         fprintf (stderr, "can't find CAMERA_CONFIG in configuration\n");
    81         exit (3);
    82     }
    83     char * cameraConfigData = LoadConfigFile(dvoConfig->cameraConfig);
    84     if (!cameraConfigData) {
    85         fprintf (stderr, "failed to load %s\n", dvoConfig->cameraConfig);
    86         exit (3);
    87     }
    88 
    89     ScanConfig (cameraConfigData, "NCCD", "%d", 1, &dvoConfig->nCCD);
     74  // at one point I thought reading the camera configuration might be useful
     75  // but we didn't need it
     76  if (!ScanConfig (configData, "CAMERA_CONFIG", "%s", 0, dvoConfig->cameraConfig)) {
     77    fprintf (stderr, "can't find CAMERA_CONFIG in configuration\n");
     78    exit (3);
     79  }
     80  char * cameraConfigData = LoadConfigFile(dvoConfig->cameraConfig);
     81  if (!cameraConfigData) {
     82    fprintf (stderr, "failed to load %s\n", dvoConfig->cameraConfig);
     83    exit (3);
     84  }
     85
     86  ScanConfig (cameraConfigData, "NCCD", "%d", 1, &dvoConfig->nCCD);
    9087#endif
    9188
    92     return (dvoConfig);
    93 }
    94 
    95 int dvoLoadImages(dvoConfig *dvoConfig)
    96 {
    97     if (dvoConfig->images) {
    98         return TRUE;
    99     }
    100 
    101     char filename[256];
     89  return (dvoConfig);
     90}
     91
     92int dvoLoadImages(dvoConfig *dvoConfig) {
     93  if (dvoConfig->images) {
     94    return TRUE;
     95  }
     96
     97  char filename[256];
    10298 
    103     snprintf (filename, 256, "%s/Images.dat", dvoConfig->catdir);
    104 
    105     gfits_db_init (&dvoConfig->imageDB);
    106     dvoConfig->imageDB.lockstate = LCK_SOFT;
    107     dvoConfig->imageDB.timeout   = 120.0;
    108 
    109     if (!gfits_db_lock (&dvoConfig->imageDB, filename)) {
    110         fprintf (stderr, "error opening image catalog %s (1)\n", filename);
    111         return (FALSE);
    112     }
    113 
    114     if (dvoConfig->imageDB.dbstate == LCK_EMPTY) {
    115         fprintf (stderr, "note: image catalog is empty\n");
    116         ALLOCATE (dvoConfig->images, Image, 1);
    117         dvoConfig->nImages = 1;
    118         return (TRUE);
    119     }
    120 
    121     int status = dvo_image_load (&dvoConfig->imageDB, TRUE, FALSE);
    122     gfits_db_close (&dvoConfig->imageDB);
    123 
    124     if (!status) {
    125         fprintf (stderr, "problem loading image database table\n");
    126         return (FALSE);
    127     }
    128 
    129     dvoConfig->images = gfits_table_get_Image (&dvoConfig->imageDB.ftable, &dvoConfig->nImages, &dvoConfig->imageDB.scaledValue, &dvoConfig->imageDB.nativeOrder);
    130     if (!dvoConfig->images) {
    131         fprintf (stderr, "problem loading images\n");
    132         return (FALSE);
    133     }
    134 
     99  snprintf (filename, 256, "%s/Images.dat", dvoConfig->catdir);
     100
     101  gfits_db_init (&dvoConfig->imageDB);
     102  dvoConfig->imageDB.lockstate = LCK_SOFT;
     103  dvoConfig->imageDB.timeout   = 120.0;
     104
     105  if (!gfits_db_lock (&dvoConfig->imageDB, filename)) {
     106    fprintf (stderr, "error opening image catalog %s (1)\n", filename);
     107    return (FALSE);
     108  }
     109
     110  if (dvoConfig->imageDB.dbstate == LCK_EMPTY) {
     111    fprintf (stderr, "note: image catalog is empty\n");
     112    ALLOCATE (dvoConfig->images, Image, 1);
     113    dvoConfig->nImages = 1;
    135114    return (TRUE);
    136 }
    137 Image *dvoImageByExternID(dvoConfig *dvoConfig, int sourceID, int externID)
    138 {
    139     int i;
     115  }
     116
     117  int status = dvo_image_load (&dvoConfig->imageDB, TRUE, FALSE);
     118  gfits_db_close (&dvoConfig->imageDB);
     119
     120  if (!status) {
     121    fprintf (stderr, "problem loading image database table\n");
     122    return (FALSE);
     123  }
     124
     125  dvoConfig->images = gfits_table_get_Image (&dvoConfig->imageDB.ftable, &dvoConfig->nImages, &dvoConfig->imageDB.scaledValue, &dvoConfig->imageDB.nativeOrder);
     126  if (!dvoConfig->images) {
     127    fprintf (stderr, "problem loading images\n");
     128    return (FALSE);
     129  }
     130
     131  return (TRUE);
     132}
     133
     134Image *dvoImageByExternID(dvoConfig *dvoConfig, unsigned short sourceID, unsigned int externID) {
     135
     136  unsigned int i;
    140137   
    141     if (!dvoLoadImages(dvoConfig)) return NULL;
    142 
    143     for (i=0; i<dvoConfig->nImages; i++) {
    144         Image *image = dvoConfig->images + i;
    145         if ((image->externID == externID) && (image->sourceID == sourceID)) {
    146             BuildChipMatch(dvoConfig->images, dvoConfig->nImages);
    147             return image;
    148         }
    149     }
    150     fprintf(stderr, "can't find image for %d %d\n", sourceID, externID);
    151     return NULL;
    152 }
    153 
    154 SkyTable *dvoLoadSkyTable(dvoConfig *dvoConfig)
    155 {
    156     if (!dvoConfig->skyTable) {
    157         char *skyfile = "";
    158         dvoConfig->skyTable = SkyTableLoadOptimal(dvoConfig->catdir, skyfile, dvoConfig->gscfile,
    159                                                     FALSE, dvoConfig->skyDepth, 0);
    160     }
    161 
    162     if (dvoConfig->skyTable == NULL) {
    163         fprintf(stderr, "failed to load SkyTable\n");
    164         return NULL;
    165     }
    166 
    167     SkyTableSetFilenames(dvoConfig->skyTable, dvoConfig->catdir, "cpt");
    168 
    169     return dvoConfig->skyTable;
    170 }
    171 
    172 SkyList *dvoSkyListByExternID(dvoConfig *dvoConfig, int sourceID, int externID, Image **ppImage)
    173 {
    174     Image *image = dvoImageByExternID(dvoConfig, sourceID, externID);
    175     if (image == NULL) {
    176         // fprintf(stderr, "can't find image for %d %d\n", sourceID, externID);
    177         return NULL;
    178     }
    179 
    180     if (dvoLoadSkyTable(dvoConfig) == NULL) {
    181         fprintf(stderr, "failed to load Sky table\n");
    182         return NULL;
    183     }
    184     SkyList *skylist = SkyListByImage(dvoConfig->skyTable, -1, image);
    185     if (!skylist->Nregions) {
    186         fprintf(stderr, "failed to find SkyList for image  %d %d\n", sourceID, externID);
    187         return NULL;
    188     }
    189 
    190     *ppImage = image;
    191 
    192     return skylist;
    193 }
    194 
    195 off_t dvoGetDetections(SkyList *skylist, int imageID, dvoDetection **results, int *pMaxDetID)
    196 {
     138  if (!dvoLoadImages(dvoConfig)) return NULL;
     139
     140  for (i = 0; i < dvoConfig->nImages; i++) {
     141    Image *image = dvoConfig->images + i;
     142    if ((image->externID == externID) && (image->sourceID == sourceID)) {
     143      BuildChipMatch(dvoConfig->images, dvoConfig->nImages);
     144      return image;
     145    }
     146  }
     147  fprintf(stderr, "can't find image for %d %d\n", sourceID, externID);
     148  return NULL;
     149}
     150
     151SkyTable *dvoLoadSkyTable(dvoConfig *dvoConfig) {
     152  if (!dvoConfig->skyTable) {
     153    char *skyfile = "";
     154    dvoConfig->skyTable = SkyTableLoadOptimal(dvoConfig->catdir, skyfile, dvoConfig->gscfile,
     155                                              FALSE, dvoConfig->skyDepth, 0);
     156  }
     157
     158  if (dvoConfig->skyTable == NULL) {
     159    fprintf(stderr, "failed to load SkyTable\n");
     160    return NULL;
     161  }
     162
     163  SkyTableSetFilenames(dvoConfig->skyTable, dvoConfig->catdir, "cpt");
     164
     165  return dvoConfig->skyTable;
     166}
     167
     168SkyList *dvoSkyListByExternID(dvoConfig *dvoConfig, int sourceID, int externID, Image **ppImage) {
     169  Image *image = dvoImageByExternID(dvoConfig, sourceID, externID);
     170  if (image == NULL) {
     171    // fprintf(stderr, "can't find image for %d %d\n", sourceID, externID);
     172    return NULL;
     173  }
     174
     175  if (dvoLoadSkyTable(dvoConfig) == NULL) {
     176    fprintf(stderr, "failed to load Sky table\n");
     177    return NULL;
     178  }
     179  SkyList *skylist = SkyListByImage(dvoConfig->skyTable, -1, image);
     180  if (!skylist->Nregions) {
     181    fprintf(stderr, "failed to find SkyList for image  %d %d\n", sourceID, externID);
     182    return NULL;
     183  }
     184
     185  *ppImage = image;
     186
     187  return skylist;
     188}
     189
     190off_t dvoGetDetections(SkyList *skylist, unsigned int imageID, dvoDetection **results, unsigned int *pMaxDetID) {
    197191  int GetMeasures = 1;
    198192  int reg;
     
    204198  *pMaxDetID = -1;
    205199  for (reg=0; reg< skylist->Nregions; reg++) {
    206       /* lock, load, unlock catalog */
    207       Catalog catalog;
    208 
    209       dvo_catalog_init (&catalog, TRUE);
    210       catalog.filename = skylist->filename[reg];
    211       catalog.catflags = GetMeasures ? DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT : DVO_LOAD_AVERAGE | DVO_LOAD_SECFILT;
    212       catalog.Nsecfilt = 0;
    213 
    214       // an error exit status here is a significant error
    215       if (!dvo_catalog_open (&catalog, NULL, FALSE, "r")) {
    216           fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);
    217           exit (2);
     200    /* lock, load, unlock catalog */
     201    Catalog catalog;
     202
     203    dvo_catalog_init (&catalog, TRUE);
     204    catalog.filename = skylist->filename[reg];
     205    catalog.catflags = GetMeasures ? DVO_LOAD_AVERAGE | DVO_LOAD_MEASURE | DVO_LOAD_SECFILT : DVO_LOAD_AVERAGE | DVO_LOAD_SECFILT;
     206    catalog.Nsecfilt = 0;
     207
     208    // an error exit status here is a significant error
     209    if (!dvo_catalog_open (&catalog, NULL, FALSE, "r")) {
     210      fprintf (stderr, "ERROR: failure to open catalog file %s\n", catalog.filename);
     211      exit (2);
     212    }
     213    dvo_catalog_unlock (&catalog);
     214
     215    off_t Nmeasure = catalog.Nmeasure;
     216
     217    off_t i;
     218    for (i=0; i< Nmeasure; i++) {
     219      Measure *m = catalog.measure + i;
     220      if (m->imageID != imageID) {
     221        continue;
    218222      }
    219       dvo_catalog_unlock (&catalog);
    220 
    221       off_t Nmeasure = catalog.Nmeasure;
    222 
    223       off_t i;
    224       for (i=0; i< Nmeasure; i++) {
    225         Measure *m = catalog.measure + i;
    226         if (m->imageID != imageID) {
    227             continue;
    228         }
    229         Average *a = catalog.average + m->averef;
     223      Average *a = catalog.average + m->averef;
    230224       
    231         dvoDetection *det = detections + Ndetect;
    232 
    233         det->valid     = 1;
    234         det->ave      = *a;
    235         det->meas     = *m;
     225      dvoDetection *det = detections + Ndetect;
     226
     227      det->valid     = 1;
     228      det->ave      = *a;
     229      det->meas     = *m;
    236230#ifdef notdfe
    237         det->objID     = a->objID;
    238         det->catID     = m->catID;
    239         det->detID     = m->detID;
    240         det->pspsObjID = a->extID;
    241         det->pspsDetID = m->extID;
     231      det->objID     = a->objID;
     232      det->catID     = m->catID;
     233      det->detID     = m->detID;
     234      det->pspsObjID = a->extID;
     235      det->pspsDetID = m->extID;
    242236#endif
    243237       
    244         if ((int) det->meas.detID > *pMaxDetID) {
    245             *pMaxDetID = det->meas.detID;
    246         }
    247 
    248         Ndetect++;
    249         CHECK_REALLOCATE(detections, dvoDetection, detectionsArrayLength, Ndetect, 1000);
     238      if (det->meas.detID > *pMaxDetID) {
     239        *pMaxDetID = det->meas.detID;
    250240      }
    251241
    252       dvo_catalog_free (&catalog);
     242      Ndetect++;
     243      CHECK_REALLOCATE(detections, dvoDetection, detectionsArrayLength, Ndetect, 1000);
     244    }
     245
     246    dvo_catalog_free (&catalog);
    253247  }
    254248  size_t NInvalidDetID = 0;
    255249  if (Ndetect) {
    256       dvoDetection *sorted;
    257       ALLOCATE(sorted, dvoDetection, *pMaxDetID + 1);
    258 
    259       memset(sorted, 0, sizeof(dvoDetection) * *pMaxDetID);
    260       off_t i;
    261       for (i = 0; i < Ndetect; i++) {
    262 
    263           if (detections[i].meas.detID < 0 || detections[i].meas.detID > (*pMaxDetID + 1))
    264               NInvalidDetID++;
    265           else
    266               sorted[detections[i].meas.detID] = detections[i];
    267       }
    268       *results = sorted;
     250    dvoDetection *sorted;
     251    ALLOCATE(sorted, dvoDetection, *pMaxDetID + 1);
     252
     253    memset(sorted, 0, sizeof(dvoDetection) * *pMaxDetID);
     254    off_t i;
     255    for (i = 0; i < Ndetect; i++) {
     256
     257      // if (detections[i].meas.detID < 0 || detections[i].meas.detID > (*pMaxDetID + 1))
     258
     259      if (detections[i].meas.detID > (*pMaxDetID + 1))
     260        NInvalidDetID++;
     261      else
     262        sorted[detections[i].meas.detID] = detections[i];
     263    }
     264    *results = sorted;
    269265  } else {
    270       *results = NULL;
     266    *results = NULL;
    271267  }
    272268
  • trunk/Ohana/src/libdvo/src/dvosorts.c

    r36084 r39457  
    7676/* sort a coordinate pair (X,Y) and the associated index (S) */
    7777void sort_coords_indexonly (double *X, double *Y, off_t *S, off_t N) {
     78  OHANA_UNUSED_PARAM(Y);
    7879 
    7980# define SWAPFUNC(A,B){ off_t itmp; \
  • trunk/Ohana/src/libdvo/src/match_image.c

    r31635 r39457  
    11# include "dvo.h"
    22
    3 off_t match_image (Image *image, off_t Nimage, unsigned int T, short int S) {
     3off_t match_image (Image *image, off_t Nimage, e_time T, short int S) {
    44
    55  off_t N, Nlo, Nhi, N1, N2;
     
    3737}
    3838
    39 off_t match_image_subset (Image *image, off_t *subset, off_t Nsubset, unsigned int T, short int S) {
     39off_t match_image_subset (Image *image, off_t *subset, off_t Nsubset, e_time T, short int S) {
    4040
    4141  off_t N, Nlo, Nhi, N1, N2;
  • trunk/Ohana/src/libdvo/src/mosaic_astrom.c

    r39325 r39457  
    6464    images[i].coords.mosaic = &images[j].coords;
    6565  }
     66
     67  free (DISentry);
     68  free (DIStzero);
     69
    6670  return (TRUE);
    6771}
Note: See TracChangeset for help on using the changeset viewer.