54 "::storeStationEpochs(): unknown station " + stnName);
66 "::storeStationEpochs(): size mismatch: " +
67 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, epochs.size()));
78 "::storeStationEpochs(): format description failed");
87 int nYear, nMonth, nDay, nHour, nMin;
93 epochs.at(i).toYMDHMS_tr(nYear, nMonth, nDay, nHour, nMin, dSec);
114 "::storeStationEpochs(): cannot put data into " + ncdf.
getFileName());
119 "::storeStationEpochs(): the data were successfully stored in " + ncdf.
getFileName());
127 const QString& origin,
const QString& kind)
132 "::storeStationCalCable(): unknown station " + stnName);
148 "::storeStationCalCable(): cable cal size mismatch: " +
149 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, cal->
nRow()));
156 "::storeStationCalCable(): format description failed for " + stnName);
169 "::storeStationCalCable(): cannot put data into " + ncdf.
getFileName());
174 "::storeStationCalCable(): the data were successfully stored in " + ncdf.
getFileName());
182 const QString& origin )
187 "::storeStationCalCblCorrections(): unknown station " + stnName);
203 "::storeStationCalCblCorrections(): cable cal size mismatch: " +
204 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, cal->
nRow()));
211 "::storeStationCalCblCorrections(): format description failed for " + stnName);
230 "::storeStationCalCblCorrections(): cannot put data into " + ncdf.
getFileName());
235 "::storeStationCalCblCorrections(): the data were successfully stored in " + ncdf.
getFileName());
244 const QString& origin,
const QString& kind)
249 "::storeStationMet(): unknown station " + stnName);
265 "::storeStationMet(): atm.pressure size mismatch: " +
266 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, metAtmPres->
n()));
272 "::storeStationMet(): atm.rel.humidity size mismatch: " +
273 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, metAtmRH->
n()));
279 "::storeStationMet(): atm.temperature size mismatch: " +
280 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, metAtmTemp->
n()));
287 "::storeStationMet(): format description failed for " + stnName);
306 "::storeStationMet(): cannot put data into " + ncdf.
getFileName());
311 "::storeStationMet(): the data were successfully stored in " + ncdf.
getFileName());
323 "::storeStationAzEl(): unknown station " + stnName);
338 "::storeStationAzEl(): azimuth size mismatch: " +
339 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, azTheo->
nRow()));
345 "::storeStationAzEl(): elevation size mismatch: " +
346 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, elTheo->
nRow()));
353 "::storeStationAzEl(): format description failed");
357 "StationScan",
"TimeUTC.nc");
373 "::storeStationAzEl(): cannot put data into " + ncdf.
getFileName());
378 "::storeStationAzEl(): the data were successfully stored in " + ncdf.
getFileName());
390 "::storeStationPartAxisOffset(): unknown station " + stnName);
405 "::storeStationPartAxisOffset(): the size mismatch: " +
406 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, partAxisOffset->
nRow()));
413 "::storeStationPartAxisOffset(): format description failed");
417 "StationScan",
"TimeUTC.nc");
423 p[2*i + 1] = partAxisOffset->
getElement(i, 1);
430 "::storeStationPartAxisOffset(): cannot put data into " + ncdf.
getFileName());
435 "::storeStationPartAxisOffset(): the data were successfully stored in " + ncdf.
getFileName());
447 "::storeStationParAngle(): unknown station [" + stnName +
"]");
462 "::storeStationParAngle(): the size mismatch: " +
463 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, parAngle->
n()));
470 "::storeStationParAngle(): format description failed");
474 "StationScan",
"TimeUTC.nc");
484 "::storeStationParAngle(): cannot put data into " + ncdf.
getFileName());
489 "::storeStationParAngle(): the data were successfully stored in " + ncdf.
getFileName());
501 "::storeStationCalAxisOffset(): unknown station " + stnName);
516 "::storeStationCalAxisOffset(): the size mismatch: " +
517 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, cal->
nRow()));
524 "::storeStationCalAxisOffset(): format description failed");
528 "StationScan",
"TimeUTC.nc");
541 "::storeStationCalAxisOffset(): cannot put data into " + ncdf.
getFileName());
546 "::storeStationCalAxisOffset(): the data were successfully stored in " + ncdf.
getFileName());
559 "::storeStationCalSlantPathTropDry(): unknown station " + stnName);
575 "::storeStationCalSlantPathTropDry(): the size mismatch: " +
576 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, cal->
nRow()));
583 "::storeStationCalSlantPathTropDry(): format description failed");
587 "StationScan",
"TimeUTC.nc");
600 "::storeStationCalSlantPathTropDry(): cannot put data into " + ncdf.
getFileName());
605 "::storeStationCalSlantPathTropDry(): the data were successfully stored in " + ncdf.
getFileName());
618 "::storeStationCalSlantPathTropWet(): unknown station " + stnName);
634 "::storeStationCalSlantPathTropWet(): the size mismatch: " +
635 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, cal->
nRow()));
642 "::storeStationCalSlantPathTropWet(): format description failed");
646 "StationScan",
"TimeUTC.nc");
659 "::storeStationCalSlantPathTropWet(): cannot put data into " + ncdf.
getFileName());
664 "::storeStationCalSlantPathTropWet(): the data were successfully stored in " + ncdf.
getFileName());
677 "::storeStationCalOceanLoad(): unknown station " + stnName);
692 "::storeStationCalOceanLoad(): the matrix HorzOLoad size mismatch: " +
693 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, calHorzOLoad->
nRow()));
700 "::storeStationCalOceanLoad(): the matrix VertOLoad size mismatch: " +
701 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, calVertOLoad->
nRow()));
708 "::storeStationCalOceanLoad(): format description failed");
712 "StationScan",
"TimeUTC.nc");
728 "::storeStationCalOceanLoad(): cannot put data into " + ncdf.
getFileName());
733 "::storeStationCalOceanLoad(): the data were successfully stored in " + ncdf.
getFileName());
745 "::storeStationOceanLdDisp(): unknown station " + stnName);
760 "::storeStationOceanLdDisp(): the matrix dis size mismatch: " +
761 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, dis->
nRow()));
768 "::storeStationOceanLdDisp(): the matrix vel size mismatch: " +
769 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, vel->
nRow()));
776 "::storeStationOceanLdDisp(): format description failed");
780 "StationScan",
"TimeUTC.nc");
797 "::storeStationOceanLdDisp(): cannot put data into " + ncdf.
getFileName());
802 "::storeStationOceanLdDisp(): the data were successfully stored in " + ncdf.
getFileName());
815 "::storeStationPartZenithDelayDry(): unknown station " + stnName);
831 "::storeStationPartZenithDelayDry(): the size mismatch: " +
832 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, part->
nRow()));
839 "::storeStationPartZenithDelayDry(): format description failed");
843 "StationScan",
"TimeUTC.nc");
856 "::storeStationPartZenithDelayDry(): cannot put data into " + ncdf.
getFileName());
861 "::storeStationPartZenithDelayDry(): the data successfully stored in " + ncdf.
getFileName());
874 "::storeStationPartZenithDelayWet(): unknown station " + stnName);
890 "::storeStationPartZenithDelayWet(): the size mismatch: " +
891 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, part->
nRow()));
898 "::storeStationPartZenithDelayWet(): format description failed");
902 "StationScan",
"TimeUTC.nc");
915 "::storeStationPartZenithDelayWet(): cannot put data into " + ncdf.
getFileName());
920 "::storeStationPartZenithDelayWet(): the data successfully stored in " + ncdf.
getFileName());
933 "::storeStationPartHorizonGrad(): unknown station " + stnName);
949 "::storeStationPartHorizonGrad(): the size mismatch: " +
950 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, part->
nRow()));
957 "::storeStationPartHorizonGrad(): format description failed");
961 "StationScan",
"TimeUTC.nc");
976 "::storeStationPartHorizonGrad(): cannot put data into " + ncdf.
getFileName());
981 "::storeStationPartHorizonGrad(): the data successfully stored in " + ncdf.
getFileName());
993 "::storeStationRefClockOffset(): unknown station " + stnName);
1008 "::storeStationRefClockOffset(): vector v size mismatch: " +
1009 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, v->
n()));
1016 "::storeStationRefClockOffset(): format description failed");
1020 "StationScan",
"TimeUTC.nc");
1030 "::storeStationRefClockOffset(): cannot put data into " + ncdf.
getFileName());
1035 "::storeStationRefClockOffset(): the data were successfully stored in " + ncdf.
getFileName());
1043 const QVector<double>& frqs,
const QVector<QString>& ids,
const QVector<QString>& sbs,
1044 const QVector<QString>& polzs)
1049 "::storeStationTsys(): unknown station " + stnName);
1064 "::storeStationTsys(): matrix tsyses size mismatch: " +
1065 QString(
"").sprintf(
"%d vs %d", dscr->
numOfPts_, tsyses->
nRow()));
1071 numChans = tsyses->
nCol();
1072 if (numChans != frqs.size())
1075 "::storeStationTsys(): array of frqs size mismatch: " +
1076 QString(
"").sprintf(
"%d vs %d", numChans, frqs.size()));
1079 if (numChans != ids.size())
1082 "::storeStationTsys(): array of ids size mismatch: " +
1083 QString(
"").sprintf(
"%d vs %d", numChans, ids.size()));
1087 int lIds, lSbs, lPzs;
1088 lIds = lSbs = lPzs = 0;
1089 for (
int i=0; i<numChans; i++)
1091 if (lIds < ids[i].size())
1092 lIds = ids[i].size();
1093 if (lSbs < sbs[i].size())
1094 lSbs = sbs[i].size();
1095 if (lPzs < polzs[i].size())
1096 lPzs = polzs[i].size();
1111 "::storeStationTsys(): format description failed");
1115 "StationScan",
"TimeUTC.nc");
1133 for (
int j=0; j<numChans; j++)
1134 pTsys[i*numChans + j] = tsyses->
getElement(i, j);
1135 for (
int j=0; j<numChans; j++)
1137 pFreqs[j] = frqs[j];
1138 strncpy(pIds + lIds*j, qPrintable(ids[j]), lIds);
1139 strncpy(pSbs + lSbs*j, qPrintable(sbs[j]), lSbs);
1140 strncpy(pPzs + lPzs*j, qPrintable(polzs[j]), lPzs);
1148 "::storeStationTsys(): cannot put data into " + ncdf.
getFileName());
1153 "::storeStationTsys(): the data were successfully stored in " + ncdf.
getFileName());
SgVgosDb::FmtChkVar fcSecond("Second", NC_DOUBLE, true, QList< int >()<< SD_Any, "SEC TAG ", "Seconds part of UTC TAG.........", "second")
SgVgosDb::FmtChkVar fcYmdhm("YMDHM", NC_SHORT, true, QList< int >()<< SD_Any<< 5, "UTC TAG ", "Epoch UTC YMDHM.................")
QList< SgVgosDb::FmtChkVar * > fcfTimeUTC
QList< SgVgosDb::FmtChkVar * > fcfCalSlantPathTropDry
SgVgosDb::FmtChkVar fcCalCblCorrections
QList< SgVgosDb::FmtChkVar * > fcfCalAxisOffset
SgVgosDb::FmtChkVar fcPartZenithPathTropDry
SgVgosDb::FmtChkVar fcRefClockOffset
SgVgosDb::FmtChkVar fcTsysIfSideBand
QList< SgVgosDb::FmtChkVar * > fcfMet
SgVgosDb::FmtChkVar fcCalStationOceanLoadHoriz
SgVgosDb::FmtChkVar fcElTheo
SgVgosDb::FmtChkVar fcTempC
QList< SgVgosDb::FmtChkVar * > fcfPartZenithPathTropDry
QList< SgVgosDb::FmtChkVar * > fcfPartZenithPathTropWet
QList< SgVgosDb::FmtChkVar * > fcfRefClockOffset
QList< SgVgosDb::FmtChkVar * > fcfTsys
SgVgosDb::FmtChkVar fcTsysData
SgVgosDb::FmtChkVar fcCalSlantPathTropWet
QList< SgVgosDb::FmtChkVar * > fcfCalStationOceanLoad
SgVgosDb::FmtChkVar fcCalStationOceanLoadVert
QList< SgVgosDb::FmtChkVar * > fcfDisOceanLoad
SgVgosDb::FmtChkVar fcTsysIfPolarization
SgVgosDb::FmtChkVar fcPartZenithPathTropWet
QList< SgVgosDb::FmtChkVar * > fcfPartHorizonGrad
SgVgosDb::FmtChkVar fcCalCable
QList< SgVgosDb::FmtChkVar * > fcfCalCable
QList< SgVgosDb::FmtChkVar * > fcfCalSlantPathTropWet
SgVgosDb::FmtChkVar fcFeedRotation
SgVgosDb::FmtChkVar fcPartHorizonGrad
SgVgosDb::FmtChkVar fcCalSlantPathTropDry
SgVgosDb::FmtChkVar fcAzTheo
SgVgosDb::FmtChkVar fcRelHum
QList< SgVgosDb::FmtChkVar * > fcfCalCblCorrections
SgVgosDb::FmtChkVar fcDisOceanLoad
SgVgosDb::FmtChkVar fcTsysIfId
QList< SgVgosDb::FmtChkVar * > fcfPartAxisOffset
SgVgosDb::FmtChkVar fcTsysIfFreq
SgVgosDb::FmtChkVar fcAtmPres
QList< SgVgosDb::FmtChkVar * > fcfFeedRotation
SgVgosDb::FmtChkVar fcPartAxisOffset
SgVgosDb::FmtChkVar fcCalAxisOffset
QList< SgVgosDb::FmtChkVar * > fcfAzEl
const SgIdentities * currentIdentities_
virtual void write(LogLevel, quint32, const QString &, bool=false)
unsigned int nRow() const
double getElement(unsigned int i, unsigned int j) const
unsigned int nCol() const
const char * data2char() const
const short * data2short() const
const double * data2double() const
SgNcdfVariable * lookupVar(const QString &name) const
void setServiceVars(const QString &stub, const QString &dataOrigin, const QString &timeTag, const QString &timeTagFile)
const QString & getFileName() const
void setOperationMode(OperationMode om)
QString name4export(const QString &rootDir, SgNetCdf::OperationMode om, const QString &aBand="")
void setKind(const QString &str)
const QString & getStub() const
double getElement(unsigned int i) const
void setHave2hideLCode(bool have2)
const QString & name() const
void alternateDimension(int i, int num)
bool storeStationCalCable(const QString &stnName, const SgMatrix *cal, const QString &origin, const QString &kind)
static const QString className()
bool setupFormat(const QList< FmtChkVar * > &, SgNetCdf &, const QString &stationKey=QString(""), const QString &bandKey=QString(""))
bool storeStationCalOceanLoad(const QString &stnName, const SgMatrix *calHorzOLoad, const SgMatrix *calVertOLoad)
bool storeStationCalSlantPathTropWet(const QString &stnName, const SgMatrix *cal, const QString &kind)
SgNetCdf::OperationMode operationMode_
bool storeStationRefClockOffset(const QString &stnName, const SgVector *v)
bool storeStationTsys(const QString &stnName, const SgMatrix *tsyses, const QVector< double > &frqs, const QVector< QString > &ids, const QVector< QString > &sbs, const QVector< QString > &polzs)
bool storeStationPartAxisOffset(const QString &stnName, const SgMatrix *partAxisOffset)
bool storeStationCalCblCorrections(const QString &stnName, const SgMatrix *cal, const QString &origin)
bool storeStationCalAxisOffset(const QString &stnName, const SgMatrix *cal)
bool storeStationEpochs(const QString &stnName, const QList< SgMJD > &epochs)
bool storeStationPartZenithDelayDry(const QString &stnName, const SgMatrix *part, const QString &kind)
bool storeStationParAngle(const QString &stnName, const SgVector *parAngle)
bool storeStationOceanLdDisp(const QString &stnName, const SgMatrix *dis, const SgMatrix *vel)
bool storeStationPartHorizonGrad(const QString &stnName, const SgMatrix *part, const QString &kind)
QMap< QString, StationDescriptor * > stnDescriptorByName_
bool storeStationAzEl(const QString &stnName, SgMatrix *const azTheo, SgMatrix *const elTheo)
bool storeStationCalSlantPathTropDry(const QString &stnName, const SgMatrix *cal, const QString &kind)
bool storeStationPartZenithDelayWet(const QString &stnName, const SgMatrix *part, const QString &kind)
bool storeStationMet(const QString &stnName, SgVector *const metAtmPres, SgVector *const metAtmRH, SgVector *const metAtmTemp, const QString &origin, const QString &kind)
SgVdbVariable vRefClockOffset_
SgVdbVariable vCal_SlantPathTropWet_
SgVdbVariable vCal_SlantPathTropDry_
SgVdbVariable vPart_HorizonGrad_
SgVdbVariable vPart_ZenithPathTropDry_
SgVdbVariable vCal_Cable_
SgVdbVariable vCal_CblCorrections_
SgVdbVariable vFeedRotation_
SgVdbVariable vCal_AxisOffset_
SgVdbVariable vPart_AxisOffset_
SgVdbVariable vDis_OceanLoad_
SgVdbVariable vCal_OceanLoad_
SgVdbVariable vPart_ZenithPathTropWet_