void XmlStnInterface::writeBoreholeData(QDomDocument &doc, QDomElement &boreholeTag, GEOLIB::StationBorehole* borehole) const { QDomElement stationDepthTag = doc.createElement("bdepth"); boreholeTag.appendChild(stationDepthTag); QDomText stationDepthText = doc.createTextNode(QString::number(borehole->getDepth(), 'f')); stationDepthTag.appendChild(stationDepthText); if (fabs(borehole->getDate()) > 0) { QDomElement stationDateTag = doc.createElement("bdate"); boreholeTag.appendChild(stationDateTag); QDomText stationDateText = doc.createTextNode(QString::fromStdString(date2string(borehole->getDate()))); stationDateTag.appendChild(stationDateText); } std::vector<GEOLIB::Point*> profile = borehole->getProfile(); std::vector<std::string> soilNames = borehole->getSoilNames(); size_t nHorizons(profile.size()); if (nHorizons > 1) { QDomElement stratTag = doc.createElement("strat"); boreholeTag.appendChild(stratTag); for (size_t j = 1; j < nHorizons; j++) /// the first entry in the profile vector is just the position of the borehole { QDomElement horizonTag = doc.createElement("horizon"); horizonTag.setAttribute( "id", QString::number(j) ); horizonTag.setAttribute( "x", QString::number((*profile[j])[0], 'f') ); horizonTag.setAttribute( "y", QString::number((*profile[j])[1], 'f') ); horizonTag.setAttribute( "z", QString::number((*profile[j])[2], 'f') ); stratTag.appendChild(horizonTag); QDomElement horizonNameTag = doc.createElement("name"); horizonTag.appendChild(horizonNameTag); QDomText horizonNameText = doc.createTextNode(QString::fromStdString(soilNames[j])); horizonNameTag.appendChild(horizonNameText); } } }
std::string Node::secondString() const { std::string res = "1 "; res += string2string(satelliteNumber(), 5); const char cl = classification(); res += (isprint(cl) ? std::string(1, cl) : " ") + " "; res += string2string(designator(), 8) + " "; res += date2string(preciseEpoch(), 14) + " "; res += double2string(dn(), 10, 8, false, false, false) + " "; res += double2string(d2n(), 8, 3, true, true, false) + " "; res += double2string(bstar(), 8, 3, true, true, false) + " "; const char eph = ephemerisType(); res += (isprint(eph) ? std::string(1, eph) : " ") + " "; res += int2string(elementNumber(), 4, false); // Checksum int sum = checksum(res); res += int2string(sum, 1); return res; }