test_lanelet2_projection.py
Go to the documentation of this file.
1 import unittest
2 import lanelet2 # if we fail here, there is something wrong with lanelet2 registration
3 from lanelet2.core import (BasicPoint3d, GPSPoint)
4 from lanelet2.io import Origin
5 from lanelet2.projection import (UtmProjector,
6  GeocentricProjector,
7  LocalCartesianProjector)
8 
9 
10 class MatchingApiTestCase(unittest.TestCase):
11  origin_lat = 49.01439
12  origin_lon = 8.41722
13  origin_ele = 123.0
14  origin_gps_point = GPSPoint(origin_lat, origin_lon, origin_ele)
15 
16  # X, Y, Z with respect to the center of the earth
17  origin_x = 4146160.550580083
18  origin_y = 613525.0621995202
19  origin_z = 4791701.343249619
20  origin_ecef = BasicPoint3d(origin_x, origin_y, origin_z)
21 
22  # the larges number of decimal places for assertEqual comparisons
23  decimals = 8
24 
25  def test_UtmProjector(self):
26  # NOTE: the projected plane is on the WGS84 ellipsoid
27  origin = Origin(self.origin_lat, self.origin_lon)
28  utm_projector = UtmProjector(origin)
29 
30  utm_point = utm_projector.forward(self.origin_gps_point)
31  self.assertEqual(utm_point.x, 0.0)
32  self.assertEqual(utm_point.y, 0.0)
33  self.assertEqual(utm_point.z, self.origin_ele)
34 
35  utm_point = BasicPoint3d(0.0, 0.0, self.origin_ele)
36  gps_point = utm_projector.reverse(utm_point)
37  self.assertEqual(round(gps_point.lat, 5), self.origin_lat)
38  self.assertEqual(round(gps_point.lon, 5), self.origin_lon)
39  self.assertEqual(round(gps_point.ele, 5), self.origin_ele)
40 
42  # NOTE: the projected plane is tangential to the WGS84 ellipsoid
43  # but it is at the given elevation above the ellipsoid
44  origin = Origin(self.origin_lat, self.origin_lon, self.origin_ele)
45  local_cartesian_projector = LocalCartesianProjector(origin)
46 
47  local_cartesian_point = local_cartesian_projector.forward(
48  self.origin_gps_point)
49  self.assertEqual(local_cartesian_point.x, 0.0)
50  self.assertEqual(local_cartesian_point.y, 0.0)
51  self.assertEqual(local_cartesian_point.z, 0.0)
52 
53  local_cartesian_point = BasicPoint3d(0.0, 0.0, 0.0)
54  gps_point = local_cartesian_projector.reverse(local_cartesian_point)
55  self.assertEqual(round(gps_point.lat, self.decimals), self.origin_lat)
56  self.assertEqual(round(gps_point.lon, self.decimals), self.origin_lon)
57  self.assertEqual(round(gps_point.ele, self.decimals), self.origin_ele)
58 
60  geocentric_projector = GeocentricProjector()
61 
62  ecef_point = geocentric_projector.forward(self.origin_gps_point)
63  self.assertEqual(ecef_point.x, self.origin_ecef.x)
64  self.assertEqual(ecef_point.y, self.origin_ecef.y)
65  self.assertEqual(ecef_point.z, self.origin_ecef.z)
66 
67  gps_point = geocentric_projector.reverse(self.origin_ecef)
68  self.assertEqual(round(gps_point.lat, self.decimals), self.origin_lat)
69  self.assertEqual(round(gps_point.lon, self.decimals), self.origin_lon)
70  self.assertEqual(round(gps_point.ele, self.decimals), self.origin_ele)
71 
72 
73 if __name__ == '__main__':
74  unittest.main()
test_lanelet2_projection.MatchingApiTestCase.origin_lon
float origin_lon
Definition: test_lanelet2_projection.py:12
test_lanelet2_projection.MatchingApiTestCase.test_GeocentricProjector
def test_GeocentricProjector(self)
Definition: test_lanelet2_projection.py:59
test_lanelet2_projection.MatchingApiTestCase
Definition: test_lanelet2_projection.py:10
test_lanelet2_projection.MatchingApiTestCase.decimals
int decimals
Definition: test_lanelet2_projection.py:23
test_lanelet2_projection.MatchingApiTestCase.test_LocalCartesianProjector
def test_LocalCartesianProjector(self)
Definition: test_lanelet2_projection.py:41
test_lanelet2_projection.MatchingApiTestCase.origin_ele
float origin_ele
Definition: test_lanelet2_projection.py:13
test_lanelet2_projection.MatchingApiTestCase.origin_gps_point
origin_gps_point
Definition: test_lanelet2_projection.py:14
test_lanelet2_projection.MatchingApiTestCase.origin_lat
float origin_lat
Definition: test_lanelet2_projection.py:11
test_lanelet2_projection.MatchingApiTestCase.test_UtmProjector
def test_UtmProjector(self)
Definition: test_lanelet2_projection.py:25
test_lanelet2_projection.MatchingApiTestCase.origin_ecef
origin_ecef
Definition: test_lanelet2_projection.py:20


lanelet2_python
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:26:14