IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7236


Ignore:
Timestamp:
May 26, 2006, 4:09:47 PM (20 years ago)
Author:
Paul Price
Message:

Missed a curly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/fits/psFitsHeader.c

    r7235 r7236  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2006-05-27 02:09:18 $
     9 *  @version $Revision: 1.15 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2006-05-27 02:09:47 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    322322
    323323    return fitsWriteHeader(fits, output, true);
    324 
    325 
    326     bool psFitsWriteBlank(psFits* fits,
    327                           psMetadata* output
    328                          ) {
    329         if (!fits) {
    330             psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_NULL);
    331             return false;
    332         }
    333 
    334         if (!output) {
    335             psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_METADATA_NULL);
    336             return false;
    337         }
    338 
    339         // Create a dummy image HDU for the primary HDU
    340         int status = 0;                 // Status of cfitsio
    341         fits_create_img(fits->fd, 16, 0, NULL, &status);
    342         if (status) {
    343             char fitsErr[MAX_STRING_LENGTH];
    344             (void)fits_get_errstatus(status, fitsErr);
    345             psError(PS_ERR_IO, true, "Unable to create primary header.\n%s\n", fitsErr);
    346             return false;
    347         }
    348 
    349         return fitsWriteHeader(fits, output, false);
    350     }
    351 
    352     bool psFitsHeaderValidate(psMetadata *header) {
    353         if (header == NULL) {
    354             psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_METADATA_NULL);
    355             return false;
    356         }
    357 
    358         // Traverse the metadata list and inspect at each key
    359         psListIterator* iter = psListIteratorAlloc(header->list, PS_LIST_HEAD, true); // Iterator
    360         psMetadataItem* item;               // Item from iteration
    361         bool valid = true;                  // Are all items valid?
    362         while ((item = psListGetAndIncrement(iter))) {
    363             if (item->type > PS_DATA_STRING) { // i.e., a non-primitive type
    364                 valid = false;
    365             }
    366 
    367             if (strlen(item->name) > 8) {
    368                 item->name[8] = '\0'; // truncate to 8 characters
    369             }
    370 
    371             fits_uppercase(item->name); // make uppercase
    372 
    373             // now, let's see if CFITSIO thinks this is a good keyword...
    374             int status = 0;                 // Status from cfitsio calls
    375             if (fits_test_keyword(item->name,&status) != 0) {
    376                 valid = false;
    377             }
    378         }
    379         psFree(iter);
    380 
    381         return valid;
    382     }
     324}
     325
     326bool psFitsWriteBlank(psFits* fits,
     327                      psMetadata* output
     328                     )
     329{
     330    if (!fits) {
     331        psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_NULL);
     332        return false;
     333    }
     334
     335    if (!output) {
     336        psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_METADATA_NULL);
     337        return false;
     338    }
     339
     340    // Create a dummy image HDU for the primary HDU
     341    int status = 0;                 // Status of cfitsio
     342    fits_create_img(fits->fd, 16, 0, NULL, &status);
     343    if (status) {
     344        char fitsErr[MAX_STRING_LENGTH];
     345        (void)fits_get_errstatus(status, fitsErr);
     346        psError(PS_ERR_IO, true, "Unable to create primary header.\n%s\n", fitsErr);
     347        return false;
     348    }
     349
     350    return fitsWriteHeader(fits, output, false);
     351}
     352
     353bool psFitsHeaderValidate(psMetadata *header)
     354{
     355    if (header == NULL) {
     356        psError(PS_ERR_BAD_PARAMETER_NULL, true, PS_ERRORTEXT_psFits_METADATA_NULL);
     357        return false;
     358    }
     359
     360    // Traverse the metadata list and inspect at each key
     361    psListIterator* iter = psListIteratorAlloc(header->list, PS_LIST_HEAD, true); // Iterator
     362    psMetadataItem* item;               // Item from iteration
     363    bool valid = true;                  // Are all items valid?
     364    while ((item = psListGetAndIncrement(iter))) {
     365        if (item->type > PS_DATA_STRING) { // i.e., a non-primitive type
     366            valid = false;
     367        }
     368
     369        if (strlen(item->name) > 8) {
     370            item->name[8] = '\0'; // truncate to 8 characters
     371        }
     372
     373        fits_uppercase(item->name); // make uppercase
     374
     375        // now, let's see if CFITSIO thinks this is a good keyword...
     376        int status = 0;                 // Status from cfitsio calls
     377        if (fits_test_keyword(item->name,&status) != 0) {
     378            valid = false;
     379        }
     380    }
     381    psFree(iter);
     382
     383    return valid;
     384}
Note: See TracChangeset for help on using the changeset viewer.