26 #include <QtCore/QFile>
27 #include <QtCore/QTextStream>
51 static const QString mntTypeNames[] =
61 QString str(fileName);
65 QFile f(dirName +
"/" + fileName);
66 if (!f.open(QIODevice::WriteOnly))
69 ": error opening output file: " + dirName +
"/" + fileName);
81 ts <<
"DATA IN NGS FORMAT FROM DATABASE " << str <<
"\r\n";
83 ts <<
"Observed delays and rates in card #2, modified errors in card #9\r\n";
92 str.sprintf(
"%-8s %14.5f %14.5f %14.5f %4s %9.5f",
109 int ra_hr, ra_min, de_deg, de_min;
110 double ra_sec, de_sec;
111 ra_sec = sri->
getRA();
112 de_sec = sri->
getDN();
119 ra_sec*= 43200.0/M_PI;
120 ra_hr = trunc(ra_sec/60.0/60.0);
121 ra_sec-= ra_hr*60.0*60.0;
122 ra_min = trunc(ra_sec/60.0);
123 ra_sec-= ra_min*60.0;
125 de_sec*= 648000.0/M_PI;
126 de_deg = trunc(de_sec/60.0/60.0);
127 de_sec-= de_deg*60.0*60.0;
128 de_min = trunc(de_sec/60.0);
129 de_sec-= de_min*60.0;
131 str.sprintf(
"%-8s %2d %2d %9.6f %c%2d %2d %9.6f",
132 qPrintable(sri->
getKey()),
133 ra_hr, ra_min, ra_sec,
135 de_deg, de_min, de_sec );
141 str.sprintf(
"%20.13E GR PH",
143 ts << str <<
"\r\n$END\r\n";
146 QString strQual, strIonoQual;
147 int yr, month, day, hr, min;
149 double effectiveGDSigma, effectivePRSigma, sigmaGD2add, sigmaPR2add;
168 effectiveGDSigma = sqrt(
171 sigmaGD2add*sigmaGD2add);
173 effectivePRSigma = sqrt(
182 str.sprintf(
"%-8s %-8s %-8s %04d %02d %02d %02d %02d %14.10f %8d01",
185 yr, month, day, hr, min, sec,
193 str.sprintf(
"%20.8f%10.5f%20.10f%10.5f%2s I %8d02",
205 str.sprintf(
"%10.5f .00000 .00000 .00000 %19.15f 0.%8d03",
215 str.sprintf(
" .00 .0 .00 .0 .00 .0 .00 .0 %8d04",
223 str.sprintf(
"%10.5f%10.5f .00000 .00000 .00000 .00000 %8d05",
236 str.sprintf(
"%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f 0 0 %8d06",
250 str.sprintf(
"%20.10f%10.5f%20.10f%10.5f %2s %8d08",
255 qPrintable(strIonoQual),
263 str.sprintf(
"%20.8f%10.5f%20.10f%10.5f%2s I %8d09",
265 effectiveGDSigma*1.0e9,
267 effectivePRSigma*1.0e12,
280 "::exportDataIntoNgsFile(): data have been exported into the NGS cards format file \"" + fileName +
281 "\", elapsed time: " + QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400000.0) +
" ms");
QMap< QString, SgVlbiSourceInfo * >::iterator SourcesByName_it
QMap< QString, SgVlbiStationInfo * >::iterator StationsByName_it
double at(DIRECTION i) const
bool isAttr(uint a) const
virtual void write(LogLevel, quint32, const QString &, bool=false)
static SgMJD currentMJD()
static void MJD_reverse(int date, double time, int &nYear, int &nMonth, int &nDay, int &nHour, int &nMin, double &dSec)
double getPressure() const
double getTemperature() const
double getRelativeHumidity() const
double getSigma2add(DataType) const
const QString & getKey() const
@ Attr_NOT_VALID
omit the observation;
double getCableCalibration() const
const SgMeteoData & getMeteoData() const
int getInputFileVersion() const
double getFrequency() const
short int getUnweightFlag() const
double getIonoValue() const
double getIonoSigma() const
SgVlbiStationInfo *& stn_2()
SgVlbiStationInfo *& stn_1()
SgVlbiMeasurement & phDRate()
SgVlbiSourceInfo *& src()
double getTotalPhase() const
double getCorrCoeff() const
SgVlbiMeasurement & grDelay()
@ Attr_NOT_MATCHED
there is no match at another band(s)
SgVlbiAuxObservation * auxObs_2()
SgVlbiBaselineInfo * baseline()
SgVlbiObservable * primeObs()
SgVlbiAuxObservation * auxObs_1()
const QString & getName() const
StationsByName stationsByName_
bool exportDataIntoNgsFile(const QString &fileName)
QList< SgVlbiObservation * > observations_
SgVlbiBand * primaryBand_
static QString className()
SourcesByName sourcesByName_
double getAxisOffset() const
const Sg3dVector & getR()
MountingType getMntType() const