Changeset 2649 in ntrip
- Timestamp:
- Nov 7, 2010, 6:54:37 PM (14 years ago)
- Location:
- trunk/BNC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/bncmodel.cpp
r2648 r2649 774 774 if (settings.value("pppOrigin").toString() == "Plot - X Y Z" || 775 775 settings.value("pppOrigin").toString() == "QuickStart - Static") { 776 776 777 double xyzRef[3]; 777 double ellRef[3];778 double _xyz[3];779 double _neu[3];780 778 xyzRef[0] = settings.value("pppRefCrdX").toDouble(); 781 779 xyzRef[1] = settings.value("pppRefCrdY").toDouble(); 782 780 xyzRef[2] = settings.value("pppRefCrdZ").toDouble(); 783 _xyz[0] = x() - xyzRef[0]; 784 _xyz[1] = y() - xyzRef[1]; 785 _xyz[2] = z() - xyzRef[2]; 781 782 pppPos* newPos = new pppPos; 783 newPos->time = epoData->tt; 784 newPos->xn[0] = x() - xyzRef[0]; 785 newPos->xn[1] = y() - xyzRef[1]; 786 newPos->xn[2] = z() - xyzRef[2]; 787 788 double ellRef[3]; 786 789 xyz2ell(xyzRef, ellRef); 787 xyz2neu(ellRef, _xyz, _neu); 790 xyz2neu(ellRef, newPos->xn, &newPos->xn[3]); 791 788 792 strC << " NEU " 789 << setw(8) << setprecision(3) << _neu[0] << " " 790 << setw(8) << setprecision(3) << _neu[1] << " " 791 << setw(8) << setprecision(3) << _neu[2]; 793 << setw(8) << setprecision(3) << newPos->xn[3] << " " 794 << setw(8) << setprecision(3) << newPos->xn[4] << " " 795 << setw(8) << setprecision(3) << newPos->xn[5]; 796 797 _posAverage.push_back(newPos); // remember for the computation of mean 792 798 } 793 799 794 800 emit newMessage(QByteArray(strC.str().c_str()), true); 795 801 796 if (settings.value("pppOrigin").toString() != "None" && 797 settings.value("pppOrigin").toString() != "QuickStart - Mobile" && 798 settings.value("pppOrigin").toString() != "Plot - Start position" && 799 settings.value("pppAverage").toString() != "") { 800 801 // Remember new position 802 // --------------------- 803 pppPos* newPos = new pppPos; 804 newPos->time = epoData->tt; 805 newPos->xyz[0] = x(); 806 newPos->xyz[1] = y(); 807 newPos->xyz[2] = z(); 808 newPos->xyzRef[0] = settings.value("pppRefCrdX").toDouble(); 809 newPos->xyzRef[1] = settings.value("pppRefCrdY").toDouble(); 810 newPos->xyzRef[2] = settings.value("pppRefCrdZ").toDouble(); 811 812 _posAverage.push_back(newPos); 802 if (settings.value("pppAverage").toString() != "") { 813 803 814 804 // Time Span for Average Computation … … 824 814 // Compute the Mean 825 815 // ---------------- 826 double meanX = 0.0; 827 double meanY = 0.0; 828 double meanZ = 0.0; 816 ColumnVector mean(6); mean = 0.0; 829 817 830 818 QMutableVectorIterator<pppPos*> it(_posAverage); … … 836 824 } 837 825 else { 838 meanX += pp->xyz[0] - pp->xyzRef[0];839 meanY+= pp->xyz[1] - pp->xyzRef[1];840 meanZ += pp->xyz[2] - pp->xyzRef[2];826 for (int ii = 0; ii < 6; ++ii) { 827 mean[ii] += pp->xn[ii]; 828 } 841 829 } 842 830 } … … 844 832 int nn = _posAverage.size(); 845 833 846 meanX /= nn; 847 meanY /= nn; 848 meanZ /= nn; 849 850 // Compute the Deviation 851 // --------------------- 852 double stdX = 0.0; 853 double stdY = 0.0; 854 double stdZ = 0.0; 855 QVectorIterator<pppPos*> it2(_posAverage); 856 while (it2.hasNext()) { 857 pppPos* pp = it2.next(); 858 double dX = pp->xyz[0] - pp->xyzRef[0] - meanX; 859 double dY = pp->xyz[1] - pp->xyzRef[1] - meanY; 860 double dZ = pp->xyz[2] - pp->xyzRef[2] - meanZ; 861 stdX += dX * dX; 862 stdY += dY * dY; 863 stdZ += dZ * dZ; 864 } 865 866 stdX = sqrt(stdX / nn); 867 stdY = sqrt(stdY / nn); 868 stdZ = sqrt(stdZ / nn); 869 870 ostringstream strD; strD.setf(ios::fixed); 871 strD << _staID.data() << " AVE-XYZ " 872 << epoData->tt.timestr(1) << " " 873 << setw(13) << setprecision(3) << meanX << " +- " 874 << setw(6) << setprecision(3) << stdX << " " 875 << setw(14) << setprecision(3) << meanY << " +- " 876 << setw(6) << setprecision(3) << stdY << " " 877 << setw(14) << setprecision(3) << meanZ << " +- " 878 << setw(6) << setprecision(3) << stdZ; 879 emit newMessage(QByteArray(strD.str().c_str()), true); 834 if (nn > 0) { 835 836 mean /= nn; 837 838 // Compute the Deviation 839 // --------------------- 840 ColumnVector std(6); std = 0.0; 841 QVectorIterator<pppPos*> it2(_posAverage); 842 while (it2.hasNext()) { 843 pppPos* pp = it2.next(); 844 for (int ii = 0; ii < 6; ++ii) { 845 std[ii] += (pp->xn[ii] - mean[ii]) * (pp->xn[ii] - mean[ii]); 846 } 847 } 848 for (int ii = 0; ii < 6; ++ii) { 849 std[ii] = sqrt(std[ii] / nn); 850 } 851 852 ostringstream strD; strD.setf(ios::fixed); 853 strD << _staID.data() << " AVE-XYZ " 854 << epoData->tt.timestr(1) << " " 855 << setw(13) << setprecision(3) << mean[0] << " +- " 856 << setw(6) << setprecision(3) << std[0] << " " 857 << setw(14) << setprecision(3) << mean[1] << " +- " 858 << setw(6) << setprecision(3) << std[1] << " " 859 << setw(14) << setprecision(3) << mean[2] << " +- " 860 << setw(6) << setprecision(3) << std[2] << endl; 861 862 strD << _staID.data() << " AVE-NEU " 863 << epoData->tt.timestr(1) << " " 864 << setw(13) << setprecision(3) << mean[3] << " +- " 865 << setw(6) << setprecision(3) << std[3] << " " 866 << setw(14) << setprecision(3) << mean[4] << " +- " 867 << setw(6) << setprecision(3) << std[4] << " " 868 << setw(14) << setprecision(3) << mean[5] << " +- " 869 << setw(6) << setprecision(3) << std[5] << endl; 870 871 emit newMessage(QByteArray(strD.str().c_str()), true); 872 } 880 873 } 881 874 -
trunk/BNC/bncmodel.h
r2648 r2649 100 100 public: 101 101 bncTime time; 102 double xyz[3]; 103 double xyzRef[3]; 102 double xn[6]; 104 103 }; 105 104
Note:
See TracChangeset
for help on using the changeset viewer.