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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
/***********************************************/
/**
* @file observationMisc.cpp
*
* @brief Right hand sides and calibration parameter.
*
* @author Torsten Mayer-Guerr
* @date 2008-07-28
*
*/
/***********************************************/
#define DOCSTRING_PodRightSide
#define DOCSTRING_SstRightSide
#define DOCSTRING_SggRightSide
#include "base/import.h"
#include "config/configRegister.h"
#include "files/fileInstrument.h"
#include "classes/tides/tides.h"
#include "classes/gravityfield/gravityfield.h"
#include "classes/miscAccelerations/miscAccelerations.h"
#include "observationMisc.h"
/***********************************************/
GROOPS_REGISTER_CLASS_WITHOUT_SUBS(PodRightSide, "podRightSideType")
GROOPS_READCONFIG_CLASS(PodRightSide, "podRightSideType")
PodRightSide::PodRightSide(Config &config, const std::string &name)
{
try
{
FileName orbitName, accName;
readConfigSequence(config, name, Config::MUSTSET, "", "");
readConfig(config, "inputfileOrbit", orbitName, Config::MUSTSET, "", "kinematic positions of satellite as observations");
readConfig(config, "inputfileAccelerometer", accName, Config::OPTIONAL, "", "non-gravitational forces in satellite reference frame");
readConfig(config, "forces", forces, Config::MUSTSET, "", "");
endSequence(config);
if(isCreateSchema(config)) return;
orbitFile = InstrumentFile::newFile(orbitName);
accelerometerFile = InstrumentFile::newFile(accName);
}
catch(std::exception &e)
{
GROOPS_RETHROW(e)
}
}
/***********************************************/
/***********************************************/
GROOPS_REGISTER_CLASS_WITHOUT_SUBS(SstRightSide, "sstRightSideType")
GROOPS_READCONFIG_CLASS(SstRightSide, "sstRightSideType")
SstRightSide::SstRightSide(Config &config, const std::string &name)
{
try
{
std::vector<FileName> sstName;
FileName orbit1Name, acc1Name;
FileName orbit2Name, acc2Name;
readConfigSequence(config, name, Config::MUSTSET, "", "");
readConfig(config, "inputfileSatelliteTracking", sstName, Config::OPTIONAL, "", "ranging observations and corrections");
readConfig(config, "inputfileOrbit1", orbit1Name, Config::OPTIONAL, "", "kinematic positions of satellite A as observations");
readConfig(config, "inputfileOrbit2", orbit2Name, Config::OPTIONAL, "", "kinematic positions of satellite B as observations");
readConfig(config, "inputfileAccelerometer1", acc1Name, Config::OPTIONAL, "", "non-gravitational forces in satellite reference frame A");
readConfig(config, "inputfileAccelerometer2", acc2Name, Config::OPTIONAL, "", "non-gravitational forces in satellite reference frame B");
readConfig(config, "forces", forces, Config::MUSTSET, "", "");
endSequence(config);
if(isCreateSchema(config)) return;
sstFile.resize(sstName.size());
for(UInt i=0; i<sstName.size(); i++)
sstFile.at(i) = InstrumentFile::newFile(sstName.at(i));
orbit1File = InstrumentFile::newFile(orbit1Name);
orbit2File = InstrumentFile::newFile(orbit2Name);
accelerometer1File = InstrumentFile::newFile(acc1Name);
accelerometer2File = InstrumentFile::newFile(acc2Name);
}
catch(std::exception &e)
{
GROOPS_RETHROW(e)
}
}
/***********************************************/
/***********************************************/
GROOPS_REGISTER_CLASS_WITHOUT_SUBS(SggRightSide, "sggRightSideType")
GROOPS_READCONFIG_CLASS(SggRightSide, "sggRightSideType")
SggRightSide::SggRightSide(Config &config, const std::string &name)
{
try
{
FileName fileNameGradiometer;
std::vector<FileName> fileNameReference;
readConfigSequence(config, name, Config::MUSTSET, "", "");
readConfig(config, "inputfileGradiometer", fileNameGradiometer, Config::MUSTSET, "", "observed gravity gradients");
readConfig(config, "inputfileReferenceGradiometer", fileNameReference, Config::OPTIONAL, "", "precomputed gradients at orbit positions");
readConfig(config, "referencefield", referencefield, Config::DEFAULT, "", "");
readConfig(config, "tides", tides, Config::DEFAULT, "", "");
endSequence(config);
if(isCreateSchema(config)) return;
gradiometerFile = InstrumentFile::newFile(fileNameGradiometer);
referenceFile.resize(fileNameReference.size());
for(UInt i=0; i<fileNameReference.size(); i++)
referenceFile.at(i) = InstrumentFile::newFile(fileNameReference.at(i));
}
catch(std::exception &e)
{
GROOPS_RETHROW(e)
}
}
/***********************************************/
/***********************************************/
|