source: inundation/pyvolution/coordinate_transforms/test_redfearn.py @ 1797

Last change on this file since 1797 was 928, checked in by ole, 20 years ago

Incorporated variable false eastings and northings (just in case:-).

File size: 4.3 KB
Line 
1
2#Test of redfearns formula. Tests can be verified at
3#
4#http://www.cellspark.com/UTM.html
5#http://www.ga.gov.au/nmd/geodesy/datums/redfearn_geo_to_grid.jsp
6
7
8import unittest
9from redfearn import *
10from Numeric import allclose
11
12
13#-------------------------------------------------------------
14
15class TestCase(unittest.TestCase):
16
17    def test_decimal_degrees_conversion(Self):
18        lat = degminsec2decimal_degrees(-37,39,10.15610)
19        lon = degminsec2decimal_degrees(143,55,35.38390) 
20        assert allclose(lat, -37.65282114)
21        assert allclose(lon, 143.9264955)
22
23        dd,mm,ss = decimal_degrees2degminsec(-37.65282114)
24        assert dd==-37
25        assert mm==39
26        assert allclose(ss, 10.15610)
27
28        dd,mm,ss = decimal_degrees2degminsec(143.9264955)
29        assert dd==143
30        assert mm==55
31        assert allclose(ss, 35.38390) 
32
33
34    def test_UTM_1(self):
35        #latitude:  -37 39' 10.15610"
36        #Longitude: 143 55' 35.38390"
37        #Site Name:    GDA-MGA: (UTM with GRS80 ellipsoid)
38        #Zone:   54   
39        #Easting:  758173.797  Northing: 5828674.340
40        #Latitude:   -37  39 ' 10.15610 ''  Longitude: 143  55 ' 35.38390 ''
41        #Grid Convergence:  1  47 ' 19.36 ''  Point Scale: 1.00042107
42
43        lat = degminsec2decimal_degrees(-37,39,10.15610)
44        lon = degminsec2decimal_degrees(143,55,35.38390) 
45        assert allclose(lat, -37.65282114)
46        assert allclose(lon, 143.9264955)
47
48
49        zone, easting, northing = redfearn(lat,lon)
50
51        assert zone == 54
52        assert allclose(easting, 758173.797)
53        assert allclose(northing, 5828674.340)
54
55
56    def test_UTM_2(self):
57        #TEST 2
58
59        #Latitude:  -37 57 03.7203
60        #Longitude: 144 25 29.5244
61        #Zone:   55   
62        #Easting:  273741.297  Northing: 5796489.777
63        #Latitude:   -37  57 ' 3.72030 ''  Longitude: 144  25 ' 29.52440 ''
64        #Grid Convergence:  -1  35 ' 3.65 ''  Point Scale: 1.00023056
65
66        lat = degminsec2decimal_degrees(-37,57,03.7203)
67        lon = degminsec2decimal_degrees(144,25,29.5244) 
68        #print lat, lon
69
70        zone, easting, northing = redfearn(lat,lon)
71
72        assert zone == 55
73        assert allclose(easting, 273741.297)
74        assert allclose(northing, 5796489.777)
75
76       
77    def test_UTM_3(self):
78        #Test 3
79        lat = degminsec2decimal_degrees(-60,0,0)
80        lon = degminsec2decimal_degrees(130,0,0) 
81
82        zone, easting, northing = redfearn(lat,lon)
83        #print zone, easting, northing
84
85        assert zone == 52
86        assert allclose(easting, 555776.267)
87        assert allclose(northing, 3348167.264)
88
89
90    def test_UTM_4(self):
91        #Test 4 (Kobenhavn, Northern hemisphere)
92        lat = 55.70248
93        dd,mm,ss = decimal_degrees2degminsec(lat)
94
95        lon = 12.58364
96        dd,mm,ss = decimal_degrees2degminsec(lon)
97
98        zone, easting, northing = redfearn(lat,lon)
99
100
101        assert zone == 33
102        assert allclose(easting, 348157.631)
103        assert allclose(northing, 6175612.993) 
104
105
106    def test_UTM_5(self):
107        #Test 5 (Wollongong)
108
109        lat = degminsec2decimal_degrees(-34,30,0.)
110        lon = degminsec2decimal_degrees(150,55,0.) 
111       
112        zone, easting, northing = redfearn(lat,lon)
113
114        #print zone, easting, northing
115
116        assert zone == 56
117        assert allclose(easting, 308728.009)
118        assert allclose(northing, 6180432.601)
119
120
121    #def test_UTM_6(self):
122    #    """Test 6 (Don's Wollongong file's ref point)
123    #    """
124    #
125    #    lat = -34.490286785873
126    #    lon = 150.79712139578
127    #
128    #    dd,mm,ss = decimal_degrees2degminsec(lat)
129    #    print dd,mm,ss
130    #    dd,mm,ss = decimal_degrees2degminsec(lon)       
131    #    print dd,mm,ss
132    #     
133    #    zone, easting, northing = redfearn(lat,lon)
134    #
135    #    print zone, easting, northing
136    #
137    #    assert zone == 56
138    #    #assert allclose(easting, 297717.36468927) #out by 10m
139    #    #assert allclose(northing, 6181725.1724276)
140
141
142
143#-------------------------------------------------------------
144if __name__ == "__main__":
145
146    mysuite = unittest.makeSuite(TestCase,'test')
147    runner = unittest.TextTestRunner()
148    runner.run(mysuite)
Note: See TracBrowser for help on using the repository browser.