Changeset 5916


Ignore:
Timestamp:
Nov 6, 2008, 5:12:39 PM (15 years ago)
Author:
rwilson
Message:

NumPy? conversion.

Location:
anuga_core/source_numpy_conversion/anuga/coordinate_transforms
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source_numpy_conversion/anuga/coordinate_transforms/geo_reference.py

    r5736 r5916  
    88
    99import types, sys
    10 from Numeric import array, Float, ArrayType, reshape, allclose
     10import numpy
    1111from anuga.utilities.numerical_tools import ensure_numeric
    1212from anuga.utilities.anuga_exceptions import ANUGAError, TitleError, ParsingError, \
     
    9898       
    9999        # Fix some assertion failures
    100         if type(self.zone) == ArrayType and self.zone.shape == ():
     100        if isinstance(self.zone, numpy.ndarray) and self.zone.shape == ():
    101101            self.zone = self.zone[0]
    102         if type(self.xllcorner) == ArrayType and self.xllcorner.shape == ():
     102        if isinstance(self.xllcorner, numpy.ndarray) and self.xllcorner.shape == ():
    103103            self.xllcorner = self.xllcorner[0]
    104         if type(self.yllcorner) == ArrayType and self.yllcorner.shape == ():
     104        if isinstance(self.yllcorner, numpy.ndarray) and self.yllcorner.shape == ():
    105105            self.yllcorner = self.yllcorner[0]
    106106
    107         assert (type(self.xllcorner) == types.FloatType or\
    108                 type(self.xllcorner) == types.IntType)
    109         assert (type(self.yllcorner) == types.FloatType or\
    110                 type(self.yllcorner) == types.IntType)
    111         assert (type(self.zone) == types.IntType)
     107        assert (isinstance(self.xllcorner, types.FloatType) or\
     108                isinstance(self.xllcorner, types.IntType))
     109        assert (isinstance(self.yllcorner, types.FloatType) or\
     110                isinstance(self.yllcorner, types.IntType))
     111        assert (isinstance(self.zone, types.IntType))
    112112       
    113113        try:
     
    172172           
    173173        # Fix some assertion failures
    174         if(type(self.zone) == ArrayType and self.zone.shape == ()):
     174        if(isinstance(self.zone, numpy.ndarray) and self.zone.shape == ()):
    175175            self.zone = self.zone[0]
    176         if type(self.xllcorner) == ArrayType and self.xllcorner.shape == ():
     176        if isinstance(self.xllcorner, numpy.ndarray) and self.xllcorner.shape == ():
    177177            self.xllcorner = self.xllcorner[0]
    178         if type(self.yllcorner) == ArrayType and self.yllcorner.shape == ():
     178        if isinstance(self.yllcorner, numpy.ndarray) and self.yllcorner.shape == ():
    179179            self.yllcorner = self.yllcorner[0]
    180180   
    181         assert (type(self.xllcorner) == types.FloatType)
    182         assert (type(self.yllcorner) == types.FloatType)
    183         assert (type(self.zone) == types.IntType)
     181        assert (isinstance(self.xllcorner, types.FloatType))
     182        assert (isinstance(self.yllcorner, types.FloatType))
     183        assert (isinstance(self.zone, types.IntType))
    184184       
    185185       
     
    196196            is_list = True
    197197
    198         points = ensure_numeric(points, Float)
     198        points = ensure_numeric(points, numpy.float)
    199199       
    200200        if len(points.shape) == 1:
     
    202202            msg = 'Single point must have two elements'
    203203            assert len(points) == 2, msg
    204             points = reshape(points, (1,2))
     204            points = numpy.reshape(points, (1,2))
    205205
    206206        msg = 'Points array must be two dimensional.\n'
     
    239239        """
    240240
    241         return allclose([self.xllcorner, self.yllcorner], 0)
     241        return numpy.allclose([self.xllcorner, self.yllcorner], 0)
    242242
    243243       
     
    255255            is_list = True
    256256
    257         points = ensure_numeric(points, Float)
     257        points = ensure_numeric(points, numpy.float)
    258258        if len(points.shape) == 1:
    259259            #One point has been passed
     
    295295            is_list = True
    296296
    297         points = ensure_numeric(points, Float)
     297        points = ensure_numeric(points, numpy.float)
    298298        if len(points.shape) == 1:
    299299            #One point has been passed
  • anuga_core/source_numpy_conversion/anuga/coordinate_transforms/redfearn.py

    r5662 r5916  
    88"""
    99from anuga.coordinate_transforms.geo_reference import Geo_reference, DEFAULT_ZONE
    10 from Numeric import array
    1110
    1211def degminsec2decimal_degrees(dd,mm,ss):
  • anuga_core/source_numpy_conversion/anuga/coordinate_transforms/test_geo_reference.py

    r4663 r5916  
    77
    88from geo_reference import *
    9 from Numeric import allclose,array
    10 
     9import numpy
    1110
    1211class geo_referenceTestCase(unittest.TestCase):
     
    164163        y = 443.0
    165164        g = Geo_reference(56,x,y)
    166         lofl = array([[3.0,323.0], [6.0,645.0]])
     165        lofl = numpy.array([[3.0,323.0], [6.0,645.0]])
    167166        new_lofl = g.change_points_geo_ref(lofl)
    168167        #print "4 lofl",lofl
    169168        #print "4 new_lofl",new_lofl
    170169
    171         self.failUnless(type(new_lofl) == ArrayType, ' failed')
     170        self.failUnless(isinstance(new_lofl, numpy.ndarray), ' failed')
    172171        self.failUnless(type(new_lofl) == type(lofl), ' failed')
    173172        lofl[:,0] -= x
    174173        lofl[:,1] -= y
    175         assert allclose(lofl,new_lofl)
     174        assert numpy.allclose(lofl,new_lofl)
    176175       
    177176    def test_change_points_geo_ref5(self):
     
    179178        y = 3.0
    180179        g = Geo_reference(56,x,y)
    181         lofl = array([[3.0,323.0]])
     180        lofl = numpy.array([[3.0,323.0]])
    182181
    183182       
     
    187186        #print "5 new_lofl",new_lofl
    188187
    189         self.failUnless(type(new_lofl) == ArrayType, ' failed')
     188        self.failUnless(isinstance(new_lofl, numpy.ndarray), ' failed')
    190189        self.failUnless(type(new_lofl) == type(lofl), ' failed')
    191190
     
    199198        y = 3.0
    200199        g = Geo_reference(56,x,y)
    201         lofl = array([355.0,3.0])
     200        lofl = numpy.array([355.0,3.0])
    202201        new_lofl = g.change_points_geo_ref(lofl.copy())       
    203202        #print "lofl",lofl
    204203        #print "new_lofl",new_lofl
    205204
    206         self.failUnless(type(new_lofl) == ArrayType, ' failed')
     205        self.failUnless(isinstance(new_lofl, numpy.ndarray), ' failed')
    207206        self.failUnless(type(new_lofl) == type(lofl), ' failed')
    208207        for point,new_point in map(None,[lofl],new_lofl):
  • anuga_core/source_numpy_conversion/anuga/coordinate_transforms/test_lat_long_UTM_conversion.py

    r4197 r5916  
    1 
    21#Test of redfearns formula. Tests can be verified at
    32#
     
    76
    87import unittest
    9 from Numeric import allclose
     8import numpy
    109
    1110from lat_long_UTM_conversion import *
     
    2827        lat = degminsec2decimal_degrees(-37,39,10.15610)
    2928        lon = degminsec2decimal_degrees(143,55,35.38390)
    30         assert allclose(lat, -37.65282114)
    31         assert allclose(lon, 143.9264955)
     29        assert numpy.allclose(lat, -37.65282114)
     30        assert numpy.allclose(lon, 143.9264955)
    3231
    3332
     
    3534
    3635        assert zone == 54
    37         assert allclose(easting, 758173.797)
    38         assert allclose(northing, 5828674.340)
     36        assert numpy.allclose(easting, 758173.797)
     37        assert numpy.allclose(northing, 5828674.340)
    3938
    4039        lat_calced, long_calced = UTMtoLL(northing, easting, zone)
    41         assert allclose(lat,  lat_calced)
    42         assert allclose(lon, long_calced)
     40        assert numpy.allclose(lat,  lat_calced)
     41        assert numpy.allclose(lon, long_calced)
    4342
    4443
     
    6160       
    6261        assert zone == 55
    63         assert allclose(easting, 273741.297)
    64         assert allclose(northing, 5796489.777)
     62        assert numpy.allclose(easting, 273741.297)
     63        assert numpy.allclose(northing, 5796489.777)
    6564
    6665        lat_calced, long_calced = UTMtoLL(northing, easting, zone)
    67         assert allclose(lat,  lat_calced)
    68         assert allclose(lon, long_calced)
     66        assert numpy.allclose(lat,  lat_calced)
     67        assert numpy.allclose(lon, long_calced)
    6968       
    7069       
     
    7877
    7978        assert zone == 52
    80         assert allclose(easting, 555776.267)
    81         assert allclose(northing, 3348167.264)
     79        assert numpy.allclose(easting, 555776.267)
     80        assert numpy.allclose(northing, 3348167.264)
    8281
    8382        Lat, Long = UTMtoLL(northing, easting, zone)
     
    9493       
    9594        assert zone == 33
    96         assert allclose(easting, 348157.631)
    97         assert allclose(northing, 6175612.993)
     95        assert numpy.allclose(easting, 348157.631)
     96        assert numpy.allclose(northing, 6175612.993)
    9897
    9998        lat_calced, long_calced = UTMtoLL(northing, easting, zone,
    10099                                          isSouthernHemisphere=False)
    101         assert allclose(lat,  lat_calced)
    102         assert allclose(lon, long_calced)
     100        assert numpy.allclose(lat,  lat_calced)
     101        assert numpy.allclose(lon, long_calced)
    103102
    104103    def test_UTM_5(self):
     
    113112
    114113        assert zone == 56
    115         assert allclose(easting, 308728.009)
    116         assert allclose(northing, 6180432.601)
     114        assert numpy.allclose(easting, 308728.009)
     115        assert numpy.allclose(northing, 6180432.601)
    117116
    118117        lat_calced, long_calced = UTMtoLL(northing, easting, zone)
    119         assert allclose(lat,  lat_calced)
    120         assert allclose(lon, long_calced)
     118        assert numpy.allclose(lat,  lat_calced)
     119        assert numpy.allclose(lon, long_calced)
    121120#-------------------------------------------------------------
    122121if __name__ == "__main__":
  • anuga_core/source_numpy_conversion/anuga/coordinate_transforms/test_redfearn.py

    r5663 r5916  
    1 
    21#Test of redfearns formula. Tests can be verified at
    32#
     
    76
    87import unittest
    9 from Numeric import allclose
     8import numpy
    109
    1110from redfearn import *
     
    1918        lat = degminsec2decimal_degrees(-37,39,10.15610)
    2019        lon = degminsec2decimal_degrees(143,55,35.38390)
    21         assert allclose(lat, -37.65282114)
    22         assert allclose(lon, 143.9264955)
     20        assert numpy.allclose(lat, -37.65282114)
     21        assert numpy.allclose(lon, 143.9264955)
    2322
    2423        dd,mm,ss = decimal_degrees2degminsec(-37.65282114)
    2524        assert dd==-37
    2625        assert mm==39
    27         assert allclose(ss, 10.15610)
     26        assert numpy.allclose(ss, 10.15610)
    2827
    2928        dd,mm,ss = decimal_degrees2degminsec(143.9264955)
    3029        assert dd==143
    3130        assert mm==55
    32         assert allclose(ss, 35.38390)
     31        assert numpy.allclose(ss, 35.38390)
    3332
    3433
     
    4443        lat = degminsec2decimal_degrees(-37,39,10.15610)
    4544        lon = degminsec2decimal_degrees(143,55,35.38390)
    46         assert allclose(lat, -37.65282114)
    47         assert allclose(lon, 143.9264955)
     45        assert numpy.allclose(lat, -37.65282114)
     46        assert numpy.allclose(lon, 143.9264955)
    4847
    4948
     
    5150
    5251        assert zone == 54
    53         assert allclose(easting, 758173.797)
    54         assert allclose(northing, 5828674.340)
     52        assert numpy.allclose(easting, 758173.797)
     53        assert numpy.allclose(northing, 5828674.340)
    5554
    5655
     
    7271
    7372        assert zone == 55
    74         assert allclose(easting, 273741.297)
    75         assert allclose(northing, 5796489.777)
     73        assert numpy.allclose(easting, 273741.297)
     74        assert numpy.allclose(northing, 5796489.777)
    7675
    7776       
     
    8584
    8685        assert zone == 52
    87         assert allclose(easting, 555776.267)
    88         assert allclose(northing, 3348167.264)
     86        assert numpy.allclose(easting, 555776.267)
     87        assert numpy.allclose(northing, 3348167.264)
    8988
    9089
     
    101100
    102101        assert zone == 33
    103         assert allclose(easting, 348157.631)
    104         assert allclose(northing, 6175612.993)
     102        assert numpy.allclose(easting, 348157.631)
     103        assert numpy.allclose(northing, 6175612.993)
    105104
    106105
     
    116115
    117116        assert zone == 56
    118         assert allclose(easting, 308728.009)
    119         assert allclose(northing, 6180432.601)
     117        assert numpy.allclose(easting, 308728.009)
     118        assert numpy.allclose(northing, 6180432.601)
    120119
    121120    def test_UTM_6_nonstandard_projection(self):
     
    126125
    127126        assert zone == 50
    128         assert allclose(easting, 213251.040253)
    129         assert allclose(northing, 6762559.15978)
     127        assert numpy.allclose(easting, 213251.040253)
     128        assert numpy.allclose(northing, 6762559.15978)
    130129
    131130        #Testing using the native zone
     
    133132
    134133        assert zone == 50
    135         assert allclose(easting, 213251.040253)
    136         assert allclose(northing, 6762559.15978)
     134        assert numpy.allclose(easting, 213251.040253)
     135        assert numpy.allclose(northing, 6762559.15978)
    137136
    138137        #Then project to zone 49
     
    140139
    141140        assert zone == 49
    142         assert allclose(easting, 796474.020057)
    143         assert allclose(northing, 6762310.25162)
     141        assert numpy.allclose(easting, 796474.020057)
     142        assert numpy.allclose(northing, 6762310.25162)
    144143
    145144       
     
    151150
    152151        assert zone == 49
    153         assert allclose(easting, 788653.192779)
    154         assert allclose(northing, 6773605.46384)
     152        assert numpy.allclose(easting, 788653.192779)
     153        assert numpy.allclose(northing, 6773605.46384)
    155154
    156155        #Then project to zone 50
     
    158157
    159158        assert zone == 50
    160         assert allclose(easting, 204863.606467)
    161         assert allclose(northing, 6773440.04726)
     159        assert numpy.allclose(easting, 204863.606467)
     160        assert numpy.allclose(northing, 6773440.04726)
    162161
    163162        #Testing point on zone boundary
     
    166165
    167166        assert zone == 50
    168         assert allclose(easting, 208199.768268)
    169         assert allclose(northing, 6769820.01453)
     167        assert numpy.allclose(easting, 208199.768268)
     168        assert numpy.allclose(northing, 6769820.01453)
    170169
    171170        #Then project to zone 49
     
    173172
    174173        assert zone == 49
    175         assert allclose(easting, 791800.231817)
    176         assert allclose(northing, 6769820.01453)
     174        assert numpy.allclose(easting, 791800.231817)
     175        assert numpy.allclose(northing, 6769820.01453)
    177176
    178177        #Testing furthest point in Geraldton scenario)
     
    181180
    182181        assert zone == 49
    183         assert allclose(easting, 737178.16131)
    184         assert allclose(northing, 6876426.38578)
     182        assert numpy.allclose(easting, 737178.16131)
     183        assert numpy.allclose(northing, 6876426.38578)
    185184
    186185        #Then project to zone 50
     
    188187
    189188        assert zone == 50
    190         assert allclose(easting, 148260.567427)
    191         assert allclose(northing, 6873587.50926)
     189        assert numpy.allclose(easting, 148260.567427)
     190        assert numpy.allclose(northing, 6873587.50926)
    192191
    193192        #Testing outside GDA zone (New Zeland)
     
    196195
    197196        assert zone == 60
    198         assert allclose(easting, 580174.259843)
    199         assert allclose(northing, 5127641.114461)
     197        assert numpy.allclose(easting, 580174.259843)
     198        assert numpy.allclose(northing, 5127641.114461)
    200199
    201200        #Then project to zone 59
     
    203202
    204203        assert zone == 59
    205         assert allclose(easting, 1061266.922118)
    206         assert allclose(northing, 5104249.395469)
     204        assert numpy.allclose(easting, 1061266.922118)
     205        assert numpy.allclose(northing, 5104249.395469)
    207206
    208207        #Then skip three zones 57 (native 60)
     
    210209
    211210        assert zone == 57
    212         assert allclose(easting, 2023865.527497)
    213         assert allclose(northing, 4949253.934967)
     211        assert numpy.allclose(easting, 2023865.527497)
     212        assert numpy.allclose(northing, 4949253.934967)
    214213
    215214        # Note Projecting into the Northern Hemisphere Does not coincide
     
    227226        # Google Earth interpretation
    228227        assert zone == 57
    229         assert allclose(easting, 259473.69)
    230         assert allclose(northing, 4876249.13)
     228        assert numpy.allclose(easting, 259473.69)
     229        assert numpy.allclose(northing, 4876249.13)
    231230
    232231        # ArcMap's interpretation
     
    239238
    240239        assert zone == 56
    241         assert allclose(easting, 740526.321055)
    242         assert allclose(northing, 4876249.13)
     240        assert numpy.allclose(easting, 740526.321055)
     241        assert numpy.allclose(northing, 4876249.13)
    243242
    244243       
     
    283282        points, zone = convert_from_latlon_to_utm(latitudes=lats, longitudes=longs)
    284283
    285         assert allclose(points[0][0], 308728.009)
    286         assert allclose(points[0][1], 6180432.601)
    287         assert allclose(points[1][0],  222908.705)
    288         assert allclose(points[1][1], 6233785.284)
     284        assert numpy.allclose(points[0][0], 308728.009)
     285        assert numpy.allclose(points[0][1], 6180432.601)
     286        assert numpy.allclose(points[1][0],  222908.705)
     287        assert numpy.allclose(points[1][1], 6233785.284)
    289288        self.failUnless(zone == 56,
    290289                        'Bad zone error!')
     
    355354        points, zone = convert_from_latlon_to_utm(points=points)
    356355        #print "points",points
    357         assert allclose(points[0][0], 308728.009)
    358         assert allclose(points[0][1], 6180432.601)
    359         assert allclose(points[1][0],  222908.705)
    360         assert allclose(points[1][1], 6233785.284)
     356        assert numpy.allclose(points[0][0], 308728.009)
     357        assert numpy.allclose(points[0][1], 6180432.601)
     358        assert numpy.allclose(points[1][0],  222908.705)
     359        assert numpy.allclose(points[1][1], 6233785.284)
    361360        self.failUnless(zone == 56,
    362361                        'Bad zone error!')
Note: See TracChangeset for help on using the changeset viewer.