52 "::loadStationName(): unknown station " + stnKey);
59 "::loadStationName(): there is no epochs for the station " + stnKey +
60 ", the vgosDb variable TimeUTC is empty");
68 "::loadStationName(): format check failed");
87 "\" for the station " + stnKey);
91 "::loadStationName(): found station name " + dscr.
stationName_ +
92 " for the station key " + stnKey +
" from the file " + ncdf.
getFileName());
107 "::loadStationEpochs(): unknown station [" + stnName +
"]");
114 "::loadStationEpochs(): there is no epochs for the station " + stnName +
115 ", the vgosDb variable TimeUTC is empty");
123 "::loadStationEpochs(): format check failed");
131 epochs.append(
SgMJD(pYMDHM[5*i ], pYMDHM[5*i+1], pYMDHM[5*i+2], pYMDHM[5*i+3],
132 pYMDHM[5*i+4], pSeconds[i]));
135 "::loadStationEpochs(): read " + QString(
"").setNum(epochs.size()) +
136 " epochs for the station " + stnName +
" from " + ncdf2.
getFileName());
148 "::loadStationAzEl(): unknown station " + stnName);
155 "::loadStationAzEl(): there is no vgosDb variable AzEl for the station " + stnName);
163 "::loadStationAzEl(): format check failed");
178 "::loadStationAzEl(): data successfully loaded from " + ncdf2.
getFileName());
190 "::loadStationParAngle(): unknown station " + stnName);
197 "::loadStationParAngle(): there is no Vdb variable FeedRotation for the station " + stnName);
205 "::loadStationParAngle(): format check failed");
214 "::loadStationParAngle(): data successfully loaded from " + ncdf2.
getFileName());
227 "::loadStationCalAxisOffset(): unknown station " + stnName);
238 QString& origin, QString& kind)
246 "::loadStationCalCable(): unknown station " + stnName);
266 "::loadStationMet(): unknown station " + stnName);
273 "::loadStationMet(): there is no vgosDb variable Met for the station " + stnName);
281 "::loadStationMet(): format check failed");
303 origin = QString::fromLatin1(c, l);
313 "::loadStationMet(): data successfully loaded from " + ncdf2.
getFileName());
328 "::loadStationCalSlantPathTropDry(): unknown station " + stnName);
349 "::loadStationCalSlantPathTropWet(): unknown station " + stnName);
368 "::loadStationCalOceanLoad(): unknown station " + stnName);
375 "::loadStationCalOceanLoad(): there is no vgosDb variable Cal-StationOceanLoad for the station "
384 "::loadStationCalOceanLoad(): format check failed");
399 "::loadStationCalOceanLoad(): data successfully loaded from " + ncdf2.
getFileName());
411 "::loadStationPartAxisOffset(): unknown station " + stnName);
418 "::loadStationPartAxisOffset(): there is no vgosDb variable Part-AxisOffset for the station " +
427 "::loadStationPartAxisOffset(): format check failed");
438 "::loadStationPartAxisOffset(): data successfully loaded from " + ncdf2.
getFileName());
450 "::loadStationOceanLdDisp(): unknown station " + stnName);
457 "::loadStationOceanLdDisp(): there is no vgosDb variable Dis-OceanLoad for the station " + stnName);
465 "::loadStationOceanLdDisp(): format check failed");
481 "::loadStationOceanLdDisp(): data successfully loaded from " + ncdf2.
getFileName());
494 "::loadStationPartZenithDelayDry(): unknown station " + stnName);
501 "::loadStationPartZenithDelayDry(): there is no vgosDb variable Part-ZenithPathTropDry for the "
502 "station " + stnName);
510 "::loadStationPartZenithDelayDry(): format check failed");
522 "::loadStationPartZenithDelayDry(): data successfully loaded from " + ncdf2.
getFileName());
535 "::loadStationPartZenithDelayWet(): unknown station " + stnName);
542 "::loadStationPartZenithDelayWet(): there is no vgosDb variable Part-ZenithPathTropWet for the "
543 "station " + stnName);
551 "::loadStationPartZenithDelayWet(): format check failed");
563 "::loadStationPartZenithDelayWet(): data successfully loaded from " + ncdf.
getFileName());
576 "::loadStationPartHorizonGrad(): unknown station " + stnName);
583 "::loadStationPartHorizonGrad(): there is no vgosDb variable Part-HorizonGrad for the station " +
592 "::loadStationPartHorizonGrad(): format check failed");
606 "::loadStationPartHorizonGrad(): data successfully loaded from " + ncdf.
getFileName());
618 "::loadStationRefClockOffset(): unknown station " + stnName);
625 "::loadStationRefClockOffset(): the vgosDb variable RefClockOffset for the station " +
626 stnName +
" is empty");
634 "::loadStationRefClockOffset(): format check failed");
643 "::loadStationRefClockOffset(): data loaded successfully from " + ncdf.
getFileName());
651 QVector<QString>& ids, QVector<QString>& sbs, QVector<QString>& polzs)
656 "::loadStationTsys(): unknown station " + stnName);
663 "::loadStationTsys(): the vgosDb variable Tsys for the station " +
664 stnName +
" is empty");
672 "::loadStationTsys(): format check failed");
689 polzs.resize(nChans);
692 for (
int j=0; j<nChans; j++)
694 for (
int j=0; j<nChans; j++)
697 ids [j] = QString::fromLatin1(cIds + lIds*j, lIds);
698 sbs [j] = QString::fromLatin1(cSbs + lSbs*j, lSbs);
699 polzs[j] = QString::fromLatin1(cPzs + lPzs*j, lPzs);
703 "::loadStationTsys(): data loaded successfully from " + ncdf.
getFileName());
734 "AZ-THEO ",
"Azimuth array definition",
"radian, radian/sec"),
736 "EL-THEO ",
"Elevation array definition",
"radian, radian/sec"),
738 "PARANGLE",
"Feedhorn rot. angle",
"radian"),
740 "AXO CONT",
"New Axis Offset Contributions",
"second"),
742 "CABL DEL",
"Cable calibration data",
"second"),
745 "NDRYCONT",
"Nhmf (dry) atm. contribution",
"second"),
748 "NWETCONT",
"Whmf (wet) atm. contribution",
"second"),
750 (
"Cal-StationOceanLoadVert",
752 "OCE VERT",
"Site-dep ocean cont - vertical",
"second"),
754 (
"Cal-StationOceanLoadHoriz",
756 "OCE HORZ",
"Site-dep ocean cont - horizontal",
"second"),
759 "TEMP C",
"Temp in C at local WX station",
"Celsius"),
761 "ATM PRES",
"Pressure in hPa at site",
"hPa"),
763 "REL.HUM.",
"Rel.Hum. at local WX st; [0...1], 0.5=50%)",
"unitless"),
765 "AXO PART",
"Axis Offset partial deriv. def."),
767 "OCE DELD",
"Ocean load site dependent displace",
"meter"),
769 (
"Part-ZenithPathTropDry",
771 "NDRYPART",
"Nhmf2 dry partial deriv. def."),
773 (
"Part-ZenithPathTropWet",
775 "NWETPART",
"Whmf2 wet partial deriv. def."),
778 "NGRADPAR",
"Niell dry atm. gradient partials"),
781 "",
"Difference between reference station clock and UTC at the reference epoch",
"sec"),
784 "",
"System temperature"),
786 "",
"Frequencies of IFs for TSYS data"),
788 "",
"Identifiers of IFs for TSYS data"),
791 "",
"Sidebands of IFs for TSYS data"),
795 "",
"Polarizations of IFs for TSYS data"),
SgVgosDb::FmtChkVar fcCalCable("Cal-Cable", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "CABL DEL", "Cable calibration data", "second")
QList< SgVgosDb::FmtChkVar * > fcfCalSlantPathTropDry
SgVgosDb::FmtChkVar fcCalStationOceanLoadVert("Cal-StationOceanLoadVert", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "OCE VERT", "Site-dep ocean cont - vertical", "second")
QList< SgVgosDb::FmtChkVar * > fcfCalUnPhaseCal
QList< SgVgosDb::FmtChkVar * > fcfCalAxisOffset
SgVgosDb::FmtChkVar fcTsysIfPolarization("TsysIfPolarization", NC_CHAR, true, QList< int >()<< SD_Any<< SD_Any, "", "Polarizations of IFs for TSYS data")
QList< SgVgosDb::FmtChkVar * > fcfMet
SgVgosDb::FmtChkVar fcTsysIfFreq("TsysIfreq", NC_DOUBLE, true, QList< int >()<< SD_Any, "", "Frequencies of IFs for TSYS data")
QList< SgVgosDb::FmtChkVar * > fcfPartZenithPathTropDry
QList< SgVgosDb::FmtChkVar * > fcfPartZenithPathTropWet
QList< SgVgosDb::FmtChkVar * > fcfRefClockOffset
SgVgosDb::FmtChkVar fcCalSlantPathTropDry("Cal-SlantPathTropDry", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "NDRYCONT", "Nhmf (dry) atm. contribution", "second")
QList< SgVgosDb::FmtChkVar * > fcfTsys
SgVgosDb::FmtChkVar fcDisOceanLoad("Dis-OceanLoad", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2<< 3, "OCE DELD", "Ocean load site dependent displace", "meter")
QList< SgVgosDb::FmtChkVar * > fcfCalStationOceanLoad
SgVgosDb::FmtChkVar fcCalAxisOffset("Cal-AxisOffset", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "AXO CONT", "New Axis Offset Contributions", "second")
SgVgosDb::FmtChkVar fcStub("", NC_CHAR, true, QList< int >()<< 1, "", "")
SgVgosDb::FmtChkVar fcTsysIfId("TsysIfId", NC_CHAR, true, QList< int >()<< SD_Any<< SD_Any, "", "Identifiers of IFs for TSYS data")
SgVgosDb::FmtChkVar fcPartZenithPathTropDry("Part-ZenithPathTropDry", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "NDRYPART", "Nhmf2 dry partial deriv. def.")
QList< SgVgosDb::FmtChkVar * > fcfDisOceanLoad
QList< SgVgosDb::FmtChkVar * > fcfPartHorizonGrad
SgVgosDb::FmtChkVar fcAzTheo("AzTheo", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "AZ-THEO ", "Azimuth array definition", "radian, radian/sec")
QList< SgVgosDb::FmtChkVar * > fcfCalCable
QList< SgVgosDb::FmtChkVar * > fcfCalSlantPathTropWet
SgVgosDb::FmtChkVar fcPartZenithPathTropWet("Part-ZenithPathTropWet", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "NWETPART", "Whmf2 wet partial deriv. def.")
SgVgosDb::FmtChkVar fcTsysData("TsysData", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< SD_Any, "", "System temperature")
SgVgosDb::FmtChkVar fcCalSlantPathTropWet("Cal-SlantPathTropWet", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "NWETCONT", "Whmf (wet) atm. contribution", "second")
SgVgosDb::FmtChkVar fcPartHorizonGrad("Part-HorizonGrad", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2<< 2, "NGRADPAR", "Niell dry atm. gradient partials")
SgVgosDb::FmtChkVar fcRelHum("RelHum", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "REL.HUM.", "Rel.Hum. at local WX st; [0...1], 0.5=50%)", "unitless")
SgVgosDb::FmtChkVar fcFeedRotation("FeedRotation", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "PARANGLE", "Feedhorn rot. angle", "radian")
SgVgosDb::FmtChkVar fcElTheo("ElTheo", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "EL-THEO ", "Elevation array definition", "radian, radian/sec")
SgVgosDb::FmtChkVar fcPartAxisOffset("Part-AxisOffset", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "AXO PART", "Axis Offset partial deriv. def.")
SgVgosDb::FmtChkVar fcTsysIfSideBand("TsysIfSideBand", NC_CHAR, true, QList< int >()<< SD_Any<< SD_Any, "", "Sidebands of IFs for TSYS data")
QList< SgVgosDb::FmtChkVar * > fcfPartAxisOffset
SgVgosDb::FmtChkVar fcCalUnPhaseCal("Cal-UnPhaseCal", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2)
SgVgosDb::FmtChkVar fcAtmPres("AtmPres", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "ATM PRES", "Pressure in hPa at site", "hPa")
SgVgosDb::FmtChkVar fcRefClockOffset("ReferenceClockOffset", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "", "Difference between reference station clock and UTC at the reference epoch", "sec")
SgVgosDb::FmtChkVar fcTempC("TempC", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts, "TEMP C", "Temp in C at local WX station", "Celsius")
SgVgosDb::FmtChkVar fcCalStationOceanLoadHoriz("Cal-StationOceanLoadHoriz", NC_DOUBLE, true, QList< int >()<< SD_NumStnPts<< 2, "OCE HORZ", "Site-dep ocean cont - horizontal", "second")
QList< SgVgosDb::FmtChkVar * > fcfFeedRotation
QList< SgVgosDb::FmtChkVar * > fcfAzEl
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
virtual void write(LogLevel, quint32, const QString &, bool=false)
void setElement(unsigned int i, unsigned int j, double d)
const char * data2char() const
const short * data2short() const
const QList< SgNcdfDimension * > & dimensions() const
const double * data2double() const
SgNcdfVariable * lookupVar(const QString &name) const
static const QString svcDataOrigin
static const QString svcStation
const QString & getFileName() const
SgNcdfVariable * lookupServiceVar(const QString &name) const
const QString & getKind() const
const QString & getFileName() const
void setElement(unsigned int i, double d)
const QString & name() const
bool loadStationCalOceanLoad(const QString &stnName, SgMatrix *&calHorzOLoad, SgMatrix *&calVertOLoad)
bool loadStationCalSlantPathTropDry(const QString &stnName, SgMatrix *&calNmfDry, QString &kind)
static const QString className()
bool checkFormat(const QList< FmtChkVar * > &, const SgNetCdf &, bool ok2fail=false)
QMap< QString, StationDescriptor > stnDescriptorByKey_
bool loadStationCalSlantPathTropWet(const QString &stnName, SgMatrix *&calNmfWet, QString &kind)
bool loadStationCalAxisOffset(const QString &stnName, SgMatrix *&cal)
bool loadStationOceanLdDisp(const QString &stnName, SgMatrix *&dis, SgMatrix *&vel)
bool loadStationMet(const QString &stnName, SgVector *&metAtmPres, SgVector *&metAtmRH, SgVector *&metAtmTemp, QString &origin, QString &kind)
bool loadStationRefClockOffset(const QString &stnName, SgVector *&refClockOffset)
bool loadStationName(const QString &stnKey)
bool loadStationCalCable(const QString &stnName, SgMatrix *&cal, QString &origin, QString &kind)
bool loadStationPartZenithDelayDry(const QString &stnName, SgMatrix *&part, QString &kind)
bool loadStationParAngle(const QString &stnName, SgVector *&parAngle)
bool loadStationTsys(const QString &stnName, SgMatrix *&tsyses, QVector< double > &frqs, QVector< QString > &ids, QVector< QString > &sbs, QVector< QString > &polzs)
bool loadStationPartHorizonGrad(const QString &stnName, SgMatrix *&part, QString &kind)
QMap< QString, StationDescriptor * > stnDescriptorByName_
bool loadStationEpochs(const QString &stnName, QList< SgMJD > &epochs)
bool loadStationPartZenithDelayWet(const QString &stnName, SgMatrix *&part, QString &kind)
bool loadStationAzEl(const QString &stnName, SgMatrix *&azTheo, SgMatrix *&elTheo)
bool loadStdObsCalibration(SgMatrix *&cals, QString &origin, const QString &varName, const SgVdbVariable &odbV, const FmtChkVar &fc, const QList< FmtChkVar * > &fcf, bool=true)
bool loadStationPartAxisOffset(const QString &stnName, SgMatrix *&partAxisOffset)
SgVdbVariable vRefClockOffset_
SgVdbVariable vPart_HorizonGrad_
SgVdbVariable vPart_ZenithPathTropDry_
SgVdbVariable vFeedRotation_
SgVdbVariable vPart_AxisOffset_
SgVdbVariable vDis_OceanLoad_
SgVdbVariable vCal_OceanLoad_
SgVdbVariable vPart_ZenithPathTropWet_