IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 8, 2007, 12:21:18 PM (19 years ago)
Author:
eugene
Message:

complete merge from branch dvo-mods-2007-02

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libdvo/src/dvo_catalog_raw.c

    r8456 r12332  
    1212  struct stat filestatus;
    1313  char format[80], telescope[80];
     14  SecFilt *primary;
    1415
    1516  f = catalog[0].f;
     
    2829  catalog[0].catformat = DVO_FORMAT_UNDEF;
    2930  if (gfits_scan (&catalog[0].header, "FORMAT",  "%s", 1, format)) {
    30     if (!strcmp (format, "INTERNAL")) catalog[0].catformat = DVO_FORMAT_INTERNAL;
    31     if (!strcmp (format, "LONEOS")) catalog[0].catformat = DVO_FORMAT_LONEOS;
    32     if (!strcmp (format, "ELIXIR")) catalog[0].catformat = DVO_FORMAT_ELIXIR;
    33     if (!strcmp (format, "PANSTARRS")) catalog[0].catformat = DVO_FORMAT_PANSTARRS;
    34     if (!strcmp (format, "PMTEST")) catalog[0].catformat = DVO_FORMAT_PMTEST;
     31    catalog[0].catformat = dvo_catalog_catformat (format);
    3532    if (catalog[0].catformat != DVO_FORMAT_UNDEF) goto got_format;
    3633  }
    3734  /* special cases: old versions of the DB tables which were poorly identified */
    3835  if (gfits_scan (&catalog[0].header, "NEWMEAS",  "%t", 1, &NewMeasure)) {
    39     catalog[0].catformat = DVO_FORMAT_ELIXIR;
     36    catalog[0].catformat = DVO_FORMAT_ELIXIR; // special case for ELIXIR
    4037    goto got_format;
    4138  }
    4239  if (gfits_scan (&catalog[0].header, "TELESCOP",  "%s", 1, telescope)) {
    4340    if (!strncmp (telescope, "LONEOS", strlen("LONEOS"))) {
    44       catalog[0].catformat = DVO_FORMAT_LONEOS;
     41      catalog[0].catformat = DVO_FORMAT_LONEOS; // special case for LONEOS
    4542      goto got_format;
    4643    }
    4744    if (!strncmp (telescope, "1.3m McGraw-Hill", strlen("1.3m McGraw-Hill"))) {
    48       catalog[0].catformat = DVO_FORMAT_ELIXIR;
     45      catalog[0].catformat = DVO_FORMAT_ELIXIR; // special case for ELIXIR
    4946      goto got_format;
    5047    }
     
    5956      AverageSize = sizeof(Average);
    6057      MeasureSize = sizeof(Measure);
    61       SecFiltSize = sizeof (SecFilt);
     58      SecFiltSize = sizeof(SecFilt);
    6259      break;
    6360    case DVO_FORMAT_LONEOS:
    6461      AverageSize = sizeof(AverageLoneos);
    6562      MeasureSize = sizeof(MeasureLoneos);
    66       SecFiltSize = sizeof (SecFiltLoneos);
     63      SecFiltSize = sizeof(SecFiltLoneos);
    6764      break;
    6865    case DVO_FORMAT_ELIXIR:
    6966      AverageSize = sizeof(AverageElixir);
    7067      MeasureSize = sizeof(MeasureElixir);
    71       SecFiltSize = sizeof (SecFiltElixir);
     68      SecFiltSize = sizeof(SecFiltElixir);
    7269      break;
     70    case DVO_FORMAT_PANSTARRS_DEV_0:
     71      AverageSize = sizeof(AveragePanstarrs_DEV_0);
     72      MeasureSize = sizeof(MeasurePanstarrs_DEV_0);
     73      SecFiltSize = sizeof(SecFiltPanstarrs_DEV_0);
     74      break;
     75# if 0
    7376    case DVO_FORMAT_PANSTARRS:
    7477      AverageSize = sizeof(AveragePanstarrs);
    7578      MeasureSize = sizeof(MeasurePanstarrs);
    76       SecFiltSize = sizeof (SecFiltPanstarrs);
     79      SecFiltSize = sizeof(SecFiltPanstarrs);
    7780      break;
    7881    case DVO_FORMAT_PMTEST:
    7982      AverageSize = sizeof(AveragePMtest);
    8083      MeasureSize = sizeof(MeasurePanstarrs);
    81       SecFiltSize = sizeof (SecFiltPanstarrs);
     84      SecFiltSize = sizeof(SecFiltPanstarrs);
    8285      break;
     86# endif
    8387    default:
    8488      fprintf (stderr, "programming error in phot_catalog_raw\n");
     
    120124
    121125  /* read and convert the averages (use a macro to clean this up?) */
     126  /* old versions of DVO stored one of the average magnitudes in Average. we save this if needed */
    122127  if (catalog[0].catflags & LOAD_AVES) {
    123     catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0].catformat);
     128    catalog[0].average = ReadRawAverage (catalog[0].f, catalog[0].Naverage, catalog[0].catformat, &primary);
    124129  } else {
    125130    /* skip over averages */
     
    157162    Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
    158163    catalog[0].secfilt = ReadRawSecFilt (catalog[0].f, Nitems, catalog[0].catformat);
     164
     165    /* if primary is defined, we were supplied with one additional average magnitude from Average
     166       we need to interleave these magnitudes with the secfilt entries just loaded */
     167    if (primary != NULL) {
     168      int Ntmpfilt, Nsecfilt, Ntotal, i, j;
     169      SecFilt *tmpfilt;
     170      tmpfilt  = catalog[0].secfilt;
     171      Ntmpfilt = catalog[0].Nsecfilt;
     172      Nsecfilt = catalog[0].Nsecfilt + 1;
     173      Ntotal = Nsecfilt * catalog[0].Naverage;
     174      ALLOCATE (catalog[0].secfilt, SecFilt, Ntotal);
     175      for (i = 0; i < catalog[0].Naverage; i++) {
     176        catalog[0].secfilt[i*Nsecfilt + 0] = primary[i];
     177        for (j = 0; j < Ntmpfilt; j++) {
     178          catalog[0].secfilt[i*Nsecfilt + j + 1] = tmpfilt[i*Ntmpfilt + j];
     179        }
     180      }         
     181      catalog[0].Nsecfilt = Nsecfilt;
     182      free (primary);
     183    }
     184
    159185  } else {
    160186    /* skip over secfilts */
    161187    Nskip = catalog[0].Nsecfilt * catalog[0].Naverage * SecFiltSize;
    162188    fseek (f, Nskip, SEEK_CUR);
     189    if (primary != NULL) free (primary);
    163190  }
    164191
     
    194221  int Nitems, nitems;
    195222  FILE *f;
     223  SecFilt *primary;
     224  SecFilt *secfilt;
     225  int i, j, Nsecfilt, Nallfilt, Ntotal;
    196226
    197227  if (catalog[0].Naverage == 0) {
     
    210240  if (catalog[0].catformat == DVO_FORMAT_LONEOS)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "LONEOS");
    211241  if (catalog[0].catformat == DVO_FORMAT_ELIXIR)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "ELIXIR");
    212   if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
    213   if (catalog[0].catformat == DVO_FORMAT_PMTEST)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
     242  if (catalog[0].catformat == DVO_FORMAT_PANSTARRS_DEV_0) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS_DEV_0");
     243  // if (catalog[0].catformat == DVO_FORMAT_PANSTARRS) gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PANSTARRS");
     244  // if (catalog[0].catformat == DVO_FORMAT_PMTEST)    gfits_modify (&catalog[0].header, "FORMAT", "%s", 1, "PMTEST");
    214245
    215246  /* rewind file pointers and truncate file */
     
    225256  }
    226257
     258  /* for the appropriate types, pull out the first secfilt and pass to WriteRawAverage as primary */
     259  if ((catalog[0].catformat == DVO_FORMAT_ELIXIR) || // special case for ELIXIR
     260      (catalog[0].catformat == DVO_FORMAT_LONEOS)) { // special case for LONEOS
     261    Nallfilt = catalog[0].Nsecfilt;
     262    Nsecfilt = catalog[0].Nsecfilt - 1;
     263    Ntotal = Nsecfilt * catalog[0].Naverage;
     264    ALLOCATE (primary, SecFilt, catalog[0].Naverage);
     265    ALLOCATE (secfilt, SecFilt, Ntotal);
     266
     267    for (i = 0; i < catalog[0].Naverage; i++) {
     268      primary[i] = catalog[0].secfilt[i*Nallfilt + 0];
     269      for (j = 0; j < Nsecfilt; j++) {
     270        secfilt[i*Nsecfilt + j] = catalog[0].secfilt[i*Nallfilt + j + 1];
     271      }
     272    }           
     273  } else {
     274    primary = NULL;
     275    secfilt = catalog[0].secfilt;
     276    Nsecfilt = catalog[0].Nsecfilt;
     277  }
     278
    227279  /* write averages and measures */
    228   WriteRawAverage (f, catalog[0].average, catalog[0].Naverage, catalog[0].catformat);
     280  WriteRawAverage (f, catalog[0].average, catalog[0].Naverage, catalog[0].catformat, primary);
    229281  WriteRawMeasure (f, catalog[0].measure, catalog[0].Nmeasure, catalog[0].catformat);
    230282
     
    240292  Nitems = catalog[0].Naverage * catalog[0].Nsecfilt;
    241293  WriteRawSecFilt (f, catalog[0].secfilt, Nitems, catalog[0].catformat);
     294
     295  /* free temp storage */
     296  if (primary != NULL) {
     297    free (primary);
     298    free (secfilt);
     299  }
     300
    242301  return (TRUE);
    243302}
     
    250309/** Average / Raw Table conversions **/
    251310
    252 Average *ReadRawAverage (FILE *f, int Naverage, int format) {
     311Average *ReadRawAverage (FILE *f, int Naverage, int format, SecFilt **primary) {
    253312
    254313  int nitems;
    255314  Average *average;
    256   AverageElixir *tmpAverageElixir;
    257   AverageLoneos *tmpAverageLoneos;
    258   AveragePanstarrs *tmpAveragePanstarrs;
    259   AveragePMtest *tmpAveragePMtest;
     315
     316  /* in the Elixir and Loneos cases, we are supplied with an average magnitude in Average
     317     in these cases, save these values in primary; otherwise set primary to NULL */
     318  *primary = NULL;
    260319
    261320  switch (format) {
    262     case DVO_FORMAT_INTERNAL:
     321    case DVO_FORMAT_INTERNAL: {
    263322      ALLOCATE (average, Average, MAX (Naverage, 1));
    264323      nitems = fread (average, sizeof(Average), Naverage, f);
     
    268327      }
    269328      gfits_convert_Average (average, sizeof(Average), Naverage);
    270       break;
    271     case DVO_FORMAT_ELIXIR:
    272       ALLOCATE (tmpAverageElixir, AverageElixir, MAX (Naverage, 1));
    273       nitems = fread (tmpAverageElixir, sizeof(AverageElixir), Naverage, f);
     329      break; }
     330    case DVO_FORMAT_ELIXIR: {
     331      AverageElixir *tmpAverage;
     332      ALLOCATE (tmpAverage, AverageElixir, MAX (Naverage, 1));
     333      nitems = fread (tmpAverage, sizeof(AverageElixir), Naverage, f);
    274334      if (nitems != Naverage) {
    275335        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
    276336        return (NULL);
    277337      }
    278       gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
    279       average = AverageElixirToInternal (tmpAverageElixir, Naverage);
    280       free (tmpAverageElixir);
    281       break;
    282     case DVO_FORMAT_LONEOS:
    283       ALLOCATE (tmpAverageLoneos, AverageLoneos, MAX (Naverage, 1));
    284       nitems = fread (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f);
     338      gfits_convert_AverageElixir (tmpAverage, sizeof(AverageElixir), Naverage);
     339      average = AverageElixirToInternal (tmpAverage, Naverage, primary);
     340      free (tmpAverage);
     341      break; }
     342    case DVO_FORMAT_LONEOS: {
     343      AverageLoneos *tmpAverage;
     344      ALLOCATE (tmpAverage, AverageLoneos, MAX (Naverage, 1));
     345      nitems = fread (tmpAverage, sizeof(AverageLoneos), Naverage, f);
    285346      if (nitems != Naverage) {
    286347        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
    287348        return (NULL);
    288349      }
    289       gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
    290       average = AverageLoneosToInternal (tmpAverageLoneos, Naverage);
    291       free (tmpAverageLoneos);
    292       break;
    293     case DVO_FORMAT_PANSTARRS:
    294       ALLOCATE (tmpAveragePanstarrs, AveragePanstarrs, MAX (Naverage, 1));
    295       nitems = fread (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f);
     350      gfits_convert_AverageLoneos (tmpAverage, sizeof(AverageLoneos), Naverage);
     351      average = AverageLoneosToInternal (tmpAverage, Naverage, primary);
     352      free (tmpAverage);
     353      break; }
     354    case DVO_FORMAT_PANSTARRS_DEV_0: {
     355      AveragePanstarrs_DEV_0 *tmpAverage;
     356      ALLOCATE (tmpAverage, AveragePanstarrs_DEV_0, MAX (Naverage, 1));
     357      nitems = fread (tmpAverage, sizeof(AveragePanstarrs_DEV_0), Naverage, f);
    296358      if (nitems != Naverage) {
    297359        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
    298360        return (NULL);
    299361      }
    300       gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
    301       average = AveragePanstarrsToInternal (tmpAveragePanstarrs, Naverage);
    302       free (tmpAveragePanstarrs);
    303       break;
    304     case DVO_FORMAT_PMTEST:
    305       ALLOCATE (tmpAveragePMtest, AveragePMtest, MAX (Naverage, 1));
    306       nitems = fread (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
     362      gfits_convert_AveragePanstarrs_DEV_0 (tmpAverage, sizeof(AveragePanstarrs_DEV_0), Naverage);
     363      average = AveragePanstarrs_DEV_0_ToInternal (tmpAverage, Naverage);
     364      free (tmpAverage);
     365      break; }
     366# if 0
     367    case DVO_FORMAT_PANSTARRS: {
     368      AveragePanstarrs *tmpAverage;
     369      ALLOCATE (tmpAverage, AveragePanstarrs, MAX (Naverage, 1));
     370      nitems = fread (tmpAverage, sizeof(AveragePanstarrs), Naverage, f);
    307371      if (nitems != Naverage) {
    308372        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
    309373        return (NULL);
    310374      }
    311       gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
    312       average = AveragePMtestToInternal (tmpAveragePMtest, Naverage);
    313       free (tmpAveragePMtest);
    314       break;
     375      gfits_convert_AveragePanstarrs (tmpAverage, sizeof(AveragePanstarrs), Naverage);
     376      average = AveragePanstarrsToInternal (tmpAverage, Naverage);
     377      free (tmpAverage);
     378      break; }
     379    case DVO_FORMAT_PMTEST: {
     380      AveragePMtest *tmpAverage;
     381      ALLOCATE (tmpAverage, AveragePMtest, MAX (Naverage, 1));
     382      nitems = fread (tmpAverage, sizeof(AveragePMtest), Naverage, f);
     383      if (nitems != Naverage) {
     384        fprintf (stderr, "failed to read averages (%d vs %d)\n", nitems, Naverage);
     385        return (NULL);
     386      }
     387      gfits_convert_AveragePMtest (tmpAverage, sizeof(AveragePMtest), Naverage);
     388      average = AveragePMtestToInternal (tmpAverage, Naverage);
     389      free (tmpAverage);
     390      break; }
     391# endif
    315392    default:
    316393      fprintf (stderr, "error reading measures\n");
     
    322399/* accepts and converts internal average formats and outputs
    323400   raw data in the specified format */
    324 int WriteRawAverage (FILE *f, Average *average, int Naverage, int format) {
     401int WriteRawAverage (FILE *f, Average *average, int Naverage, int format, SecFilt *primary) {
    325402
    326403  int nitems;
    327   AverageElixir *tmpAverageElixir;
    328   AverageLoneos *tmpAverageLoneos;
    329   AveragePanstarrs *tmpAveragePanstarrs;
    330   AveragePMtest *tmpAveragePMtest;
    331404
    332405  switch (format) {
    333     case DVO_FORMAT_INTERNAL:
     406    case DVO_FORMAT_INTERNAL: {
    334407      gfits_convert_Average (average, sizeof(Average), Naverage);
    335408      nitems = fwrite (average, sizeof(Average), Naverage, f);
     
    338411        return (FALSE);
    339412      }
    340       break;
    341     case DVO_FORMAT_ELIXIR:
    342       tmpAverageElixir = AverageInternalToElixir (average, Naverage);
    343       gfits_convert_AverageElixir (tmpAverageElixir, sizeof(AverageElixir), Naverage);
    344       nitems = fwrite (tmpAverageElixir, sizeof(AverageElixir), Naverage, f);
    345       free (tmpAverageElixir);
     413      break; }
     414    case DVO_FORMAT_ELIXIR: {
     415      AverageElixir *tmpAverage;
     416      tmpAverage = AverageInternalToElixir (average, Naverage, primary);
     417      gfits_convert_AverageElixir (tmpAverage, sizeof(AverageElixir), Naverage);
     418      nitems = fwrite (tmpAverage, sizeof(AverageElixir), Naverage, f);
     419      free (tmpAverage);
    346420      if (nitems != Naverage) {
    347421        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
    348422        return (FALSE);
    349423      }
    350       break;
    351     case DVO_FORMAT_LONEOS:
    352       tmpAverageLoneos = AverageInternalToLoneos (average, Naverage);
    353       gfits_convert_AverageLoneos (tmpAverageLoneos, sizeof(AverageLoneos), Naverage);
    354       nitems = fwrite (tmpAverageLoneos, sizeof(AverageLoneos), Naverage, f);
    355       free (tmpAverageLoneos);
     424      break; }
     425    case DVO_FORMAT_LONEOS: {
     426      AverageLoneos *tmpAverage;
     427      tmpAverage = AverageInternalToLoneos (average, Naverage, primary);
     428      gfits_convert_AverageLoneos (tmpAverage, sizeof(AverageLoneos), Naverage);
     429      nitems = fwrite (tmpAverage, sizeof(AverageLoneos), Naverage, f);
     430      free (tmpAverage);
    356431      if (nitems != Naverage) {
    357432        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
    358433        return (FALSE);
    359434      }
    360       break;
    361     case DVO_FORMAT_PANSTARRS:
    362       tmpAveragePanstarrs = AverageInternalToPanstarrs (average, Naverage);
    363       gfits_convert_AveragePanstarrs (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage);
    364       nitems = fwrite (tmpAveragePanstarrs, sizeof(AveragePanstarrs), Naverage, f);
    365       free (tmpAveragePanstarrs);
     435      break; }
     436    case DVO_FORMAT_PANSTARRS_DEV_0: {
     437      AveragePanstarrs_DEV_0 *tmpAverage;
     438      tmpAverage = AverageInternalToPanstarrs_DEV_0 (average, Naverage);
     439      gfits_convert_AveragePanstarrs_DEV_0 (tmpAverage, sizeof(AveragePanstarrs_DEV_0), Naverage);
     440      nitems = fwrite (tmpAverage, sizeof(AveragePanstarrs_DEV_0), Naverage, f);
     441      free (tmpAverage);
    366442      if (nitems != Naverage) {
    367443        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
    368444        return (FALSE);
    369445      }
    370       break;
    371     case DVO_FORMAT_PMTEST:
    372       tmpAveragePMtest = AverageInternalToPMtest (average, Naverage);
    373       gfits_convert_AveragePMtest (tmpAveragePMtest, sizeof(AveragePMtest), Naverage);
    374       nitems = fwrite (tmpAveragePMtest, sizeof(AveragePMtest), Naverage, f);
    375       free (tmpAveragePMtest);
     446      break; }
     447# if 0
     448    case DVO_FORMAT_PANSTARRS: {
     449      AveragePanstarrs *tmpAverage;
     450      tmpAverage = AverageInternalToPanstarrs (average, Naverage);
     451      gfits_convert_AveragePanstarrs (tmpAverage, sizeof(AveragePanstarrs), Naverage);
     452      nitems = fwrite (tmpAverage, sizeof(AveragePanstarrs), Naverage, f);
     453      free (tmpAverage);
    376454      if (nitems != Naverage) {
    377455        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
    378456        return (FALSE);
    379457      }
    380       break;
     458      break; }
     459    case DVO_FORMAT_PMTEST: {
     460      AveragePMtest *tmpAverage;
     461      tmpAverage = AverageInternalToPMtest (average, Naverage);
     462      gfits_convert_AveragePMtest (tmpAverage, sizeof(AveragePMtest), Naverage);
     463      nitems = fwrite (tmpAverage, sizeof(AveragePMtest), Naverage, f);
     464      free (tmpAverage);
     465      if (nitems != Naverage) {
     466        fprintf (stderr, "failed to write averages (%d vs %d)\n", nitems, Naverage);
     467        return (FALSE);
     468      }
     469      break; }
     470# endif
    381471    default:
    382472      fprintf (stderr, "error writing averages\n");
     
    392482  int nitems;
    393483  Measure *measure;
    394   MeasureElixir *tmpMeasureElixir;
    395   MeasureLoneos *tmpMeasureLoneos;
    396   MeasurePanstarrs *tmpMeasurePanstarrs;
    397484
    398485  switch (format) {
    399     case DVO_FORMAT_INTERNAL:
     486    case DVO_FORMAT_INTERNAL: {
    400487      ALLOCATE (measure, Measure, MAX (Nmeasure, 1));
    401488      nitems = fread (measure, sizeof(Measure), Nmeasure, f);
     
    405492      }
    406493      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
    407       break;
    408     case DVO_FORMAT_ELIXIR:
    409       ALLOCATE (tmpMeasureElixir, MeasureElixir, MAX (Nmeasure, 1));
    410       nitems = fread (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f);
     494      break; }
     495    case DVO_FORMAT_ELIXIR: {
     496      MeasureElixir *tmpMeasure;
     497      ALLOCATE (tmpMeasure, MeasureElixir, MAX (Nmeasure, 1));
     498      nitems = fread (tmpMeasure, sizeof(MeasureElixir), Nmeasure, f);
    411499      if (nitems != Nmeasure) {
    412500        fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure);
    413501        return (NULL);
    414502      }
    415       gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
    416       measure = MeasureElixirToInternal (tmpMeasureElixir, Nmeasure);
    417       free (tmpMeasureElixir);
    418       break;
    419     case DVO_FORMAT_LONEOS:
    420       ALLOCATE (tmpMeasureLoneos, MeasureLoneos, MAX (Nmeasure, 1));
    421       nitems = fread (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f);
     503      gfits_convert_MeasureElixir (tmpMeasure, sizeof(MeasureElixir), Nmeasure);
     504      measure = MeasureElixirToInternal (tmpMeasure, Nmeasure);
     505      free (tmpMeasure);
     506      break; }
     507    case DVO_FORMAT_LONEOS: {
     508      MeasureLoneos *tmpMeasure;
     509      ALLOCATE (tmpMeasure, MeasureLoneos, MAX (Nmeasure, 1));
     510      nitems = fread (tmpMeasure, sizeof(MeasureLoneos), Nmeasure, f);
    422511      if (nitems != Nmeasure) {
    423512        fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure);
    424513        return (NULL);
    425514      }
    426       gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
    427       measure = MeasureLoneosToInternal (tmpMeasureLoneos, Nmeasure);
    428       free (tmpMeasureLoneos);
    429       break;
    430     case DVO_FORMAT_PANSTARRS:
    431     case DVO_FORMAT_PMTEST:
    432       ALLOCATE (tmpMeasurePanstarrs, MeasurePanstarrs, MAX (Nmeasure, 1));
    433       nitems = fread (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f);
     515      gfits_convert_MeasureLoneos (tmpMeasure, sizeof(MeasureLoneos), Nmeasure);
     516      measure = MeasureLoneosToInternal (tmpMeasure, Nmeasure);
     517      free (tmpMeasure);
     518      break; }
     519    case DVO_FORMAT_PANSTARRS_DEV_0: {
     520      MeasurePanstarrs_DEV_0 *tmpMeasure;
     521      ALLOCATE (tmpMeasure, MeasurePanstarrs_DEV_0, MAX (Nmeasure, 1));
     522      nitems = fread (tmpMeasure, sizeof(MeasurePanstarrs_DEV_0), Nmeasure, f);
    434523      if (nitems != Nmeasure) {
    435524        fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure);
    436525        return (NULL);
    437526      }
    438       gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
    439       measure = MeasurePanstarrsToInternal (tmpMeasurePanstarrs, Nmeasure);
    440       free (tmpMeasurePanstarrs);
    441       break;
     527      gfits_convert_MeasurePanstarrs_DEV_0 (tmpMeasure, sizeof(MeasurePanstarrs_DEV_0), Nmeasure);
     528      measure = MeasurePanstarrs_DEV_0_ToInternal (tmpMeasure, Nmeasure);
     529      free (tmpMeasure);
     530      break; }
     531# if 0
     532    case DVO_FORMAT_PANSTARRS: {
     533      MeasurePanstarrs *tmpMeasure;
     534      ALLOCATE (tmpMeasure, MeasurePanstarrs, MAX (Nmeasure, 1));
     535      nitems = fread (tmpMeasure, sizeof(MeasurePanstarrs), Nmeasure, f);
     536      if (nitems != Nmeasure) {
     537        fprintf (stderr, "failed to read measures (%d vs %d)\n", nitems, Nmeasure);
     538        return (NULL);
     539      }
     540      gfits_convert_MeasurePanstarrs (tmpMeasure, sizeof(MeasurePanstarrs), Nmeasure);
     541      measure = MeasurePanstarrsToInternal (tmpMeasure, Nmeasure);
     542      free (tmpMeasure);
     543      break; }
     544# endif
    442545    default:
    443546      fprintf (stderr, "error reading measures\n");
     
    452555
    453556  int nitems;
    454   MeasureElixir *tmpMeasureElixir;
    455   MeasureLoneos *tmpMeasureLoneos;
    456   MeasurePanstarrs *tmpMeasurePanstarrs;
    457557
    458558  switch (format) {
    459     case DVO_FORMAT_INTERNAL:
     559    case DVO_FORMAT_INTERNAL: {
    460560      gfits_convert_Measure (measure, sizeof(Measure), Nmeasure);
    461561      nitems = fwrite (measure, sizeof(Measure), Nmeasure, f);
     
    464564        return (FALSE);
    465565      }
    466       break;
    467     case DVO_FORMAT_ELIXIR:
    468       tmpMeasureElixir = MeasureInternalToElixir (measure, Nmeasure);
    469       gfits_convert_MeasureElixir (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure);
    470       nitems = fwrite (tmpMeasureElixir, sizeof(MeasureElixir), Nmeasure, f);
    471       free (tmpMeasureElixir);
     566      break; }
     567    case DVO_FORMAT_ELIXIR: {
     568      MeasureElixir *tmpMeasure;
     569      tmpMeasure = MeasureInternalToElixir (measure, Nmeasure);
     570      gfits_convert_MeasureElixir (tmpMeasure, sizeof(MeasureElixir), Nmeasure);
     571      nitems = fwrite (tmpMeasure, sizeof(MeasureElixir), Nmeasure, f);
     572      free (tmpMeasure);
    472573      if (nitems != Nmeasure) {
    473574        fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure);
    474575        return (FALSE);
    475576      }
    476       break;
    477     case DVO_FORMAT_LONEOS:
    478       tmpMeasureLoneos = MeasureInternalToLoneos (measure, Nmeasure);
    479       gfits_convert_MeasureLoneos (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure);
    480       nitems = fwrite (tmpMeasureLoneos, sizeof(MeasureLoneos), Nmeasure, f);
    481       free (tmpMeasureLoneos);
     577      break; }
     578    case DVO_FORMAT_LONEOS: {
     579      MeasureLoneos *tmpMeasure;
     580      tmpMeasure = MeasureInternalToLoneos (measure, Nmeasure);
     581      gfits_convert_MeasureLoneos (tmpMeasure, sizeof(MeasureLoneos), Nmeasure);
     582      nitems = fwrite (tmpMeasure, sizeof(MeasureLoneos), Nmeasure, f);
     583      free (tmpMeasure);
    482584      if (nitems != Nmeasure) {
    483585        fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure);
    484586        return (FALSE);
    485587      }
    486       break;
    487     case DVO_FORMAT_PANSTARRS:
    488     case DVO_FORMAT_PMTEST:
    489       tmpMeasurePanstarrs = MeasureInternalToPanstarrs (measure, Nmeasure);
    490       gfits_convert_MeasurePanstarrs (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure);
    491       nitems = fwrite (tmpMeasurePanstarrs, sizeof(MeasurePanstarrs), Nmeasure, f);
    492       free (tmpMeasurePanstarrs);
     588      break; }
     589    case DVO_FORMAT_PANSTARRS_DEV_0: {
     590      MeasurePanstarrs_DEV_0 *tmpMeasure;
     591      tmpMeasure = MeasureInternalToPanstarrs_DEV_0 (measure, Nmeasure);
     592      gfits_convert_MeasurePanstarrs_DEV_0 (tmpMeasure, sizeof(MeasurePanstarrs_DEV_0), Nmeasure);
     593      nitems = fwrite (tmpMeasure, sizeof(MeasurePanstarrs_DEV_0), Nmeasure, f);
     594      free (tmpMeasure);
    493595      if (nitems != Nmeasure) {
    494596        fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure);
    495597        return (FALSE);
    496598      }
    497       break;
     599      break; }
     600# if 0
     601    case DVO_FORMAT_PANSTARRS: {
     602      MeasurePanstarrs *tmpMeasure;
     603      tmpMeasure = MeasureInternalToPanstarrs (measure, Nmeasure);
     604      gfits_convert_MeasurePanstarrs (tmpMeasure, sizeof(MeasurePanstarrs), Nmeasure);
     605      nitems = fwrite (tmpMeasure, sizeof(MeasurePanstarrs), Nmeasure, f);
     606      free (tmpMeasure);
     607      if (nitems != Nmeasure) {
     608        fprintf (stderr, "failed to write measures (%d vs %d)\n", nitems, Nmeasure);
     609        return (FALSE);
     610      }
     611      break; }
     612# endif
    498613    default:
    499614      fprintf (stderr, "error writing measures\n");
     
    509624  int nitems;
    510625  SecFilt *secfilt;
    511   SecFiltElixir *tmpSecFiltElixir;
    512   SecFiltLoneos *tmpSecFiltLoneos;
    513   SecFiltPanstarrs *tmpSecFiltPanstarrs;
    514626
    515627  switch (format) {
    516     case DVO_FORMAT_INTERNAL:
     628    case DVO_FORMAT_INTERNAL: {
    517629      ALLOCATE (secfilt, SecFilt, MAX (Nsecfilt, 1));
    518630      nitems = fread (secfilt, sizeof(SecFilt), Nsecfilt, f);
     
    522634      }
    523635      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
    524       break;
    525     case DVO_FORMAT_ELIXIR:
    526       ALLOCATE (tmpSecFiltElixir, SecFiltElixir, MAX (Nsecfilt, 1));
    527       nitems = fread (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f);
     636      break; }
     637    case DVO_FORMAT_ELIXIR: {
     638      SecFiltElixir *tmpSecFilt;
     639      ALLOCATE (tmpSecFilt, SecFiltElixir, MAX (Nsecfilt, 1));
     640      nitems = fread (tmpSecFilt, sizeof(SecFiltElixir), Nsecfilt, f);
    528641      if (nitems != Nsecfilt) {
    529642        fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt);
    530643        return (NULL);
    531644      }
    532       gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
    533       secfilt = SecFiltElixirToInternal (tmpSecFiltElixir, Nsecfilt);
    534       free (tmpSecFiltElixir);
    535       break;
    536     case DVO_FORMAT_LONEOS:
    537       ALLOCATE (tmpSecFiltLoneos, SecFiltLoneos, MAX (Nsecfilt, 1));
    538       nitems = fread (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f);
     645      gfits_convert_SecFiltElixir (tmpSecFilt, sizeof(SecFiltElixir), Nsecfilt);
     646      secfilt = SecFiltElixirToInternal (tmpSecFilt, Nsecfilt);
     647      free (tmpSecFilt);
     648      break; }
     649    case DVO_FORMAT_LONEOS: {
     650      SecFiltLoneos *tmpSecFilt;
     651      ALLOCATE (tmpSecFilt, SecFiltLoneos, MAX (Nsecfilt, 1));
     652      nitems = fread (tmpSecFilt, sizeof(SecFiltLoneos), Nsecfilt, f);
    539653      if (nitems != Nsecfilt) {
    540654        fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt);
    541655        return (NULL);
    542656      }
    543       gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
    544       secfilt = SecFiltLoneosToInternal (tmpSecFiltLoneos, Nsecfilt);
    545       free (tmpSecFiltLoneos);
    546       break;
    547     case DVO_FORMAT_PANSTARRS:
    548     case DVO_FORMAT_PMTEST:
    549       ALLOCATE (tmpSecFiltPanstarrs, SecFiltPanstarrs, MAX (Nsecfilt, 1));
    550       nitems = fread (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f);
     657      gfits_convert_SecFiltLoneos (tmpSecFilt, sizeof(SecFiltLoneos), Nsecfilt);
     658      secfilt = SecFiltLoneosToInternal (tmpSecFilt, Nsecfilt);
     659      free (tmpSecFilt);
     660      break; }
     661    case DVO_FORMAT_PANSTARRS_DEV_0: {
     662      SecFiltPanstarrs_DEV_0 *tmpSecFilt;
     663      ALLOCATE (tmpSecFilt, SecFiltPanstarrs_DEV_0, MAX (Nsecfilt, 1));
     664      nitems = fread (tmpSecFilt, sizeof(SecFiltPanstarrs_DEV_0), Nsecfilt, f);
    551665      if (nitems != Nsecfilt) {
    552666        fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt);
    553667        return (NULL);
    554668      }
    555       gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
    556       secfilt = SecFiltPanstarrsToInternal (tmpSecFiltPanstarrs, Nsecfilt);
    557       free (tmpSecFiltPanstarrs);
    558       break;
     669      gfits_convert_SecFiltPanstarrs_DEV_0 (tmpSecFilt, sizeof(SecFiltPanstarrs_DEV_0), Nsecfilt);
     670      secfilt = SecFiltPanstarrs_DEV_0_ToInternal (tmpSecFilt, Nsecfilt);
     671      free (tmpSecFilt);
     672      break; }
     673# if 0
     674    case DVO_FORMAT_PANSTARRS: {
     675      SecFiltPanstarrs *tmpSecFilt;
     676      ALLOCATE (tmpSecFilt, SecFiltPanstarrs, MAX (Nsecfilt, 1));
     677      nitems = fread (tmpSecFilt, sizeof(SecFiltPanstarrs), Nsecfilt, f);
     678      if (nitems != Nsecfilt) {
     679        fprintf (stderr, "failed to read secfilts (%d vs %d)\n", nitems, Nsecfilt);
     680        return (NULL);
     681      }
     682      gfits_convert_SecFiltPanstarrs (tmpSecFilt, sizeof(SecFiltPanstarrs), Nsecfilt);
     683      secfilt = SecFiltPanstarrsToInternal (tmpSecFilt, Nsecfilt);
     684      free (tmpSecFilt);
     685      break; }
     686# endif
    559687    default:
    560688      fprintf (stderr, "error reading measures\n");
     
    569697
    570698  int nitems;
    571   SecFiltElixir *tmpSecFiltElixir;
    572   SecFiltLoneos *tmpSecFiltLoneos;
    573   SecFiltPanstarrs *tmpSecFiltPanstarrs;
    574699
    575700  switch (format) {
    576     case DVO_FORMAT_INTERNAL:
     701    case DVO_FORMAT_INTERNAL: {
    577702      gfits_convert_SecFilt (secfilt, sizeof(SecFilt), Nsecfilt);
    578703      nitems = fwrite (secfilt, sizeof(SecFilt), Nsecfilt, f);
     
    581706        return (FALSE);
    582707      }
    583       break;
    584     case DVO_FORMAT_ELIXIR:
    585       tmpSecFiltElixir = SecFiltInternalToElixir (secfilt, Nsecfilt);
    586       gfits_convert_SecFiltElixir (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt);
    587       nitems = fwrite (tmpSecFiltElixir, sizeof(SecFiltElixir), Nsecfilt, f);
    588       free (tmpSecFiltElixir);
     708      break; }
     709    case DVO_FORMAT_ELIXIR: {
     710      SecFiltElixir *tmpSecFilt;
     711      tmpSecFilt = SecFiltInternalToElixir (secfilt, Nsecfilt);
     712      gfits_convert_SecFiltElixir (tmpSecFilt, sizeof(SecFiltElixir), Nsecfilt);
     713      nitems = fwrite (tmpSecFilt, sizeof(SecFiltElixir), Nsecfilt, f);
     714      free (tmpSecFilt);
    589715      if (nitems != Nsecfilt) {
    590716        fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt);
    591717        return (FALSE);
    592718      }
    593       break;
    594     case DVO_FORMAT_LONEOS:
    595       tmpSecFiltLoneos = SecFiltInternalToLoneos (secfilt, Nsecfilt);
    596       gfits_convert_SecFiltLoneos (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt);
    597       nitems = fwrite (tmpSecFiltLoneos, sizeof(SecFiltLoneos), Nsecfilt, f);
    598       free (tmpSecFiltLoneos);
     719      break; }
     720    case DVO_FORMAT_LONEOS: {
     721      SecFiltLoneos *tmpSecFilt;
     722      tmpSecFilt = SecFiltInternalToLoneos (secfilt, Nsecfilt);
     723      gfits_convert_SecFiltLoneos (tmpSecFilt, sizeof(SecFiltLoneos), Nsecfilt);
     724      nitems = fwrite (tmpSecFilt, sizeof(SecFiltLoneos), Nsecfilt, f);
     725      free (tmpSecFilt);
    599726      if (nitems != Nsecfilt) {
    600727        fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt);
    601728        return (FALSE);
    602729      }
    603       break;
    604     case DVO_FORMAT_PANSTARRS:
    605     case DVO_FORMAT_PMTEST:
    606       tmpSecFiltPanstarrs = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
    607       gfits_convert_SecFiltPanstarrs (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt);
    608       nitems = fwrite (tmpSecFiltPanstarrs, sizeof(SecFiltPanstarrs), Nsecfilt, f);
    609       free (tmpSecFiltPanstarrs);
     730      break; }
     731    case DVO_FORMAT_PANSTARRS_DEV_0: {
     732      SecFiltPanstarrs_DEV_0 *tmpSecFilt;
     733      tmpSecFilt = SecFiltInternalToPanstarrs_DEV_0 (secfilt, Nsecfilt);
     734      gfits_convert_SecFiltPanstarrs_DEV_0 (tmpSecFilt, sizeof(SecFiltPanstarrs_DEV_0), Nsecfilt);
     735      nitems = fwrite (tmpSecFilt, sizeof(SecFiltPanstarrs_DEV_0), Nsecfilt, f);
     736      free (tmpSecFilt);
    610737      if (nitems != Nsecfilt) {
    611738        fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt);
    612739        return (FALSE);
    613740      }
    614       break;
     741      break; }
     742# if 0
     743    case DVO_FORMAT_PANSTARRS: {
     744      SecFiltPanstarrs *tmpSecFilt;
     745      tmpSecFilt = SecFiltInternalToPanstarrs (secfilt, Nsecfilt);
     746      gfits_convert_SecFiltPanstarrs (tmpSecFilt, sizeof(SecFiltPanstarrs), Nsecfilt);
     747      nitems = fwrite (tmpSecFilt, sizeof(SecFiltPanstarrs), Nsecfilt, f);
     748      free (tmpSecFilt);
     749      if (nitems != Nsecfilt) {
     750        fprintf (stderr, "failed to write secfilts (%d vs %d)\n", nitems, Nsecfilt);
     751        return (FALSE);
     752      }
     753      break; }
     754# endif
    615755    default:
    616756      fprintf (stderr, "error writing secfilts\n");
Note: See TracChangeset for help on using the changeset viewer.