Changeset 5662


Ignore:
Timestamp:
Aug 15, 2008, 2:48:00 PM (16 years ago)
Author:
kristy
Message:

Update so that we can pass a different zone into the redfearn equation (test_UTM_6_nonstandard_projection)

Location:
anuga_core/source/anuga/coordinate_transforms
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/coordinate_transforms/redfearn.py

    r5654 r5662  
    139139
    140140    #Zone
    141     zone = int((lon - longitude_of_western_edge_zone0)/zone_width)
     141    if zone is None:
     142        zone = int((lon - longitude_of_western_edge_zone0)/zone_width)
     143
    142144    central_meridian = zone*zone_width+longitude_of_central_meridian_zone0
    143145
     
    150152    omega7 = omega*omega6
    151153    omega8 = omega4*omega4
    152    
    153    
     154     
    154155    #Northing
    155156    term1 = nu*sinphi*cosphi*omega2/2 
  • anuga_core/source/anuga/coordinate_transforms/test_redfearn.py

    r4202 r5662  
    118118        assert allclose(easting, 308728.009)
    119119        assert allclose(northing, 6180432.601)
     120
     121    def test_UTM_6_nonstandard_projection(self):
     122        #Test 6 (Geraldton, WA)
     123
     124        #First test native projection (zone 50)
     125        zone, easting, northing = redfearn(-29.233299999,114.05)
     126
     127        assert zone == 50
     128        assert allclose(easting, 213251.040253)
     129        assert allclose(northing, 6762559.15978)
     130
     131        #Testing using the native zone
     132        zone, easting, northing = redfearn(-29.233299999,114.05, zone=50)
     133
     134        assert zone == 50
     135        assert allclose(easting, 213251.040253)
     136        assert allclose(northing, 6762559.15978)
     137
     138        #Then project to zone 49
     139        zone, easting, northing = redfearn(-29.233299999,114.05,zone=49)
     140
     141        assert zone == 49
     142        assert allclose(easting, 796474.020057)
     143        assert allclose(northing, 6762310.25162)
     144
     145       
     146
     147       
     148
     149        #First test native projection (zone 49)
     150        zone, easting, northing = redfearn(-29.1333,113.9667)
     151
     152        assert zone == 49
     153        assert allclose(easting, 788653.192779)
     154        assert allclose(northing, 6773605.46384)
     155
     156        #Then project to zone 50
     157        zone, easting, northing = redfearn(-29.1333,113.9667,zone=50)
     158
     159        assert zone == 50
     160        assert allclose(easting, 204863.606467)
     161        assert allclose(northing, 6773440.04726)
     162
     163        #Testing point on zone boundary
     164        #First test native projection (zone 50)
     165        zone, easting, northing = redfearn(-29.1667,114)
     166
     167        assert zone == 50
     168        assert allclose(easting, 208199.768268)
     169        assert allclose(northing, 6769820.01453)
     170
     171        #Then project to zone 49
     172        zone, easting, northing = redfearn(-29.1667,114,zone=49)
     173
     174        assert zone == 49
     175        assert allclose(easting, 791800.231817)
     176        assert allclose(northing, 6769820.01453)
     177
     178        #Testing furthest point in Geraldton scenario)
     179        #First test native projection (zone 49)
     180        zone, easting, northing = redfearn(-28.2167,113.4167)
     181
     182        assert zone == 49
     183        assert allclose(easting, 737178.16131)
     184        assert allclose(northing, 6876426.38578)
     185
     186        #Then project to zone 50
     187        zone, easting, northing = redfearn(-28.2167,113.4167,zone=50)
     188
     189        assert zone == 50
     190        assert allclose(easting, 148260.567427)
     191        assert allclose(northing, 6873587.50926)
     192
     193        #Testing outside GDA zone (New Zeland)
     194        #First test native projection (zone 60)
     195        zone, easting, northing = redfearn(-44,178)
     196
     197        assert zone == 60
     198        assert allclose(easting, 580174.259843)
     199        assert allclose(northing, 5127641.114461)
     200
     201        #Then project to zone 59
     202        zone, easting, northing = redfearn(-44,178,zone=59)
     203
     204        assert zone == 59
     205        assert allclose(easting, 1061266.922118)
     206        assert allclose(northing, 5104249.395469)
     207
     208        #Then skip three zones 57 (native 60)
     209        zone, easting, northing = redfearn(-44,178,zone=57)
     210
     211        assert zone == 57
     212        assert allclose(easting, 2023865.527497)
     213        assert allclose(northing, 4949253.934967)
     214
     215#Note Projecting into the Northern Hemisphere Does not coincide
     216#redfearn or ArcMap conversions
     217##        #Testing outside GDA zone (Northern Hemisphere)
     218##        #First test native projection (zone 57)
     219##        zone, easting, northing = redfearn(44,156)
     220##
     221##        assert zone == 57
     222##        assert allclose(easting, 259473.678944)
     223##        assert allclose(northing, 14876249.1268)
     224##
     225##        #Then project to zone 59
     226##        zone, easting, northing = redfearn(44,156,zone=56)
     227##
     228##        assert zone == 56
     229##        assert allclose(easting, 740526.321055)
     230##        assert allclose(northing, 14876249.1268)
     231
     232
     233       
    120234
    121235
     
    287401
    288402    #mysuite = unittest.makeSuite(TestCase,'test_convert_latlon_to_UTM1')
     403    #mysuite = unittest.makeSuite(TestCase,'test_UTM_6_nonstandard_projection')
    289404    mysuite = unittest.makeSuite(TestCase,'test')
    290405    runner = unittest.TextTestRunner()
Note: See TracChangeset for help on using the changeset viewer.