IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 25, 2004, 2:37:44 PM (22 years ago)
Author:
harman
Message:

Added psTimeInit function

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psTime.c

    r2181 r2196  
    1111 *  @author Ross Harman, MHPCC
    1212 *
    13  *  @version $Revision: 1.36 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2004-10-20 21:21:58 $
     13 *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2004-10-26 00:37:44 $
    1515 *
    1616 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2929#include "psCoord.h"
    3030#include "psString.h"
     31#include "psMetadata.h"
     32#include "psMetadataIO.h"
    3133
    3234#include "psAstronomyErrors.h"
     
    4244#endif
    4345
     46
    4447/** Sidereal angular conversion from seconds to radians for GMST in seconds (i.e. pi/(180*240)) */
    4548#define S2R (7.272205216643039903848711535369e-5)
     
    7275                #define LINESIZE 1024
    7376
    74                 /** Read TAI/UTC data file.
    75                  *
    76                  *  Reads TAI/UTC data file.
    77                  *
    78                  *  @return  psImage*: Two-dimensional array with table data.
    79                  */
    80                 static psImage* readTaiUtcFile(
    81                     const char *fileName                      ///< Name of file to read.
    82                 );
     77
     78                /** Time metadata read from config file */
     79                static psMetadata *timeMetadata = NULL;
     80
     81
     82/** Read TAI/UTC data file.
     83 *
     84 *  Reads TAI/UTC data file.
     85 *
     86 *  @return  psImage*: Two-dimensional array with table data.
     87 */
     88static psImage* readTaiUtcFile(
     89    const char *fileName                      ///< Name of file to read.
     90);
    8391
    8492
     
    125133 */
    126134static double lookupTaiUtcTable(
    127     const psTime *time                        ///< time to lookup.
     135    const psTime *time                  ///< time to lookup.
    128136);
    129137
     
    135143 */
    136144static double lookupSer7Table(
    137     const psTime *time,                        ///< time to lookup.
    138     int col                              ///< Column to lookup.
     145    const psTime *time,                 ///< time to lookup.
     146    int col                             ///< Column to lookup.
    139147);
    140148
     
    457465        denom = table->data.F64[hiIdx][3] - table->data.F64[loIdx][3];
    458466        if(fabs(denom) < FLT_EPSILON) {
    459             psError(__func__, " : Line %d - Dividie by zero error during interpolation", __LINE__);
     467            psError(__func__, " : Line %d - Divide by zero error during interpolation", __LINE__);
    460468        } else {
    461469            out = table->data.F64[loIdx][col]+(table->data.F64[hiIdx][col]-table->data.F64[loIdx][col])
     
    465473
    466474    return out;
     475}
     476
     477void psTimeInit(char *fileName)
     478{
     479    char *tableDir = NULL;
     480    char *tableNames = NULL;
     481    psU8 numTables = 0;
     482    psVector *tablesFrom = NULL;
     483    psVector *tablesTo = NULL;
     484    psF64 beforeXp = 0.0;
     485    psF64 beforeYp = 0.0;
     486    psF64 beforeDut = 0.0;
     487    psMetadataItem *metadataItem = NULL;
     488
     489
     490    // Read time config file
     491    psMetadataParseConfig(&timeMetadata, fileName, true);
     492
     493    // Get path to time data files
     494    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");
     495    tableDir = (char*)metadataItem->data.V;
     496
     497    // Get number of tables
     498    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
     499    numTables = (psU8)metadataItem->data.S32;
     500
     501    // Get table names
     502    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");
     503    tableNames = (char*)metadataItem->data.V;
     504
     505    // Get ranges of tables
     506    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
     507    tablesFrom = (psVector*)metadataItem->data.V;
     508    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.to");
     509    tablesTo = (psVector*)metadataItem->data.V;
     510
     511    // Out of range values
     512    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.before.xp");
     513    beforeXp =(psF64)metadataItem->data.F64;
     514    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.before.yp");
     515    beforeYp =(psF64)metadataItem->data.F64;
     516    metadataItem = psMetadataLookup(timeMetadata, "psLib.time.before.dut");
     517    beforeDut = (psF64)metadataItem->data.F64;
    467518}
    468519
Note: See TracChangeset for help on using the changeset viewer.