Changeset 1057
- Timestamp:
- Mar 10, 2005, 1:32:08 PM (20 years ago)
- Location:
- inundation/ga/storm_surge/pyvolution/coordinate_transforms
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/ga/storm_surge/pyvolution/coordinate_transforms/geo_reference.py
r1046 r1057 3 3 4 4 import types 5 from Numeric import array,Float,ArrayType 5 6 6 7 class Geo_reference: … … 73 74 #false_northing = infile.false_northing[0] 74 75 75 def change_geo_ref(self, primary_geo_ref, 76 secondary_geo_ref, secondary_points): 76 def change_point_geo_ref(self, points, 77 point_geo_ref=None): 78 """ 79 Change the reference of a list or Numeric array of points. 80 If the points do not have ageo ref, assume 'absolute' values 81 """ 82 is_list = False 83 if type(points) == types.ListType: 84 is_list = True 85 if len(points)>0 and type(points[0]) not in [types.ListType,types.TupleType]: 86 #a single pont is being passed. make it a list of lists 87 points = [points] 88 elif type(points) == ArrayType: 89 if len(points.shape) == 1: 90 points = [points] 91 92 93 77 94 #convert into array 78 #add secondary geo ref to points 79 #subtract secondary geo ref from points 95 points = array(points).astype(Float) 96 #add point geo ref to points 97 if not point_geo_ref is None: 98 points[:,0] += point_geo_ref.xllcorner 99 points[:,1] += point_geo_ref.yllcorner 100 101 #subtract primary geo ref from points 102 points[:,0] -= self.xllcorner 103 points[:,1] -= self.yllcorner 104 if is_list: 105 points = points.tolist() 80 106 # return points 81 pass107 return points 82 108 109 110 #def easting_northing2geo_reffed_point(self, x, y): 111 # return [x-self.xllcorner, y - self.xllcorner] 112 113 #def easting_northing2geo_reffed_points(self, x, y): 114 # return [x-self.xllcorner, y - self.xllcorner] 115 83 116 def __repr__(self): 84 117 return "(%f,%f, %i)" % (self.xllcorner,self.yllcorner, self.zone) -
inundation/ga/storm_surge/pyvolution/coordinate_transforms/test_geo_reference.py
r1049 r1057 7 7 8 8 from geo_reference import * 9 from Numeric import allclose,array 9 10 10 11 class geo_referenceTestCase(unittest.TestCase): … … 46 47 47 48 self.failUnless(g == new_g, 'test_read_write_ASCII failed') 49 50 def test_change_point_geo_ref(self): 51 x = 3.0 52 y = 3.0 53 g = Geo_reference(56,x,y) 54 lofl = [[3.0,3.0], [6.0,6.0]] 55 new_lofl = g.change_point_geo_ref(lofl) 56 #print "lofl",lofl 57 #print "new_lofl",new_lofl 58 59 self.failUnless(type(new_lofl) == types.ListType, ' failed') 60 self.failUnless(type(new_lofl) == type(lofl), ' failed') 61 for point,new_point in map(None,lofl,new_lofl): 62 self.failUnless(point[0]-x==new_point[0], ' failed') 63 self.failUnless(point[1]-y==new_point[1], ' failed') 48 64 65 def test_change_point_geo_ref2(self): 66 x = 3.0 67 y = 3.0 68 g = Geo_reference(56,x,y) 69 lofl = [[3.0,3.0]] 70 new_lofl = g.change_point_geo_ref(lofl) 71 #print "lofl",lofl 72 #print "new_lofl",new_lofl 73 74 self.failUnless(type(new_lofl) == types.ListType, ' failed') 75 self.failUnless(type(new_lofl) == type(lofl), ' failed') 76 for point,new_point in map(None,lofl,new_lofl): 77 self.failUnless(point[0]-x==new_point[0], ' failed') 78 self.failUnless(point[1]-y==new_point[1], ' failed') 79 80 def test_change_point_geo_ref3(self): 81 x = 3.0 82 y = 3.0 83 g = Geo_reference(56,x,y) 84 lofl = [3.0,3.0] 85 new_lofl = g.change_point_geo_ref(lofl) 86 #print "lofl",lofl 87 #print "new_lofl",new_lofl 88 89 self.failUnless(type(new_lofl) == types.ListType, ' failed') 90 self.failUnless(type(new_lofl) == type(lofl), ' failed') 91 for point,new_point in map(None,[lofl],new_lofl): 92 self.failUnless(point[0]-x==new_point[0], ' failed') 93 self.failUnless(point[1]-y==new_point[1], ' failed') 94 95 96 def test_change_point_geo_ref4(self): 97 x = 3.0 98 y = 3.0 99 g = Geo_reference(56,x,y) 100 lofl = array([[3.0,3.0], [6.0,6.0]]) 101 new_lofl = g.change_point_geo_ref(lofl) 102 #print "4 lofl",lofl 103 #print "4 new_lofl",new_lofl 104 105 self.failUnless(type(new_lofl) == ArrayType, ' failed') 106 self.failUnless(type(new_lofl) == type(lofl), ' failed') 107 lofl[:,0] -= x 108 lofl[:,1] -= y 109 assert allclose(lofl,new_lofl) 110 111 def test_change_point_geo_ref5(self): 112 x = 3.0 113 y = 3.0 114 g = Geo_reference(56,x,y) 115 lofl = array([[3.0,3.0]]) 116 new_lofl = g.change_point_geo_ref(lofl) 117 #print "5 lofl",lofl 118 #print "5 new_lofl",new_lofl 119 120 self.failUnless(type(new_lofl) == ArrayType, ' failed') 121 self.failUnless(type(new_lofl) == type(lofl), ' failed') 122 for point,new_point in map(None,lofl,new_lofl): 123 self.failUnless(point[0]-x==new_point[0], ' failed') 124 self.failUnless(point[1]-y==new_point[1], ' failed') 125 126 def test_change_point_geo_ref6(self): 127 x = 3.0 128 y = 3.0 129 g = Geo_reference(56,x,y) 130 lofl = array([3.0,3.0]) 131 new_lofl = g.change_point_geo_ref(lofl) 132 #print "lofl",lofl 133 #print "new_lofl",new_lofl 134 135 self.failUnless(type(new_lofl) == ArrayType, ' failed') 136 self.failUnless(type(new_lofl) == type(lofl), ' failed') 137 for point,new_point in map(None,[lofl],new_lofl): 138 self.failUnless(point[0]-x==new_point[0], ' failed') 139 self.failUnless(point[1]-y==new_point[1], ' failed') 140 141 def test_change_point_geo_ref7(self): 142 x = 3.0 143 y = 3.0 144 point_x = 9.0 145 point_y = -60.0 146 g = Geo_reference(56,x,y) 147 point_geo_ref = Geo_reference(56,point_x,point_y) 148 lofl = [[3.0,3.0], [6.0,6.0]] 149 new_lofl = g.change_point_geo_ref(lofl,point_geo_ref=point_geo_ref) 150 #print "lofl",lofl 151 #print "new_lofl",new_lofl 152 153 self.failUnless(type(new_lofl) == types.ListType, ' failed') 154 self.failUnless(type(new_lofl) == type(lofl), ' failed') 155 for point,new_point in map(None,lofl,new_lofl): 156 self.failUnless(point[0]+point_x-x==new_point[0], ' failed') 157 self.failUnless(point[1]+point_y-y==new_point[1], ' failed') 158 49 159 def test___cmp__(self): 50 160 g = Geo_reference(56,1.9,1.9,)
Note: See TracChangeset
for help on using the changeset viewer.