def test_grid2geo(self): abs_path = os.path.abspath(os.path.dirname(__file__)) testdata = read_dnacoord(os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() latcomp, longcomp, psf, grid_conv = grid2geo(coord.zone, coord.easting, coord.northing) assert (abs(latcomp - coord.lat) < 5e-9) assert (abs(longcomp - coord.long) < 5e-9)
def test_geo2grid(self): abs_path = os.path.abspath(os.path.dirname(__file__)) testdata = read_dnacoord(os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() hem, zonecomp, eastcomp, northcomp, psf, grid_conv = geo2grid(coord.lat, coord.long) assert (zonecomp == coord.zone) assert (abs(eastcomp - coord.easting) < 4e-4) assert (abs(northcomp - coord.northing) < 4e-4)
def test_xyz2llh(self): abs_path = os.path.abspath(os.path.dirname(__file__)) testdata = read_dnacoord(os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() latcomp, longcomp, ell_htcomp = xyz2llh(coord.x, coord.y, coord.z) assert (abs(latcomp - coord.lat) < 2e-9) assert (abs(longcomp - coord.long) < 2e-9) assert (abs(ell_htcomp - coord.ell_ht) < 1e-4)
def test_llh2xyz(self): abs_path = os.path.abspath(os.path.dirname(__file__)) testdata = read_dnacoord(os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() xcomp, ycomp, zcomp = llh2xyz(coord.lat, coord.long, coord.ell_ht) assert (abs(coord.x - xcomp) < 2e-4) assert (abs(coord.y - ycomp) < 2e-4) assert (abs(coord.z - zcomp) < 2e-4)
def test_geo2grid(self): abs_path = os.path.abspath(os.path.dirname(__file__)) # Test various coordinates in Australia testdata = read_dnacoord( os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() hem, zonecomp, eastcomp, northcomp, psf, grid_conv = geo2grid( coord.lat, coord.long) self.assertEqual(zonecomp, coord.zone) self.assertLess(abs(eastcomp - coord.easting), 4e-4) self.assertLess((northcomp - coord.northing), 4e-4) # Test North and South Hemisphere Output north_ex = (DMSAngle(34, 57, 00.79653).dec(), DMSAngle(117, 48, 36.68783).dec()) south_ex = (DMSAngle(-34, 57, 00.79653).dec(), DMSAngle(117, 48, 36.68783).dec()) north_grid = geo2grid(north_ex[0], north_ex[1]) south_grid = geo2grid(south_ex[0], south_ex[1]) self.assertEqual(north_grid[0], 'North') self.assertEqual(south_grid[0], 'South') self.assertEqual(north_grid[1], south_grid[1]) # Zone self.assertEqual(north_grid[2], south_grid[2]) # Easting self.assertEqual(north_grid[3], 10000000 - south_grid[3]) # Northing self.assertEqual(north_grid[4], south_grid[4]) # PSF self.assertEqual(north_grid[5], -south_grid[5]) # Grid Convergence # Test Input Validation with self.assertRaises(ValueError): geo2grid(0, 45, -1) with self.assertRaises(ValueError): geo2grid(0, 45, 61) with self.assertRaises(ValueError): geo2grid(-81, 45, 0) with self.assertRaises(ValueError): geo2grid(85, 45, 0) with self.assertRaises(ValueError): geo2grid(0, -181, 0) with self.assertRaises(ValueError): geo2grid(0, 181, 0)
def test_grid2geo(self): abs_path = os.path.abspath(os.path.dirname(__file__)) testdata = read_dnacoord( os.path.join(abs_path, 'resources/natadjust_rvs_example.dat')) for coord in testdata: coord.converthptodd() latcomp, longcomp, psf, grid_conv = grid2geo( coord.zone, coord.easting, coord.northing) self.assertLess(abs(latcomp - coord.lat), 5e-9) self.assertLess(abs(longcomp - coord.long), 5e-9) # Test North and South Hemisphere Output north_ex = (50, 573976.8747, 3867822.4539, 'North') south_ex = (50, 573976.8747, 6132177.5461, 'South') north_geo = grid2geo(*north_ex) south_geo = grid2geo(*south_ex) self.assertEqual(north_geo[0], -south_geo[0]) self.assertEqual(north_geo[1], south_geo[1]) self.assertEqual(north_geo[2], south_geo[2]) self.assertEqual(north_geo[3], -south_geo[3]) # Test Input Validation with self.assertRaises(ValueError): grid2geo(-1, 0, 500000) with self.assertRaises(ValueError): grid2geo(61, 0, 500000) with self.assertRaises(ValueError): grid2geo(0, -2830001, 500000) with self.assertRaises(ValueError): grid2geo(0, 3830001, 500000) with self.assertRaises(ValueError): grid2geo(0, 0, -1) with self.assertRaises(ValueError): grid2geo(0, 0, 10000001) with self.assertRaises(ValueError): grid2geo(0, 0, 500000, 'fail')