IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 5, 2009, 11:24:29 AM (17 years ago)
Author:
beaumont
Message:

sync with mainline

Location:
branches/cnb_branches/cnb_branch_20090215
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/cnb_branches/cnb_branch_20090215

  • branches/cnb_branches/cnb_branch_20090215/psastro/src/Makefile.am

    r21422 r23199  
     1lib_LTLIBRARIES = libpsastro.la
    12
    2 lib_LTLIBRARIES = libpsastro.la
    3 libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS)
    4 libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
     3PSASTRO_VERSION=`if [ -e ../../VERSION ]; then cat ../../VERSION; else svnversion; fi`
     4PSASTRO_BRANCH=`if [ -e ../../BRANCH ]; then cat ../../BRANCH; else svn info | sed -n -e '/URL:/ h' -e '/Repository Root:/ { x; H; x; s|Repository Root: \(.*\)\nURL: \1\(.*\)|\2| ; s|^/|| ; s|/[a-zA-Z]*/src.*|| ; p }'; fi`
     5PSASTRO_SOURCE=`if [ -e ../../SOURCE ]; then cat ../../SOURCE; else svn info | sed -n -e 's/Repository UUID: // p'; fi`
     6
     7# Force recompilation of psastroVersion.c, since it gets the version information
     8psastroVersion.c: FORCE
     9        touch psastroVersion.c
     10FORCE: ;
     11
     12libpsastro_la_CFLAGS = $(PSASTRO_CFLAGS) $(PPSTATS_CFLAGS) $(PSMODULE_CFLAGS) $(PSLIB_CFLAGS) -DPSASTRO_VERSION=\"$(PSASTRO_VERSION)\" -DPSASTRO_BRANCH=\"$(PSASTRO_BRANCH)\" -DPSASTRO_SOURCE=\"$(PSASTRO_SOURCE)\"
     13libpsastro_la_LDFLAGS = $(PSASTRO_LIBS) $(PPSTATS_LIBS) $(PSMODULE_LIBS) $(PSLIB_LIBS)
    514
    615bin_PROGRAMS = psastro psastroModel psastroModelFit gpcModel
  • branches/cnb_branches/cnb_branch_20090215/psastro/src/psastro.c

    r21409 r23199  
    3434    if (!config) usage ();
    3535
     36    psastroVersionPrint();
     37
    3638    // load identify the data sources
    3739    if (!psastroParseCamera (config)) {
    38         psErrorStackPrint(stderr, "error setting up the camera\n");
    39         exit (1);
     40        psErrorStackPrint(stderr, "error setting up the camera\n");
     41        exit (1);
    4042    }
    4143
     
    4345    // select subset of stars for astrometry
    4446    if (!psastroDataLoad (config)) {
    45         psErrorStackPrint(stderr, "error loading input data\n");
    46         exit (1);
     47        psErrorStackPrint(stderr, "error loading input data\n");
     48        exit (1);
    4749    }
    4850
    4951    // run the full astrometry analysis (chip and/or mosaic)
    5052    if (!psastroAnalysis (config)) {
    51         psErrorStackPrint(stderr, "failure in psastro analysis\n");
    52         exit (1);
     53        psErrorStackPrint(stderr, "failure in psastro analysis\n");
     54        exit (1);
    5355    }
    54    
     56
    5557    // write out the results
    5658    if (!psastroDataSave (config)) {
    57         psErrorStackPrint(stderr, "failed to write out data\n");
    58         exit (1);
     59        psErrorStackPrint(stderr, "failed to write out data\n");
     60        exit (1);
    5961    }
    6062
  • branches/cnb_branches/cnb_branch_20090215/psastro/src/psastro.h

    r21422 r23199  
    9595// Return version strings.
    9696psString          psastroVersion(void);
     97psString          psastroSource(void);
    9798psString          psastroVersionLong(void);
     99bool              psastroVersionHeader(psMetadata *header);
     100bool              psastroVersionHeaderFull(psMetadata *header);
     101void              psastroVersionPrint(void);
    98102
    99103// demo plots
  • branches/cnb_branches/cnb_branch_20090215/psastro/src/psastroDataSave.c

    r21409 r23199  
    1818  return false; \
    1919}
    20  
     20
    2121/**
    2222 * this loop saves the photometry/astrometry data files
     
    3131    psMetadata *recipe  = psMetadataLookupPtr (NULL, config->recipes, PSASTRO_RECIPE);
    3232    if (!recipe) {
    33         psError(PSASTRO_ERR_CONFIG, true, "Can't find PSASTRO recipe!\n");
    34         return false;
     33        psError(PSASTRO_ERR_CONFIG, true, "Can't find PSASTRO recipe!\n");
     34        return false;
    3535    }
    3636
     
    3838    pmFPAfile *output = psMetadataLookupPtr (NULL, config->files, "PSASTRO.OUTPUT");
    3939    if (!output) {
    40         psError(PSASTRO_ERR_CONFIG, true, "Can't find or interpret output file rule PSASTRO.OUTPUT!\n");
    41         return false;
     40        psError(PSASTRO_ERR_CONFIG, true, "Can't find or interpret output file rule PSASTRO.OUTPUT!\n");
     41        return false;
    4242    }
    4343
     
    4848
    4949    pmFPAview *view = pmFPAviewAlloc (0);
     50    pmHDU *lastHDU = NULL;              // Last HDU updated
    5051
    5152    // open/load files as needed
     
    5556        psTrace ("psastro", 4, "Chip %d: %x %x\n", view->chip, chip->file_exists, chip->process);
    5657        if (!chip->process || !chip->file_exists) { continue; }
    57         if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
     58        if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
    5859
    59         while ((cell = pmFPAviewNextCell (view, output->fpa, 1)) != NULL) {
     60        while ((cell = pmFPAviewNextCell (view, output->fpa, 1)) != NULL) {
    6061            psTrace ("psastro", 4, "Cell %d: %x %x\n", view->cell, cell->file_exists, cell->process);
    6162            if (!cell->process || !cell->file_exists) { continue; }
    62             if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
     63            if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
    6364
    64             // process each of the readouts
    65             while ((readout = pmFPAviewNextReadout (view, output->fpa, 1)) != NULL) {
    66                 if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
    67                 if (!readout->data_exists) { continue; }
     65            // process each of the readouts
     66            while ((readout = pmFPAviewNextReadout (view, output->fpa, 1)) != NULL) {
     67                if (!pmFPAfileIOChecks (config, view, PM_FPA_BEFORE)) ESCAPE;
     68                if (!readout->data_exists) { continue; }
    6869
    69                 if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
    70             }
    71             if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
    72         }
    73         if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
     70                // Put version information into the header
     71                pmHDU *hdu = pmHDUGetHighest(output->fpa, chip, cell);
     72                if (hdu && hdu != lastHDU) {
     73                    psastroVersionHeaderFull(hdu->header);
     74                    lastHDU = hdu;
     75                }
     76
     77                if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
     78            }
     79            if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
     80        }
     81        if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
    7482    }
    7583    if (!pmFPAfileIOChecks (config, view, PM_FPA_AFTER)) ESCAPE;
  • branches/cnb_branches/cnb_branch_20090215/psastro/src/psastroVersion.c

    r21409 r23199  
    55 *  @ingroup libpsastro
    66 *
    7  *  @author IfA
    8  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2009-02-07 02:03:34 $
    107 *  Copyright 2009 Institute for Astronomy, University of Hawaii
    118 */
     
    1310#include "psastroInternal.h"
    1411
    15 static const char *cvsTag = "$Name: not supported by cvs2svn $";///< CVS tag name
    16 
    1712psString psastroVersion(void)
    1813{
    19     psString version = NULL;            // Version, to return
    20     psStringAppend(&version, "%s-%s",PACKAGE_NAME,PACKAGE_VERSION);
    21     return version;
     14#ifndef PSASTRO_VERSION
     15#error "PSASTRO_VERSION is not set"
     16#endif
     17#ifndef PSASTRO_BRANCH
     18#error "PSASTRO_BRANCH is not set"
     19#endif
     20    return psStringCopy(PSASTRO_BRANCH "@" PSASTRO_VERSION);
     21}
     22
     23psString psastroSource(void)
     24{
     25#ifndef PSASTRO_SOURCE
     26#error "PSASTRO_SOURCE is not set"
     27#endif
     28    return psStringCopy(PSASTRO_SOURCE);
    2229}
    2330
    2431psString psastroVersionLong(void)
    2532{
    26     psString version = psastroVersion(); // Version, to return
    27     psString tag = psStringStripCVS(cvsTag, "Name"); // CVS tag
    28     psStringAppend(&version, " (cvs tag %s) %s, %s", tag, __DATE__, __TIME__);
    29     psFree(tag);
     33    psString version = psastroVersion();  // Version, to return
     34    psString source = psastroSource();    // Source
     35
     36    psStringPrepend(&version, "psastro ");
     37    psStringAppend(&version, " from %s, built %s, %s", source, __DATE__, __TIME__);
     38    psFree(source);
     39
     40#ifdef __OPTIMIZE__
     41    psStringAppend(&version, " optimised");
     42#else
     43    psStringAppend(&version, " unoptimised");
     44#endif
     45
    3046    return version;
     47};
     48
     49bool psastroVersionHeader(psMetadata *header)
     50{
     51    PS_ASSERT_METADATA_NON_NULL(header, false);
     52
     53    psString version = psastroVersion(); // Software version
     54    psString source = psastroSource();   // Software source
     55
     56    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PSASTRO.VERSION", PS_META_REPLACE,
     57                     "Software version", version);
     58    psMetadataAddStr(header, PS_LIST_TAIL, "IPP.PSASTRO.SOURCE", PS_META_REPLACE,
     59                     "S/W source", source);
     60
     61    psFree(version);
     62    psFree(source);
     63
     64    return true;
    3165}
    3266
     67bool psastroVersionHeaderFull(psMetadata *header)
     68{
     69    PS_ASSERT_METADATA_NON_NULL(header, false);
     70
     71    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     72    psString timeString = psTimeToISO(time); // The time in an ISO string
     73    psFree(time);
     74    psString history = NULL;               // History string
     75    psStringAppend(&history, "psastro at %s", timeString);
     76    psFree(timeString);
     77    psMetadataAddStr(header, PS_LIST_TAIL, "HISTORY", PS_META_DUPLICATE_OK, NULL, history);
     78    psFree(history);
     79
     80    psLibVersionHeader(header);
     81    psModulesVersionHeader(header);
     82    ppStatsVersionHeader(header);
     83    psastroVersionHeader(header);
     84
     85    return true;
     86}
     87
     88void psastroVersionPrint(void)
     89{
     90    psTime *time = psTimeGetNow(PS_TIME_TAI); // The time now
     91    psString timeString = psTimeToISO(time); // The time in an ISO string
     92    psFree(time);
     93    psLogMsg("psastro", PS_LOG_INFO, "psastro at %s", timeString);
     94    psFree(timeString);
     95
     96    psString pslib = psLibVersionLong();// psLib version
     97    psString psmodules = psModulesVersionLong(); // psModules version
     98    psString ppStats = ppStatsVersionLong(); // ppStats version
     99    psString psastro = psastroVersionLong(); // psastro version
     100
     101    psLogMsg("psastro", PS_LOG_INFO, "%s", pslib);
     102    psLogMsg("psastro", PS_LOG_INFO, "%s", psmodules);
     103    psLogMsg("psastro", PS_LOG_INFO, "%s", ppStats);
     104    psLogMsg("psastro", PS_LOG_INFO, "%s", psastro);
     105
     106    psFree(pslib);
     107    psFree(psmodules);
     108    psFree(ppStats);
     109    psFree(psastro);
     110
     111    return;
     112}
Note: See TracChangeset for help on using the changeset viewer.