1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
/***********************************************/
/**
* @file fileEarthOrientationParameter.cpp
*
* @brief Read/write EarthOrientationParameter.
*
* @author Torsten Mayer-Guerr
* @date 2017-12-09
*
*/
/***********************************************/
#define DOCSTRING_FILEFORMAT_EarthOrientationParameter
#include "base/import.h"
#include "inputOutput/fileArchive.h"
#include "files/fileFormatRegister.h"
#include "files/fileEarthOrientationParameter.h"
GROOPS_REGISTER_FILEFORMAT(EarthOrientationParameter, FILE_EARTHORIENTATIONPARAMETER_TYPE)
/***********************************************/
void writeFileEarthOrientationParameter(const FileName &fileName, const const_MatrixSlice &EOP)
{
try
{
OutFileArchive file(fileName, FILE_EARTHORIENTATIONPARAMETER_TYPE, FILE_EARTHORIENTATIONPARAMETER_VERSION);
file<<nameValue("count", EOP.rows());
file.comment("UTC [MJD] xp [arcsec] yp [arcsec] deltUT [sec] LOD [sec] dX [arcsec] dY [arcsec] ");
file.comment("====================================================================================================================================================================================");
for(UInt i=0; i<EOP.rows(); i++)
{
file<<beginGroup("eop");
file<<nameValue("mjd", EOP(i,0));
file<<nameValue("xp", EOP(i,1));
file<<nameValue("yp", EOP(i,2));
file<<nameValue("deltaUT", EOP(i,3));
file<<nameValue("lod", EOP(i,4));
file<<nameValue("dX", EOP(i,5));
file<<nameValue("dY", EOP(i,6));
file<<endGroup("eop");
}
}
catch(std::exception &e)
{
GROOPS_RETHROW(e)
}
}
/***********************************************/
void readFileEarthOrientationParameter(const FileName &fileName, Matrix &EOP)
{
try
{
InFileArchive file(fileName, FILE_EARTHORIENTATIONPARAMETER_TYPE, FILE_EARTHORIENTATIONPARAMETER_VERSION);
UInt count;
file>>nameValue("count", count);
EOP = Matrix(count, 7);
for(UInt i=0; i<count; i++)
{
file>>beginGroup("eop");
file>>nameValue("mjd", EOP(i,0));
file>>nameValue("xp", EOP(i,1));
file>>nameValue("yp", EOP(i,2));
file>>nameValue("deltaUT", EOP(i,3));
file>>nameValue("lod", EOP(i,4));
file>>nameValue("dX", EOP(i,5));
file>>nameValue("dY", EOP(i,6));
file>>endGroup("eop");
}
}
catch(std::exception &e)
{
GROOPS_RETHROW(e)
}
}
/***********************************************/
|