/****************************************************************************** * L1b_file.h * * --------------------------- * * start : September 21th-2008 * * author : Lars Stenseng * * email : stenseng@space.dtu.dk * * last update : October 28th-2008 * ******************************************************************************/ #ifndef L1B_FILE_H__ #define L1B_FILE_H__ using namespace std; #include #include #include #include #include #include #include #include #include class AsirasData {public: AsirasData(); ~AsirasData(); int open(const QString &name); qint64 size() {return(privAsirasFile.size());}; int records() {return(privDataRecords);}; int echoes() {return(privDataRecords*20);}; int getL1bRecord(); int getL1bRecords(); QDate date(int measurement); double resolution(); QString opMode(); double lightSpeed() {return(299792458.0);}; int powerEchoSize(); double scaleFactor(int i){return(linearScaleFactorA.at(i)*1e-9*pow(2.0, powerScaleFactorB.at(i)));}; double measurementDerivedElevation(int echo, double measurement); double measurementDerivedElevation(int echo, int measurement); double minSeconds() {return(privMinSeconds);}; double maxSeconds() {return(privMaxSeconds);}; double minCBaselineLatitude() {return(privMinCBaselineLatitude);}; double maxCBaselineLatitude() {return(privMaxCBaselineLatitude);}; double minCBaselineLongitude() {return(privMinCBaselineLongitude);}; double maxCBaselineLongitude() {return(privMaxCBaselineLongitude);}; double minCBaselineAltitude() {return(privMinCBaselineAltitude);}; double maxCBaselineAltitude() {return(privMaxCBaselineAltitude);}; double minDerivedSurfaceElevation() {return(privMinDerivedSurfaceElevation);}; double maxDerivedSurfaceElevation() {return(privMaxDerivedSurfaceElevation);}; enum {HAM=1, LAM=2, LAMA=3, LAMA_W=4}; QHash mainProductHeader; QHash specificProductHeader; QHash dataSetDescriptor; QVector days; QVector seconds; QVector instrumentConfig; QVector burstCounter; QVector cBaselineLatitude; QVector cBaselineLongitude; QVector cBaselineAltitude; QVector altitudeRate; QVector xVelocityITRF; QVector yVelocityITRF; QVector zVelocityITRF; QVector xRealAntBeamDir; QVector yRealAntBeamDir; QVector zRealAntBeamDir; QVector xInterferometerBaseline; QVector yInterferometerBaseline; QVector zInterferometerBaseline; QVector measurementConfident; QVector windowDelay; QVector oCOGWidth; QVector retrackerRange; QVector derivedSurfaceElevation; QVector aGCChannel1; QVector aGCChannel2; QVector totalFixedGain1; QVector totalFixedGain2; QVector transmitPower; QVector dopplerRangeCorrection; QVector instrumentRangeCorrectionCh1; QVector instrumentRangeCorrectionCh2; QVector internalPhaseCorrection; QVector externalPhaseCorrection; QVector noisePower; QVector roll; QVector pitch; QVector yaw; QVector heading; QVector stdDevRoll; QVector stdDevPitch; QVector stdDevYaw; QVector< QVector > powerEcho; QVector linearScaleFactorA; QVector powerScaleFactorB; QVector numberOfMultilookedEchoes; QVector flags; QVector< QVector > beamBehaviourParameters; QVector< QVector > coherenceEcho; QVector< QVector > phaseDifferenceEcho; private: QFile privAsirasFile; QDataStream privAsirasDataStream; int privDataRecords; int privCurrentRecord; QDate privStartEpoch; int privOpMode; double privMinSeconds, privMaxSeconds; double privMinCBaselineLatitude, privMaxCBaselineLatitude; double privMinCBaselineLongitude, privMaxCBaselineLongitude; double privMinCBaselineAltitude, privMaxCBaselineAltitude; double privMinDerivedSurfaceElevation, privMaxDerivedSurfaceElevation; }; #endif