Exemple #1
0
 def test_distance_equator_ns(self):
     (d1, fwd, rev) = geo.vincenty_inverse(  0  , 0,  1  , 0 )
     (d2, fwd, rev) = geo.vincenty_inverse( -0.5, 0,  0.5, 0 )
     (d3, fwd, rev) = geo.vincenty_inverse(  0.5, 0, -0.5, 0 )
     self.assertAlmostEqual( d1, 110574.389, places=3 )
     self.assertAlmostEqual( d1, d2 + error, places=3 )
     self.assertAlmostEqual( d1, d3 + error, places=3 )
Exemple #2
0
 def test_distance_date_line_ew(self):
     # All of these distances should be approximatly equal
     (d1, fwd, rev) = geo.vincenty_inverse( 0, 180, 0, 179)
     self.assertAlmostEqual( d1, 111319.491, places=3 )
     (d2, fwd, rev) = geo.vincenty_inverse( 0, 180, 0, -179)
     (d3, fwd, rev) = geo.vincenty_inverse( 0, 179.5, 0, -179.5)
     self.assertAlmostEqual( d1, d2, places=3 )
     self.assertAlmostEqual( d1, d3, places=3 )
Exemple #3
0
 def test_distance_date_line_ns(self):
     (d1, fwd, rev) = geo.vincenty_inverse( 0, 180, 1, 180)
     (d2, fwd, rev) = geo.vincenty_inverse( 0, -180, 1, -180)
     (d3, fwd, rev) = geo.vincenty_inverse( -0.5, 180, 0.5, 180)
     
     self.assertAlmostEqual( d1, 110574.389, places=3 )
     self.assertAlmostEqual( d1, d2, places=3 )
     
     # Known error in this scenario? 8cm
     self.assertAlmostEqual( d1, d3 + error, places=3 )
Exemple #4
0
 def test_distance_poles(self):
     (d1, fwd, rev) = geo.vincenty_inverse( 90  , 0 , 89  , 180 ) 
     (d2, fwd, rev) = geo.vincenty_inverse( 90  , 0 , 89  , 76  )
     (d3, fwd, rev) = geo.vincenty_inverse( 89.5, 90, 89.5, -90 )
     (d4, fwd, rev) = geo.vincenty_inverse( 89.5, 0 , 89.5, 180 )
     (d5, fwd, rev) = geo.vincenty_inverse( 89.5, 0 , 89.5, -180)
     (d6, fwd, rev) = geo.vincenty_inverse( 90  , 50, 89  , 76  )
     
     self.assertAlmostEqual( d1, 111693.865, places=3 )
     self.assertAlmostEqual( d1, d2, places=3 )
     # Again, known errors of about 8cm when crossing lat
     
     self.assertAlmostEqual( d1, d3 - error - 0.001, places=3 )
     self.assertAlmostEqual( d1, d4 - error - 0.001, places=3 )
     self.assertAlmostEqual( d1, d5 - error - 0.001, places=3 )
     self.assertAlmostEqual( d1, d6, places=3 )
Exemple #5
0
 def test_bearing_diag(self):
     error = 0.1924
     (d1, fwd, rev) = geo.vincenty_inverse( -0.001  , -0.001 , 0.001  , 0.001 )
     self.assertAlmostEqual( fwd, 45 + error , places = 3)
Exemple #6
0
 def test_bearing_ns(self):
     (d1, fwd, rev) = geo.vincenty_inverse( 0  , 0 , 1  , 0 )
     self.assertAlmostEqual( fwd, 0 )
Exemple #7
0
 def test_bearing_ew(self):
     (d1, fwd, rev) = geo.vincenty_inverse( 0  , 0 , 0  , 1 )
     self.assertAlmostEqual( fwd, 90 )
     self.assertAlmostEqual( rev, 90 )
Exemple #8
0
 def test_direct_inverse(self):
     (d1, fwd, rev1) = geo.vincenty_inverse(  0  , 0,  1  , 0 )
     (lat, lon, rev2) = geo.vincenty_direct( 0,0,d1,fwd)
     self.assertAlmostEqual( lat,1, places=3 )
     self.assertAlmostEqual( lon,0, places=3 )
     self.assertAlmostEqual( rev1,rev2, places=3 )
Exemple #9
0
 def test_distance_meridian_cross_ew(self):
     (d, fwd, rev) = geo.vincenty_inverse( 0, -0.5, 0, 0.5)
     self.assertAlmostEqual( d, 111319.491, places=3 )
     (drev, fwd, rev) = geo.vincenty_inverse( 0, 0.5, 0, -0.5)
     self.assertAlmostEqual( d, drev, places=3 )
Exemple #10
0
 def test_distance_equator_ew(self):
     # 1 degree of longitude at the equator, to the east of prime
     (d, fwd, rev) = geo.vincenty_inverse( 0, 0, 0, 1 )
     self.assertAlmostEqual( d, 111319.491, places=3 )
Exemple #11
0
 def test_bearing_pole(self):
     (d1, fwd1, rev) = geo.vincenty_inverse( 89  , 90  , 90  , 0 )
     (d1, fwd2, rev) = geo.vincenty_inverse( 89  , 270  , 90  , 0 )
     self.assertAlmostEqual( round(fwd1,3) % 360, 0 )
     self.assertAlmostEqual( round(fwd2,3) % 360, 0 )