Loading isis/src/base/objs/LidarData/LidarData.truth +216 −136 Original line number Diff line number Diff line Loading @@ -14,6 +14,56 @@ dat ./test.dat Testing read(FileName) from binary data... LidarData: LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 radius: 1000 range: 65 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 51.2 adjustedLongitude: 101.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 radius: 1000 range: 75 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 52.2 adjustedLongitude: 102.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint3 latitude: 53 Loading @@ -22,7 +72,11 @@ LidarData: range: 85 sigmaRange:0.1 time: 2018-01-31T14:08:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 53.2 adjustedLongitude: 103.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 3 Loading @@ -43,7 +97,11 @@ LidarData: range: 95 sigmaRange:0.1 time: 2018-01-31T14:09:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 54.2 adjustedLongitude: 104.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 4 Loading @@ -64,7 +122,11 @@ LidarData: range: 105 sigmaRange:0.1 time: 2018-01-31T14:10:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 55.2 adjustedLongitude: 105.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 5 Loading @@ -78,23 +140,27 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 id: testLidarControlPoint6 latitude: 56 longitude: 106 radius: 1000 range: 65 range: 115 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 56.2 adjustedLongitude: 106.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 sample: 6 SN: SN_6-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 sample: 6 SN: SN_6-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -106,7 +172,11 @@ LidarData: range: 125 sigmaRange:0.1 time: 2018-01-31T14:12:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 57.2 adjustedLongitude: 107.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 7 Loading @@ -120,44 +190,52 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint9 latitude: 59 longitude: 109 id: testLidarControlPoint8 latitude: 58 longitude: 108 radius: 1000 range: 145 range: 135 sigmaRange:0.1 time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 58.2 adjustedLongitude: 108.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 9 SN: SN_9-0 sample: 8 SN: SN_8-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 9 SN: SN_9-1 sample: 8 SN: SN_8-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint8 latitude: 58 longitude: 108 id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 135 range: 145 sigmaRange:0.1 time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 59.2 adjustedLongitude: 109.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 8 SN: SN_8-0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 8 SN: SN_8-1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -169,7 +247,11 @@ LidarData: range: 155 sigmaRange:0.1 time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 60.2 adjustedLongitude: 110.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 10 Loading @@ -182,52 +264,60 @@ LidarData: #END_ControlMeasure. #END_LidarControlPoint. Testing read(FileName) from JSON data... LidarData: LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 id: testLidarControlPoint1 latitude: 51 longitude: 101 radius: 1000 range: 75 range: 65 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 51.2 adjustedLongitude: 101.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 sample: 1 SN: SN_1-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 sample: 1 SN: SN_1-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint6 latitude: 56 longitude: 106 id: testLidarControlPoint2 latitude: 52 longitude: 102 radius: 1000 range: 115 range: 75 sigmaRange:0.1 time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 52.2 adjustedLongitude: 102.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 6 SN: SN_6-0 sample: 2 SN: SN_2-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 6 SN: SN_6-1 sample: 2 SN: SN_2-1 #END_ControlMeasure. #END_LidarControlPoint. Testing read(FileName) from JSON data... LidarData: LidarControlPoint: id: testLidarControlPoint3 latitude: 53 Loading @@ -236,7 +326,11 @@ LidarData: range: 85 sigmaRange:0.1 time: 2018-01-31T14:08:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 53.2 adjustedLongitude: 103.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 3 Loading @@ -257,7 +351,11 @@ LidarData: range: 95 sigmaRange:0.1 time: 2018-01-31T14:09:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 54.2 adjustedLongitude: 104.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 4 Loading @@ -278,7 +376,11 @@ LidarData: range: 105 sigmaRange:0.1 time: 2018-01-31T14:10:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 55.2 adjustedLongitude: 105.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 5 Loading @@ -292,23 +394,27 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 id: testLidarControlPoint6 latitude: 56 longitude: 106 radius: 1000 range: 65 range: 115 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 56.2 adjustedLongitude: 106.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 sample: 6 SN: SN_6-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 sample: 6 SN: SN_6-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -320,7 +426,11 @@ LidarData: range: 125 sigmaRange:0.1 time: 2018-01-31T14:12:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 57.2 adjustedLongitude: 107.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 7 Loading @@ -333,27 +443,6 @@ LidarData: #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 145 sigmaRange:0.1 time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) ControlMeasure: line: 0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint8 latitude: 58 Loading @@ -362,7 +451,11 @@ LidarData: range: 135 sigmaRange:0.1 time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 58.2 adjustedLongitude: 108.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 8 Loading @@ -376,65 +469,52 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint10 latitude: 60 longitude: 110 radius: 1000 range: 155 sigmaRange:0.1 time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) ControlMeasure: line: 0 sample: 10 SN: SN_10-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 10 SN: SN_10-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 75 range: 145 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 59.2 adjustedLongitude: 109.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint6 latitude: 56 longitude: 106 id: testLidarControlPoint10 latitude: 60 longitude: 110 radius: 1000 range: 115 range: 155 sigmaRange:0.1 time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 60.2 adjustedLongitude: 110.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 6 SN: SN_6-0 sample: 10 SN: SN_10-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 6 SN: SN_6-1 sample: 10 SN: SN_10-1 #END_ControlMeasure. #END_LidarControlPoint. Loading isis/src/base/objs/LidarData/unitTest.cpp +57 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,11 @@ void print(const LidarData &lidarData); * @internal * @history 2018-01-29 Ian Humphrey - original version. * @history 2018-01-31 Ian Humphrey - added tests for points() and insert(). * @history 2018-03-28 Debbie A Cook - added apriori surface point and * adjusted surface point to the LidarData test. Also * added a sort of the control points before outputting * them to compare to make sure they are in a * consistent order. */ int main(int argc, char *argv[]) { // Set up our unit test preferences Loading Loading @@ -72,14 +77,19 @@ int main(int argc, char *argv[]) { lat = 50.0; lon = 100.0; rad = 1000.0; double latAd = 50.2; double lonAd = 100.1; double radAd = 1001.0; boost::numeric::ublas::symmetric_matrix<double, upper> aprioriMatrix(3); aprioriMatrix.clear(); aprioriMatrix(0, 0) = 0.028656965032217; aprioriMatrix(1, 1) = 0.031198128120272; aprioriMatrix(2, 2) = 38.454887335682053718134171237789; // Angle(1.64192315,Angle::Degrees), // Angle(1.78752107, Angle::Degrees), // Distance(38.454887335682053718134171237789, Distance::Meters)); aprioriMatrix(0, 0) = .01; aprioriMatrix(1, 1) = 0.0121; aprioriMatrix(2, 2) = 100.; boost::numeric::ublas::symmetric_matrix<double, upper> adjustedMatrix(3); adjustedMatrix.clear(); adjustedMatrix(0, 0) = .02; adjustedMatrix(1, 1) = 0.0144; adjustedMatrix(2, 2) = 81.; for (int i = 1; i < 11; i++) { time += 60.0; Loading @@ -94,10 +104,19 @@ int main(int argc, char *argv[]) { SurfacePoint sp(Latitude(lat, Angle::Units::Degrees), Longitude(lon, Angle::Units::Degrees), Distance(rad, Distance::Units::Kilometers)); latAd += 1.0; lonAd += 1.0; SurfacePoint sp2(Latitude(latAd, Angle::Units::Degrees), Longitude(lonAd, Angle::Units::Degrees), Distance(radAd, Distance::Units::Kilometers)); sp.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters)); sp.SetSphericalMatrix(aprioriMatrix); lcp->SetAprioriSurfacePoint(sp); sp2.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters)); sp2.SetSphericalMatrix(adjustedMatrix); lcp->SetAdjustedSurfacePoint(sp2); for (int j = 0; j < 2; j++) { ControlMeasure *measure = new ControlMeasure(); measure->SetCoordinate((double) i, (double) j); Loading Loading @@ -137,15 +156,34 @@ int main(int argc, char *argv[]) { print(fromJson); cout << endl; // Clean up remove("test.dat"); remove("test.json"); } // int cmp (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) { int cmpLessThan (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) { // Trim off the id name and only keep the number to compare int num1 = ((lcp1->GetId()).remove(0, 21)).toInt(); int num2 = ((lcp2->GetId()).remove(0, 21)).toInt(); return num1 < num2; } void print(const LidarData &lidarData) { QList< QSharedPointer<LidarControlPoint> > points = lidarData.points(); // Order the control points so test runs will list points in a consistent order qSort(points.begin(), points.end(), cmpLessThan); std::cout << "LidarData:" << std::endl; foreach (QSharedPointer<LidarControlPoint> point, points) { std::cout << "\tLidarControlPoint:" << std::endl; std::cout << "\t\tid: " << point->GetId() << std::endl;; // Print the apriori surface point SurfacePoint sp = point->GetAprioriSurfacePoint(); double lat, lon, rad; lat = sp.GetLatitude().planetocentric(Angle::Units::Degrees); Loading @@ -160,6 +198,19 @@ void print(const LidarData &lidarData) { // std::cout << "\t\ttime: " << point->time().Et() << std::endl; std::cout << "\t\ttime: " << point->time().UTC() << std::endl; std::cout << "\t\tmatrix: " << aprioriMatrix << std::endl; // Print the adjusted surface point SurfacePoint sp2 = point->GetAdjustedSurfacePoint(); double lat2, lon2, rad2; lat2 = sp2.GetLatitude().planetocentric(Angle::Units::Degrees); lon2 = sp2.GetLongitude().positiveEast(Angle::Units::Degrees); rad2 = sp2.GetLocalRadius().kilometers(); symmetric_matrix<double, upper> adjustedMatrix = sp2.GetSphericalMatrix(); std::cout << "\t\tadjustedLatitude: " << lat2 << std::endl; std::cout << "\t\tadjustedLongitude: " << lon2 << std::endl; std::cout << "\t\tadjustedRadius: " << rad2 << std::endl; std::cout << "\t\tadjustedMatrix: " << adjustedMatrix << std::endl; QList<ControlMeasure *> measures = point->getMeasures(); foreach (ControlMeasure *measure, measures) { std::cout << "\t\tControlMeasure: " << std::endl; Loading Loading
isis/src/base/objs/LidarData/LidarData.truth +216 −136 Original line number Diff line number Diff line Loading @@ -14,6 +14,56 @@ dat ./test.dat Testing read(FileName) from binary data... LidarData: LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 radius: 1000 range: 65 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 51.2 adjustedLongitude: 101.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 radius: 1000 range: 75 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 52.2 adjustedLongitude: 102.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint3 latitude: 53 Loading @@ -22,7 +72,11 @@ LidarData: range: 85 sigmaRange:0.1 time: 2018-01-31T14:08:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 53.2 adjustedLongitude: 103.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 3 Loading @@ -43,7 +97,11 @@ LidarData: range: 95 sigmaRange:0.1 time: 2018-01-31T14:09:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 54.2 adjustedLongitude: 104.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 4 Loading @@ -64,7 +122,11 @@ LidarData: range: 105 sigmaRange:0.1 time: 2018-01-31T14:10:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 55.2 adjustedLongitude: 105.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 5 Loading @@ -78,23 +140,27 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 id: testLidarControlPoint6 latitude: 56 longitude: 106 radius: 1000 range: 65 range: 115 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 56.2 adjustedLongitude: 106.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 sample: 6 SN: SN_6-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 sample: 6 SN: SN_6-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -106,7 +172,11 @@ LidarData: range: 125 sigmaRange:0.1 time: 2018-01-31T14:12:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 57.2 adjustedLongitude: 107.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 7 Loading @@ -120,44 +190,52 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint9 latitude: 59 longitude: 109 id: testLidarControlPoint8 latitude: 58 longitude: 108 radius: 1000 range: 145 range: 135 sigmaRange:0.1 time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 58.2 adjustedLongitude: 108.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 9 SN: SN_9-0 sample: 8 SN: SN_8-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 9 SN: SN_9-1 sample: 8 SN: SN_8-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint8 latitude: 58 longitude: 108 id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 135 range: 145 sigmaRange:0.1 time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 59.2 adjustedLongitude: 109.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 8 SN: SN_8-0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 8 SN: SN_8-1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -169,7 +247,11 @@ LidarData: range: 155 sigmaRange:0.1 time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 60.2 adjustedLongitude: 110.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 10 Loading @@ -182,52 +264,60 @@ LidarData: #END_ControlMeasure. #END_LidarControlPoint. Testing read(FileName) from JSON data... LidarData: LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 id: testLidarControlPoint1 latitude: 51 longitude: 101 radius: 1000 range: 75 range: 65 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 51.2 adjustedLongitude: 101.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 sample: 1 SN: SN_1-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 sample: 1 SN: SN_1-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint6 latitude: 56 longitude: 106 id: testLidarControlPoint2 latitude: 52 longitude: 102 radius: 1000 range: 115 range: 75 sigmaRange:0.1 time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 52.2 adjustedLongitude: 102.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 6 SN: SN_6-0 sample: 2 SN: SN_2-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 6 SN: SN_6-1 sample: 2 SN: SN_2-1 #END_ControlMeasure. #END_LidarControlPoint. Testing read(FileName) from JSON data... LidarData: LidarControlPoint: id: testLidarControlPoint3 latitude: 53 Loading @@ -236,7 +326,11 @@ LidarData: range: 85 sigmaRange:0.1 time: 2018-01-31T14:08:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 53.2 adjustedLongitude: 103.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 3 Loading @@ -257,7 +351,11 @@ LidarData: range: 95 sigmaRange:0.1 time: 2018-01-31T14:09:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 54.2 adjustedLongitude: 104.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 4 Loading @@ -278,7 +376,11 @@ LidarData: range: 105 sigmaRange:0.1 time: 2018-01-31T14:10:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 55.2 adjustedLongitude: 105.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 5 Loading @@ -292,23 +394,27 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint1 latitude: 51 longitude: 101 id: testLidarControlPoint6 latitude: 56 longitude: 106 radius: 1000 range: 65 range: 115 sigmaRange:0.1 time: 2018-01-31T14:06:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 56.2 adjustedLongitude: 106.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 1 SN: SN_1-0 sample: 6 SN: SN_6-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 1 SN: SN_1-1 sample: 6 SN: SN_6-1 #END_ControlMeasure. #END_LidarControlPoint. Loading @@ -320,7 +426,11 @@ LidarData: range: 125 sigmaRange:0.1 time: 2018-01-31T14:12:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 57.2 adjustedLongitude: 107.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 7 Loading @@ -333,27 +443,6 @@ LidarData: #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 145 sigmaRange:0.1 time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) ControlMeasure: line: 0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint8 latitude: 58 Loading @@ -362,7 +451,11 @@ LidarData: range: 135 sigmaRange:0.1 time: 2018-01-31T14:13:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 58.2 adjustedLongitude: 108.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 8 Loading @@ -376,65 +469,52 @@ LidarData: #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint10 latitude: 60 longitude: 110 radius: 1000 range: 155 sigmaRange:0.1 time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) ControlMeasure: line: 0 sample: 10 SN: SN_10-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 10 SN: SN_10-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint2 latitude: 52 longitude: 102 id: testLidarControlPoint9 latitude: 59 longitude: 109 radius: 1000 range: 75 range: 145 sigmaRange:0.1 time: 2018-01-31T14:07:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:14:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 59.2 adjustedLongitude: 109.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 2 SN: SN_2-0 sample: 9 SN: SN_9-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 2 SN: SN_2-1 sample: 9 SN: SN_9-1 #END_ControlMeasure. #END_LidarControlPoint. LidarControlPoint: id: testLidarControlPoint6 latitude: 56 longitude: 106 id: testLidarControlPoint10 latitude: 60 longitude: 110 radius: 1000 range: 115 range: 155 sigmaRange:0.1 time: 2018-01-31T14:11:00.1233999 matrix: [3,3]((0.028657,0,0),(0,0.0311981,0),(0,0,38.4549)) time: 2018-01-31T14:15:00.1233998 matrix: [3,3]((0.01,0,0),(0,0.0121,0),(0,0,100)) adjustedLatitude: 60.2 adjustedLongitude: 110.1 adjustedRadius: 1000 adjustedMatrix: [3,3]((0.02,0,0),(0,0.0144,0),(0,0,81)) ControlMeasure: line: 0 sample: 6 SN: SN_6-0 sample: 10 SN: SN_10-0 #END_ControlMeasure. ControlMeasure: line: 1 sample: 6 SN: SN_6-1 sample: 10 SN: SN_10-1 #END_ControlMeasure. #END_LidarControlPoint. Loading
isis/src/base/objs/LidarData/unitTest.cpp +57 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,11 @@ void print(const LidarData &lidarData); * @internal * @history 2018-01-29 Ian Humphrey - original version. * @history 2018-01-31 Ian Humphrey - added tests for points() and insert(). * @history 2018-03-28 Debbie A Cook - added apriori surface point and * adjusted surface point to the LidarData test. Also * added a sort of the control points before outputting * them to compare to make sure they are in a * consistent order. */ int main(int argc, char *argv[]) { // Set up our unit test preferences Loading Loading @@ -72,14 +77,19 @@ int main(int argc, char *argv[]) { lat = 50.0; lon = 100.0; rad = 1000.0; double latAd = 50.2; double lonAd = 100.1; double radAd = 1001.0; boost::numeric::ublas::symmetric_matrix<double, upper> aprioriMatrix(3); aprioriMatrix.clear(); aprioriMatrix(0, 0) = 0.028656965032217; aprioriMatrix(1, 1) = 0.031198128120272; aprioriMatrix(2, 2) = 38.454887335682053718134171237789; // Angle(1.64192315,Angle::Degrees), // Angle(1.78752107, Angle::Degrees), // Distance(38.454887335682053718134171237789, Distance::Meters)); aprioriMatrix(0, 0) = .01; aprioriMatrix(1, 1) = 0.0121; aprioriMatrix(2, 2) = 100.; boost::numeric::ublas::symmetric_matrix<double, upper> adjustedMatrix(3); adjustedMatrix.clear(); adjustedMatrix(0, 0) = .02; adjustedMatrix(1, 1) = 0.0144; adjustedMatrix(2, 2) = 81.; for (int i = 1; i < 11; i++) { time += 60.0; Loading @@ -94,10 +104,19 @@ int main(int argc, char *argv[]) { SurfacePoint sp(Latitude(lat, Angle::Units::Degrees), Longitude(lon, Angle::Units::Degrees), Distance(rad, Distance::Units::Kilometers)); latAd += 1.0; lonAd += 1.0; SurfacePoint sp2(Latitude(latAd, Angle::Units::Degrees), Longitude(lonAd, Angle::Units::Degrees), Distance(radAd, Distance::Units::Kilometers)); sp.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters)); sp.SetSphericalMatrix(aprioriMatrix); lcp->SetAprioriSurfacePoint(sp); sp2.SetRadii(Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters), Distance(1000.0, Distance::Meters)); sp2.SetSphericalMatrix(adjustedMatrix); lcp->SetAdjustedSurfacePoint(sp2); for (int j = 0; j < 2; j++) { ControlMeasure *measure = new ControlMeasure(); measure->SetCoordinate((double) i, (double) j); Loading Loading @@ -137,15 +156,34 @@ int main(int argc, char *argv[]) { print(fromJson); cout << endl; // Clean up remove("test.dat"); remove("test.json"); } // int cmp (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) { int cmpLessThan (QSharedPointer<LidarControlPoint> lcp1, QSharedPointer<LidarControlPoint> lcp2) { // Trim off the id name and only keep the number to compare int num1 = ((lcp1->GetId()).remove(0, 21)).toInt(); int num2 = ((lcp2->GetId()).remove(0, 21)).toInt(); return num1 < num2; } void print(const LidarData &lidarData) { QList< QSharedPointer<LidarControlPoint> > points = lidarData.points(); // Order the control points so test runs will list points in a consistent order qSort(points.begin(), points.end(), cmpLessThan); std::cout << "LidarData:" << std::endl; foreach (QSharedPointer<LidarControlPoint> point, points) { std::cout << "\tLidarControlPoint:" << std::endl; std::cout << "\t\tid: " << point->GetId() << std::endl;; // Print the apriori surface point SurfacePoint sp = point->GetAprioriSurfacePoint(); double lat, lon, rad; lat = sp.GetLatitude().planetocentric(Angle::Units::Degrees); Loading @@ -160,6 +198,19 @@ void print(const LidarData &lidarData) { // std::cout << "\t\ttime: " << point->time().Et() << std::endl; std::cout << "\t\ttime: " << point->time().UTC() << std::endl; std::cout << "\t\tmatrix: " << aprioriMatrix << std::endl; // Print the adjusted surface point SurfacePoint sp2 = point->GetAdjustedSurfacePoint(); double lat2, lon2, rad2; lat2 = sp2.GetLatitude().planetocentric(Angle::Units::Degrees); lon2 = sp2.GetLongitude().positiveEast(Angle::Units::Degrees); rad2 = sp2.GetLocalRadius().kilometers(); symmetric_matrix<double, upper> adjustedMatrix = sp2.GetSphericalMatrix(); std::cout << "\t\tadjustedLatitude: " << lat2 << std::endl; std::cout << "\t\tadjustedLongitude: " << lon2 << std::endl; std::cout << "\t\tadjustedRadius: " << rad2 << std::endl; std::cout << "\t\tadjustedMatrix: " << adjustedMatrix << std::endl; QList<ControlMeasure *> measures = point->getMeasures(); foreach (ControlMeasure *measure, measures) { std::cout << "\t\tControlMeasure: " << std::endl; Loading