IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 12457


Ignore:
Timestamp:
Mar 15, 2007, 2:32:46 PM (19 years ago)
Author:
magnier
Message:

changed to use EXTNAME.RULES, not pmFPAfile elements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/objects/pmSourceIO.c

    r12447 r12457  
    33 *  @author EAM, IfA
    44 *
    5  *  @version $Revision: 1.24 $ $Name: not supported by cvs2svn $
    6  *  @date $Date: 2007-03-15 20:45:27 $
     5 *  @version $Revision: 1.25 $ $Name: not supported by cvs2svn $
     6 *  @date $Date: 2007-03-16 00:32:46 $
    77 *
    88 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    281281        }
    282282
    283         // EXTNAME values used to for table data and image header segments
    284         dataname = pmFPAfileNameFromRule (file->extrule, file, view);
    285         headname = pmFPAfileNameFromRule (file->extxtra, file, view);
     283        // lookup the EXTNAME values used for table data and image header segments
     284        char *rule = NULL;
     285        // Menu of EXTNAME rules
     286        psMetadata *menu = psMetadataLookupMetadata(&status, file->camera, "EXTNAME.RULES");
     287        if (!menu) {
     288            psError(PS_ERR_UNKNOWN, true, "missing EXTNAME.RULES in camera.config");
     289            return false;
     290        }
     291        // EXTNAME for image header
     292        rule = psMetadataLookupStr(&status, menu, "CMF.HEAD");
     293        if (!rule) {
     294            psError(PS_ERR_UNKNOWN, true, "missing entry for CMF.HEAD in EXTNAME.RULES in camera.config");
     295            return false;
     296        }
     297        headname = pmFPAfileNameFromRule (rule, file, view);
     298        // EXTNAME for table data
     299        rule = psMetadataLookupStr(&status, menu, "CMF.DATA");
     300        if (!rule) {
     301            psError(PS_ERR_UNKNOWN, true, "missing entry for CMF.DATA in EXTNAME.RULES in camera.config");
     302            return false;
     303        }
     304        dataname = pmFPAfileNameFromRule (rule, file, view);
    286305
    287306        // this header block is new, write it to disk
     
    481500        if (!strcasecmp (file->filename, "@FILES")) {
    482501            psFree (file->filename);
    483             char *extra = pmFPAfileNameFromRule (file->filextra, file, view);
    484             file->filename = psMetadataLookupStr (&status, file->names, extra);
    485             psFree (extra);
    486             if (file->filename == NULL)
    487                 return false;
     502            char *filesrc = pmFPAfileNameFromRule (file->filesrc, file, view);
     503            file->filename = psMetadataLookupStr (&status, file->names, filesrc);
     504            psFree (filesrc);
     505            if (file->filename == NULL) return false;
    488506            // psMetadataLookupStr just returns a view, file->filename must be protected
    489507            psMemIncrRefCounter (file->filename);
     
    508526        // read in header, if not yet loaded
    509527        hdu = pmFPAviewThisHDU (view, file->fpa);
     528
     529        // lookup the EXTNAME values used for table data and image header segments
     530        char *rule = NULL;
     531        // Menu of EXTNAME rules
     532        psMetadata *menu = psMetadataLookupMetadata(&status, file->camera, "EXTNAME.RULES");
     533        if (!menu) {
     534            psError(PS_ERR_UNKNOWN, true, "missing EXTNAME.RULES in camera.config");
     535            return false;
     536        }
     537        // EXTNAME for image header
     538        rule = psMetadataLookupStr(&status, menu, "CMF.HEAD");
     539        if (!rule) {
     540            psError(PS_ERR_UNKNOWN, true, "missing entry for CMF.HEAD in EXTNAME.RULES in camera.config");
     541            return false;
     542        }
     543        char *headname = pmFPAfileNameFromRule (rule, file, view);
     544        // EXTNAME for table data
     545        rule = psMetadataLookupStr(&status, menu, "CMF.DATA");
     546        if (!rule) {
     547            psError(PS_ERR_UNKNOWN, true, "missing entry for CMF.DATA in EXTNAME.RULES in camera.config");
     548            return false;
     549        }
     550        char *dataname = pmFPAfileNameFromRule (rule, file, view);
     551
     552        // advance to the IMAGE HEADER extension
    510553        if (hdu->header == NULL) {
    511             char *headname = pmFPAfileNameFromRule (file->extxtra, file, view);
    512554            psFitsMoveExtName (file->fits, headname);
    513555            hdu->header = psFitsReadHeader (NULL, file->fits);
    514             psFree (headname);
    515556        }
    516557
    517558        // we need to find the corresponding table EXTNAME.
    518559        // first check the header
    519         char *dataname = psMetadataLookupStr (NULL, hdu->header, "EXTDATA");
    520         psMemIncrRefCounter (dataname); // so free below is safe
    521         if (!dataname) {
    522             // if it is not defined in the header, try the value in the filerule
    523             dataname = pmFPAfileNameFromRule (file->extrule, file, view);
    524             if (!dataname)
    525                 psAbort("cannot determine data EXTNAME");
    526         }
     560        char *extdata = psMetadataLookupStr (NULL, hdu->header, "EXTDATA");
     561        if (extdata) {
     562            // if EXTDATA is defined in the header, use that value for 'dataname'
     563            psFree (dataname);
     564            dataname = psMemIncrRefCounter (extdata);
     565        }
     566       
     567        // advance to the table data extension
    527568        if (!psFitsMoveExtName (file->fits, dataname)) {
    528569            psAbort("cannot find data extension %s in %s", dataname, file->filename);
     
    543584        }
    544585
     586        psFree (headname);
    545587        psFree (dataname);
    546588        break;
Note: See TracChangeset for help on using the changeset viewer.