55 const std::string FileReference::BLOCK_TITLE(
"FILE/REFERENCE");
60 FileReference::operator std::string()
const
77 FileReference::operator=(
const std::string& line)
79 static int FIELD_DIVS[] = {0, 19, -1};
83 infoType = line.substr(1, 18);
84 infoValue = line.substr(20, 60);
96 s << BLOCK_TITLE <<
" :" << endl;
97 s <<
" infoType=" << infoType << endl;
98 s <<
" infoValue=" << infoValue << endl;
103 const std::string FileComment::BLOCK_TITLE(
"FILE/COMMENT");
108 FileComment::operator std::string()
const
124 FileComment::operator=(
const std::string& line)
129 comment = line.substr(1, 79);
141 s << BLOCK_TITLE <<
" :" << endl;
142 s <<
" comment=" << comment << endl;
147 const std::string InputHistory::BLOCK_TITLE(
"INPUT/HISTORY");
151 InputHistory::operator std::string()
const
156 string header = (std::string)(*ptr);
169 InputHistory::operator=(
const std::string& line)
189 ss <<
"Missing data; inadequate line length ("
200 s << BLOCK_TITLE <<
" :" << endl;
201 s <<
" fileCode=" << fileCode << endl;
202 s <<
" version=" <<
version << endl;
203 s <<
" creationAgency=" << creationAgency << endl;
204 s <<
" dataAgency=" << dataAgency << endl;
205 s <<
" creationTime=" << (std::string)creationTime << endl;
206 s <<
" dataTimeStart=" << (std::string)dataTimeStart << endl;
207 s <<
" dataEndTime=" << (std::string)dataTimeEnd << endl;
208 s <<
" obsCode=" << obsCode << endl;
209 s <<
" constraintCode=" << constraintCode << endl;
210 s <<
" paramCount=" << paramCount << endl;
211 s <<
" solutionTypes=" << solutionTypes << endl;
216 const std::string InputFile::BLOCK_TITLE(
"INPUT/FILES");
221 InputFile::operator std::string()
const
227 ss <<
' ' << (std::string)creationTime;
240 InputFile::operator=(
const std::string& line)
242 static int FIELD_DIVS[] = {0, 4, 17, 47, -1};
246 agencyCode = line.substr(1, 3);
247 creationTime = line.substr(5, 12);
248 fileName = line.substr(18, 29);
249 fileDesc = line.substr(48, 32);
261 s << BLOCK_TITLE <<
" :" << endl;
262 s <<
" agencyCode=" << agencyCode << endl;
263 s <<
" creationTime=" << (std::string)creationTime << endl;
264 s <<
" fileName=" << fileName << endl;
265 s <<
" fileDesc=" << fileDesc << endl;
270 const std::string InputAck::BLOCK_TITLE(
"INPUT/ACKNOWLEDGMENTS");
275 InputAck::operator std::string()
const
292 InputAck::operator=(
const std::string& line)
294 static int FIELD_DIVS[] = {0, 4, -1};
298 agencyCode = line.substr(1, 3);
299 agencyDesc = line.substr(5, 75);
311 s << BLOCK_TITLE <<
" :" << endl;
312 s <<
" agencyCode=" << agencyCode << endl;
313 s <<
" agencyDesc=" << agencyDesc << endl;
318 const std::string NutationData::BLOCK_TITLE(
"NUTATION/DATA");
323 NutationData::operator std::string()
const
329 ss <<
' ' <<
formatStr(nutationDesc, 70);
340 NutationData::operator=(
const std::string& line)
342 static int FIELD_DIVS[] = {0, 9, -1};
346 nutationCode = line.substr(1, 8);
347 nutationDesc = line.substr(10, 70);
359 s << BLOCK_TITLE <<
" :" << endl;
360 s <<
" nutationCode=" << nutationCode << endl;
361 s <<
" nutationDesc=" << nutationDesc << endl;
366 const std::string PrecessionData::BLOCK_TITLE(
"PRECESSION/DATA");
371 PrecessionData::operator std::string()
const
377 ss <<
' ' <<
formatStr(precessionDesc, 70);
388 PrecessionData::operator=(
const std::string& line)
390 static int FIELD_DIVS[] = {0, 9, -1};
394 precessionCode = line.substr(1, 8);
395 precessionDesc = line.substr(10, 70);
407 s << BLOCK_TITLE <<
" :" << endl;
408 s <<
" precessionCode=" << precessionCode << endl;
409 s <<
" precessionDesc=" << precessionDesc << endl;
414 const std::string SourceId::BLOCK_TITLE(
"SOURCE/ID");
419 SourceId::operator std::string()
const
438 SourceId::operator=(
const std::string& line)
440 static int FIELD_DIVS[] = {0, 5, 14, 31, -1};
444 sourceCode = line.substr(1, 4);
445 iers = line.substr(6, 8);
446 icrf = line.substr(15, 16);
447 comment = line.substr(32, 48);
459 s << BLOCK_TITLE <<
" :" << endl;
460 s <<
" sourceCode=" << sourceCode << endl;
461 s <<
" iers=" << iers << endl;
462 s <<
" icrf=" << icrf << endl;
463 s <<
" comment=" << comment << endl;
468 const string SiteId::BLOCK_TITLE(
"SITE/ID");
473 SiteId::operator std::string()
const
477 std::ostringstream ss;
481 ss <<
' ' << obsCode;
499 void SiteId::operator=(
const std::string& line)
501 static int FIELD_DIVS[] = {0, 5, 8, 18, 20, 43, 47, 50, 55, 59, 62, 67, -1};
505 siteCode = line.substr(1, 4);
506 pointCode = line.substr(6, 2);
507 monumentId = line.substr(9, 9);
510 siteDesc = line.substr(21, 22);
511 longitudeDeg =
asUnsigned(line.substr(44, 3) );
512 longitudeMin =
asUnsigned(line.substr(48, 2) );
513 longitudeSec =
asFloat(line.substr(51, 4) );
514 latitudeDeg =
asInt(line.substr(56, 3) );
515 latitudeMin =
asUnsigned(line.substr(60, 2) );
516 latitudeSec =
asFloat(line.substr(63, 4) );
517 height =
asDouble(line.substr(68, 7) );
528 s << BLOCK_TITLE <<
" :" << endl;
529 s <<
" siteCode=" << siteCode << endl;
530 s <<
" pointCode=" << pointCode << endl;
531 s <<
" monumentId=" << monumentId << endl;
532 s <<
" obsCode=" << obsCode << endl;
533 s <<
" siteDesc=" << siteDesc << endl;
534 s <<
" longitudeDeg=" << longitudeDeg << endl;
535 s <<
" longitudeMin=" << (uint16_t)longitudeMin << endl;
536 s <<
" longitudeSec=" << longitudeSec << endl;
537 s <<
" latitudeDeg=" << latitudeDeg << endl;
538 s <<
" latitudeMin=" << (uint16_t)latitudeMin << endl;
539 s <<
" latitudeSec=" << latitudeSec << endl;
540 s <<
" height=" << height << endl;
545 const string SiteData::BLOCK_TITLE(
"SITE/DATA");
550 SiteData::operator std::string()
const
554 std::ostringstream ss;
557 ss <<
' ' <<
formatStr(solutionIdSol, 4);
560 ss <<
' ' <<
formatStr(solutionIdInp, 4);
561 ss <<
' ' << obsCode;
562 ss <<
' ' << setw(12) << right << (std::string)timeStart;
563 ss <<
' ' << setw(12) << right << (std::string)timeEnd;
565 ss <<
' ' << setw(12) << right << (std::string)creationTime;
575 void SiteData::operator=(
const std::string& line)
577 static int FIELD_DIVS[] = {0, 5, 8, 13, 18, 21, 26, 28, 41, 54, 58, -1};
581 siteCodeSol = line.substr(1, 4);
582 pointCodeSol = line.substr(6, 2);
583 solutionIdSol = line.substr(9, 4);
584 siteCodeInp = line.substr(14, 4);
585 pointCodeInp = line.substr(19, 2);
586 solutionIdInp = line.substr(22, 4);
589 timeStart = line.substr(29,12);
590 timeEnd = line.substr(42,12);
591 agencyCode = line.substr(55, 3);
592 creationTime = line.substr(59,12);
603 s << BLOCK_TITLE <<
" :" << endl;
604 s <<
" siteCodeSol=" << siteCodeSol << endl;
605 s <<
" pointCodeSol=" << pointCodeSol << endl;
606 s <<
" solutionIdSol=" << solutionIdSol << endl;
607 s <<
" siteCodeInp=" << siteCodeInp << endl;
608 s <<
" pointCodeInp=" << pointCodeInp << endl;
609 s <<
" solutionIdInp=" << solutionIdInp << endl;
610 s <<
" obsCode=" << obsCode << endl;
611 s <<
" timeStart=" << (std::string)timeStart << endl;
612 s <<
" timeEnd=" << (std::string)timeEnd << endl;
613 s <<
" agencyCode=" << agencyCode << endl;
614 s <<
" creationTime=" << (std::string)creationTime << endl;
619 const string SiteReceiver::BLOCK_TITLE(
"SITE/RECEIVER");
624 SiteReceiver::operator std::string()
const
628 std::ostringstream ss;
632 ss <<
' ' << obsCode;
633 ss <<
' ' << setw(12) << right << (std::string)timeSince;
634 ss <<
' ' << setw(12) << right << (std::string)timeUntil;
647 void SiteReceiver::operator=(
const std::string& line)
649 static int FIELD_DIVS[] = {0, 5, 8, 13, 15, 28, 41, 62, 68, -1};
653 siteCode = line.substr(1, 4);
654 pointCode = line.substr(6, 2);
655 solutionId = line.substr(9, 4);
658 timeSince = line.substr(16,12);
659 timeUntil = line.substr(29,12);
660 rxType = line.substr(42, 20);
661 rxSerialNo = line.substr(63, 5);
662 rxFirmware = line.substr(69, 11);
673 s << BLOCK_TITLE <<
" :" << endl;
674 s <<
" siteCode=" << siteCode << endl;
675 s <<
" pointCode=" << pointCode << endl;
676 s <<
" solutionId=" << solutionId << endl;
677 s <<
" obsCode=" << obsCode << endl;
678 s <<
" timeSince=" << (std::string)timeSince << endl;
679 s <<
" timeUntil=" << (std::string)timeUntil << endl;
680 s <<
" rxType=" << rxType << endl;
681 s <<
" rxSerialNo=" << rxSerialNo << endl;
682 s <<
" rxFirmware=" << rxFirmware << endl;
687 const string SiteAntenna::BLOCK_TITLE(
"SITE/ANTENNA");
692 SiteAntenna::operator std::string()
const
696 std::ostringstream ss;
700 ss <<
' ' << obsCode;
701 ss <<
' ' << setw(12) << right << (std::string)timeSince;
702 ss <<
' ' << setw(12) << right << (std::string)timeUntil;
704 ss <<
' ' <<
formatStr(antennaSerialNo, 5);
714 void SiteAntenna::operator=(
const std::string& line)
716 static int FIELD_DIVS[] = {0, 5, 8, 13, 15, 28, 41, 62, -1};
720 siteCode = line.substr(1, 4);
721 pointCode = line.substr(6, 2);
722 solutionId = line.substr(9, 4);
725 timeSince = line.substr(16,12);
726 timeUntil = line.substr(29,12);
727 antennaType = line.substr(42, 20);
728 antennaSerialNo = line.substr(63, 5);
739 s << BLOCK_TITLE <<
" :" << endl;
740 s <<
" siteCode=" << siteCode << endl;
741 s <<
" pointCode=" << pointCode << endl;
742 s <<
" solutionId=" << solutionId << endl;
743 s <<
" obsCode=" << obsCode << endl;
744 s <<
" timeSince=" << (std::string)timeSince << endl;
745 s <<
" timeUntil=" << (std::string)timeUntil << endl;
746 s <<
" antennaType=" << antennaType << endl;
747 s <<
" antennaSerialNo=" << antennaSerialNo << endl;
756 SitePhaseCenter::operator std::string()
const
760 std::ostringstream ss;
762 ss <<
' ' <<
formatStr(antennaSerialNo, 5);
769 ss <<
' ' <<
formatStr(antennaCalibration, 10);
779 void SitePhaseCenter::operator=(
const std::string& line)
781 static int FIELD_DIVS[] = {0, 21, 27, 34, 41, 48, 55, 62, 69, -1};
785 antennaType = line.substr(1, 20);
786 antennaSerialNo = line.substr(22, 5);
787 offsetA[0] =
asDouble(line.substr(28, 6) );
788 offsetA[1] =
asDouble(line.substr(35, 6) );
789 offsetA[2] =
asDouble(line.substr(42, 6) );
790 offsetB[0] =
asDouble(line.substr(49, 6) );
791 offsetB[1] =
asDouble(line.substr(56, 6) );
792 offsetB[2] =
asDouble(line.substr(63, 6) );
793 antennaCalibration = line.substr(70, 10);
804 s <<
" antennaType=" << antennaType << endl;
805 s <<
" antennaSerialNo=" << antennaSerialNo << endl;
806 s <<
" offsetA_Up=" << offsetA[0] << endl;
807 s <<
" offsetA_North=" << offsetA[1] << endl;
808 s <<
" offsetA_East=" << offsetA[2] << endl;
809 s <<
" offsetB_Up=" << offsetB[0] << endl;
810 s <<
" offsetB_North=" << offsetB[1] << endl;
811 s <<
" offsetB_East=" << offsetB[2] << endl;
812 s <<
" antennaCalibration=" << antennaCalibration << endl;
817 const string SiteGpsPhaseCenter::BLOCK_TITLE(
"SITE/GPS_PHASE_CENTER");
822 s << BLOCK_TITLE <<
" :" << endl;
828 const string SiteGalPhaseCenter::BLOCK_TITLE(
"SITE/GAL_PHASE_CENTER");
833 s << BLOCK_TITLE <<
" :" << endl;
839 const string SiteEccentricity::BLOCK_TITLE(
"SITE/ECCENTRICITY");
844 SiteEccentricity::operator std::string()
const
848 std::ostringstream ss;
852 ss <<
' ' << obsCode;
853 ss <<
' ' << setw(12) << right << (std::string)timeSince;
854 ss <<
' ' << setw(12) << right << (std::string)timeUntil;
868 void SiteEccentricity::operator=(
const std::string& line)
870 static int FIELD_DIVS[] = {0, 5, 8, 13, 15, 28, 41, 45, 54, 63, -1};
874 siteCode = line.substr(1, 4);
875 pointCode = line.substr(6, 2);
876 solutionId = line.substr(9, 4);
879 timeSince = line.substr(16,12);
880 timeUntil = line.substr(29,12);
881 refSystem = line.substr(42, 3);
882 eccentricity[0] =
asDouble(line.substr(46, 8) );
883 eccentricity[1] =
asDouble(line.substr(55, 8) );
884 eccentricity[2] =
asDouble(line.substr(64, 8) );
895 s << BLOCK_TITLE <<
" :" << endl;
896 s <<
" siteCode=" << siteCode << endl;
897 s <<
" pointCode=" << pointCode << endl;
898 s <<
" solutionId=" << solutionId << endl;
899 s <<
" obsCode=" << obsCode << endl;
900 s <<
" timeSince=" << (std::string)timeSince << endl;
901 s <<
" timeUntil=" << (std::string)timeUntil << endl;
902 s <<
" refSystem=" << refSystem << endl;
903 s <<
" uX=" << eccentricity[0] << endl;
904 s <<
" nY=" << eccentricity[1] << endl;
905 s <<
" eZ=" << eccentricity[2] << endl;
910 const string SatelliteId::BLOCK_TITLE(
"SATELLITE/ID");
915 SatelliteId::operator std::string()
const
919 std::ostringstream ss;
923 ss <<
' ' << obsCode;
924 ss <<
' ' << setw(12) << right << (std::string)timeSince;
925 ss <<
' ' << setw(12) << right << (std::string)timeUntil;
936 void SatelliteId::operator=(
const std::string& line)
938 static int FIELD_DIVS[] = {0, 5, 8, 18, 20, 33, 46, -1};
942 svCode = line.substr(1, 4);
943 prn = line.substr(6, 2);
944 cosparId = line.substr(9, 9);
947 timeSince = line.substr(21,12);
948 timeUntil = line.substr(34,12);
949 antennaType = line.substr(47, 20);
960 s << BLOCK_TITLE <<
" :" << endl;
961 s <<
" svCode=" << svCode << endl;
962 s <<
" prn=" << prn << endl;
963 s <<
" cosparId=" << cosparId << endl;
964 s <<
" obsCode=" << obsCode << endl;
965 s <<
" timeSince=" << (std::string)timeSince << endl;
966 s <<
" timeUntil=" << (std::string)timeUntil << endl;
967 s <<
" antennaType=" << antennaType << endl;
972 const string SatellitePhaseCenter::BLOCK_TITLE(
"SATELLITE/PHASE_CENTER");
977 SatellitePhaseCenter::operator std::string()
const
981 std::ostringstream ss;
983 ss <<
' ' << freqCodeA;
987 ss <<
' ' << freqCodeB;
991 ss <<
' ' <<
formatStr(antennaCalibration, 10);
992 ss <<
' ' << pcvType;
993 ss <<
' ' << pcvModel;
1003 void SatellitePhaseCenter::operator=(
const std::string& line)
1005 static int FIELD_DIVS[] = {0, 5, 7, 14, 21, 28, 30, 37, 44, 51, 62, 64, -1};
1009 svCode = line.substr(1, 4);
1010 freqCodeA = line[6];
1011 offsetA[2] =
asDouble(line.substr(8, 6) );
1012 offsetA[0] =
asDouble(line.substr(15, 6) );
1013 offsetA[1] =
asDouble(line.substr(22, 6) );
1014 freqCodeB = line[29];
1015 offsetB[2] =
asDouble(line.substr(31, 6) );
1016 offsetB[0] =
asDouble(line.substr(38, 6) );
1017 offsetB[1] =
asDouble(line.substr(45, 6) );
1018 antennaCalibration = line.substr(52, 10);
1020 pcvModel = line[65];
1031 s << BLOCK_TITLE <<
" :" << endl;
1032 s <<
" svCode=" << svCode << endl;
1033 s <<
" freqCodeA=" << freqCodeA << endl;
1034 s <<
" offsetA.x=" <<
formatFixed(offsetA[0], 6, 4) << endl;
1035 s <<
" offsetA.y=" <<
formatFixed(offsetA[1], 6, 4) << endl;
1036 s <<
" offsetA.z=" <<
formatFixed(offsetA[2], 6, 4) << endl;
1037 s <<
" freqCodeB=" << freqCodeB << endl;
1038 s <<
" offsetB.x=" <<
formatFixed(offsetB[0], 6, 4) << endl;
1039 s <<
" offsetB.y=" <<
formatFixed(offsetB[1], 6, 4) << endl;
1040 s <<
" offsetB.z=" <<
formatFixed(offsetB[2], 6, 4) << endl;
1041 s <<
" antennaCalibration=" << antennaCalibration << endl;
1042 s <<
" pcvType=" << pcvType << endl;
1043 s <<
" pcvModel=" << pcvModel << endl;
1048 const string BiasEpoch::BLOCK_TITLE(
"BIAS/EPOCHS");
1053 BiasEpoch::operator std::string()
const
1057 std::ostringstream ss;
1061 ss <<
' ' << biasType;
1062 ss <<
' ' << setw(12) << right << (std::string)firstTime;
1063 ss <<
' ' << setw(12) << right << (std::string)lastTime;
1064 ss <<
' ' << setw(12) << right << (std::string)meanTime;
1074 void BiasEpoch::operator=(
const std::string& line)
1076 static int FIELD_DIVS[] = {0, 5, 8, 13, 15, 28, 41, -1};
1080 siteCode = line.substr(1, 4);
1081 pointCode = line.substr(6, 2);
1082 solutionId = line.substr(9, 4);
1083 biasType = line[14];
1084 firstTime = line.substr(16,12);
1085 lastTime = line.substr(29,12);
1086 meanTime = line.substr(42,12);
1097 s << BLOCK_TITLE <<
" :" << endl;
1098 s <<
" siteCode=" << siteCode << endl;
1099 s <<
" pointCode=" << pointCode << endl;
1100 s <<
" solutionId=" << solutionId << endl;
1101 s <<
" biasType=" << biasType << endl;
1102 s <<
" firstTime=" << (std::string)firstTime << endl;
1103 s <<
" lastTime=" << (std::string)lastTime << endl;
1104 s <<
" meanTime=" << (std::string)meanTime << endl;
1109 const string SolutionStatistics::BLOCK_TITLE(
"SOLUTION/STATISTICS");
1114 SolutionStatistics::operator std::string()
const
1131 SolutionStatistics::operator=(
const std::string& line)
1133 static int FIELD_DIVS[] = {0, 31, -1};
1137 infoType = line.substr(1, 30);
1150 s << BLOCK_TITLE <<
" :" << endl;
1151 s <<
" infoType=" << infoType << endl;
1152 s <<
" infoValue=" << infoValue << endl;
1157 const string SolutionEpoch::BLOCK_TITLE(
"SOLUTION/EPOCHS");
1162 SolutionEpoch::operator std::string()
const
1166 std::ostringstream ss;
1170 ss <<
' ' << obsCode;
1171 ss <<
' ' << setw(12) << right << (std::string)startTime;
1172 ss <<
' ' << setw(12) << right << (std::string)endTime;
1173 ss <<
' ' << setw(12) << right << (std::string)meanTime;
1183 void SolutionEpoch::operator=(
const std::string& line)
1185 static int FIELD_DIVS[] = {0, 5, 8, 13, 15, 28, 41, -1};
1189 siteCode = line.substr(1, 4);
1190 pointCode = line.substr(6, 2);
1191 solutionId = line.substr(9, 4);
1194 startTime = line.substr(16,12);
1195 endTime = line.substr(29,12);
1196 meanTime = line.substr(42,12);
1207 s << BLOCK_TITLE <<
" :" << endl;
1208 s <<
" siteCode=" << siteCode << endl;
1209 s <<
" pointCode=" << pointCode << endl;
1210 s <<
" solutionId=" << solutionId << endl;
1211 s <<
" obsCode=" << obsCode << endl;
1212 s <<
" startTime=" << (std::string)startTime << endl;
1213 s <<
" endTime=" << (std::string)endTime << endl;
1214 s <<
" meanTime=" << (std::string)meanTime << endl;
1219 const string SolutionEstimate::BLOCK_TITLE(
"SOLUTION/ESTIMATE");
1224 SolutionEstimate::operator std::string()
const
1228 std::ostringstream ss;
1234 ss <<
' ' << setw(12) << right << (std::string)
epoch;
1236 ss <<
' ' << constraintCode;
1237 ss <<
' ' <<
formatFor(paramEstimate, 21, 2);
1239 ss <<
' ' <<
formatFor(paramStdDev, 12, 2).erase(0, 1);
1249 void SolutionEstimate::operator=(
const std::string& line)
1251 static int FIELD_DIVS[] = {0, 6, 13, 18, 21, 26, 39, 44, 46, 68, -1};
1256 paramType = line.substr(7, 6);
1257 siteCode = line.substr(14, 4);
1258 pointCode = line.substr(19, 2);
1259 solutionId = line.substr(22, 4);
1260 epoch = line.substr(27,12);
1261 paramUnits = line.substr(40, 4);
1262 constraintCode = line[45];
1263 paramEstimate =
asDouble(line.substr(47, 21) );
1264 paramStdDev =
asDouble(line.substr(69, 11) );
1275 s << BLOCK_TITLE <<
" :" << endl;
1276 s <<
" paramIndex=" << paramIndex << endl;
1277 s <<
" paramType=" << paramType << endl;
1278 s <<
" siteCode=" << siteCode << endl;
1279 s <<
" pointCode=" << pointCode << endl;
1280 s <<
" solutionId=" << solutionId << endl;
1281 s <<
" epoch=" << (std::string)
epoch << endl;
1282 s <<
" constraintCode=" << constraintCode << endl;
1283 s <<
" paramEstimate=" << paramEstimate << endl;
1284 s <<
" paramStdDev=" << paramStdDev << endl;
1289 const string SolutionApriori::BLOCK_TITLE(
"SOLUTION/APRIORI");
1294 SolutionApriori::operator std::string()
const
1298 std::ostringstream ss;
1304 ss <<
' ' << setw(12) << right << (std::string)
epoch;
1306 ss <<
' ' << constraintCode;
1307 ss <<
' ' <<
formatFor(paramApriori, 21, 2);
1309 ss <<
' ' <<
formatFor(paramStdDev, 12, 2).erase(0, 1);
1319 void SolutionApriori::operator=(
const std::string& line)
1321 static int FIELD_DIVS[] = {0, 6, 13, 18, 21, 26, 39, 44, 46, 68, -1};
1326 paramType = line.substr(7, 6);
1327 siteCode = line.substr(14, 4);
1328 pointCode = line.substr(19, 2);
1329 solutionId = line.substr(22, 4);
1330 epoch = line.substr(27,12);
1331 paramUnits = line.substr(40, 4);
1332 constraintCode = line[45];
1333 paramApriori =
asDouble(line.substr(47, 21) );
1334 paramStdDev =
asDouble(line.substr(69, 11) );
1345 s << BLOCK_TITLE <<
" :" << endl;
1346 s <<
" paramIndex=" << paramIndex << endl;
1347 s <<
" paramType=" << paramType << endl;
1348 s <<
" siteCode=" << siteCode << endl;
1349 s <<
" pointCode=" << pointCode << endl;
1350 s <<
" solutionId=" << solutionId << endl;
1351 s <<
" epoch=" << (std::string)
epoch << endl;
1352 s <<
" constraintCode=" << constraintCode << endl;
1353 s <<
" paramApriori=" << paramApriori << endl;
1354 s <<
" paramStdDev=" << paramStdDev << endl;
1363 SolutionMatrixEstimate::operator std::string()
const
1367 std::ostringstream ss;
1382 void SolutionMatrixEstimate::operator=(
const std::string& line)
1384 static int FIELD_DIVS[] = {0, 6, 12, 34, 56, -1};
1390 val1 =
asDouble(line.substr(13, 21) );
1391 val2 =
asDouble(line.substr(35, 21) );
1392 val3 =
asDouble(line.substr(57, 21) );
1403 s <<
" row=" << row << endl;
1404 s <<
" col=" << col << endl;
1405 s <<
" val1=" << val1 << endl;
1406 s <<
" val2=" << val2 << endl;
1407 s <<
" val3=" << val3 << endl;
1412 const string SolutionMatrixEstimateLCorr::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE L CORR");
1416 s << BLOCK_TITLE <<
" :" << endl;
1422 const string SolutionMatrixEstimateUCorr::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE U CORR");
1426 s << BLOCK_TITLE <<
" :" << endl;
1432 const string SolutionMatrixEstimateLCova::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE L COVA");
1436 s << BLOCK_TITLE <<
" :" << endl;
1442 const string SolutionMatrixEstimateUCova::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE U COVA");
1446 s << BLOCK_TITLE <<
" :" << endl;
1452 const string SolutionMatrixEstimateLInfo::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE L INFO");
1456 s << BLOCK_TITLE <<
" :" << endl;
1462 const string SolutionMatrixEstimateUInfo::BLOCK_TITLE(
"SOLUTION/MATRIX_ESTIMATE U INFO");
1466 s << BLOCK_TITLE <<
" :" << endl;
1476 SolutionMatrixApriori::operator std::string()
const
1480 std::ostringstream ss;
1495 void SolutionMatrixApriori::operator=(
const std::string& line)
1497 static int FIELD_DIVS[] = {0, 6, 12, 34, 56, -1};
1503 val1 =
asDouble(line.substr(13, 21) );
1504 val2 =
asDouble(line.substr(35, 21) );
1505 val3 =
asDouble(line.substr(57, 21) );
1516 s <<
" row=" << row << endl;
1517 s <<
" col=" << col << endl;
1518 s <<
" val1=" << val1 << endl;
1519 s <<
" val2=" << val2 << endl;
1520 s <<
" val3=" << val3 << endl;
1525 const std::string SolutionMatrixAprioriLCorr::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI L CORR");
1529 s << BLOCK_TITLE <<
" :" << endl;
1535 const std::string SolutionMatrixAprioriUCorr::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI U CORR");
1539 s << BLOCK_TITLE <<
" :" << endl;
1545 const std::string SolutionMatrixAprioriLCova::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI L COVA");
1549 s << BLOCK_TITLE <<
" :" << endl;
1555 const std::string SolutionMatrixAprioriUCova::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI U COVA");
1559 s << BLOCK_TITLE <<
" :" << endl;
1565 const std::string SolutionMatrixAprioriLInfo::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI L INFO");
1569 s << BLOCK_TITLE <<
" :" << endl;
1575 const std::string SolutionMatrixAprioriUInfo::BLOCK_TITLE(
"SOLUTION/MATRIX_APRIORI U INFO");
1579 s << BLOCK_TITLE <<
" :" << endl;
1585 const std::string SolutionNormalEquationVector::BLOCK_TITLE(
"SOLUTION/NORMAL_EQUATION_VECTOR");
1590 SolutionNormalEquationVector::operator std::string()
const
1594 std::ostringstream ss;
1600 ss <<
' ' << setw(12) << right << (std::string)
epoch;
1602 ss <<
' ' << constraintCode;
1613 void SolutionNormalEquationVector::operator=(
const std::string& line)
1615 static int FIELD_DIVS[] = {0, 6, 13, 18, 21, 26, 39, 44, 46, -1};
1620 paramType = line.substr(7, 6);
1621 siteCode = line.substr(14, 4);
1622 pointCode = line.substr(19, 2);
1623 solutionId = line.substr(22, 4);
1624 epoch = line.substr(27,12);
1625 paramUnits = line.substr(40, 4);
1626 constraintCode = line[45];
1627 value =
asDouble(line.substr(47, 21) );
1638 s << BLOCK_TITLE <<
" :" << endl;
1639 s <<
" paramIndex=" << paramIndex << endl;
1640 s <<
" paramType=" << paramType << endl;
1641 s <<
" siteCode=" << siteCode << endl;
1642 s <<
" pointCode=" << pointCode << endl;
1643 s <<
" solutionId=" << solutionId << endl;
1644 s <<
" epoch=" << (std::string)
epoch << endl;
1645 s <<
" constraintCode=" << constraintCode << endl;
1646 s <<
" value=" << value << endl;
1656 SolutionNormalEquationMatrix::operator std::string()
const
1660 std::ostringstream ss;
1675 void SolutionNormalEquationMatrix::operator=(
const std::string& line)
1677 static int FIELD_DIVS[] = {0, 6, 12, 34, 56, -1};
1683 val1 =
asDouble(line.substr(13, 21) );
1684 val2 =
asDouble(line.substr(35, 21) );
1685 val3 =
asDouble(line.substr(57, 21) );
1696 s <<
" row=" << row << endl;
1697 s <<
" col=" << col << endl;
1698 s <<
" val1=" << val1 << endl;
1699 s <<
" val2=" << val2 << endl;
1700 s <<
" val3=" << val3 << endl;
1705 const std::string SolutionNormalEquationMatrixL::BLOCK_TITLE(
"SOLUTION/NORMAL_EQUATION_MATRIX L");
1709 s << BLOCK_TITLE <<
" :" << endl;
1715 const std::string SolutionNormalEquationMatrixU::BLOCK_TITLE(
"SOLUTION/NORMAL_EQUATION_MATRIX U");
1719 s << BLOCK_TITLE <<
" :" << endl;