Changeset 1396
- Timestamp:
- May 16, 2005, 11:23:35 AM (20 years ago)
- Location:
- inundation/ga/storm_surge/pyvolution
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/ga/storm_surge/pyvolution/interpolate_sww.py
r1379 r1396 72 72 file_name - the xya file 73 73 """ 74 self.point_coordinates = self.read_xya(file_name) 74 75 from load_mesh.loadASCII import import_points_file 76 77 point_dict = import_points_file(file_name) 78 self.point_coordinates = point_dict['pointlist'] 75 79 self.interp.build_interpolation_matrix_A(self.point_coordinates) 76 self.interpolated_quantity = self.interp.interpolate(transpose(self.quantity)) 80 self.interpolated_quantity_raw = self.interp.interpolate(transpose(self.quantity)) 81 self.interpolated_quantity = {} 82 for i,time_slice in enumerate(self.time): 83 self.interpolated_quantity[str(time_slice)] = self.interpolated_quantity_raw[:,i] 77 84 85 78 86 def read_sww(self,file_name, quantity_name): 79 87 """ … … 121 129 return x, y, volumes, time, quantity 122 130 123 def read_xya(self,point_file):124 """125 Read in an xya file.126 127 Input;128 point_file - the xya file129 130 Output;131 point_coordinates - the points (x,y) where the depth values132 (w.r.t. time) are needed133 """134 from load_mesh.loadASCII import import_points_file135 136 point_dict = import_points_file(point_file)137 return point_dict['pointlist']138 139 140 131 def write_depth_xya(self,point_file, delimiter = ','): 141 132 """ … … 145 136 The time list is defined 146 137 """ 147 from load_mesh.loadASCII import export_ xya_file138 from load_mesh.loadASCII import export_points_file 148 139 149 #create the first line, giving the times150 if len(self.time) != 0:151 for i in range(len(self.time)):152 if i == 0:153 title = str(self.time[0])154 else:155 title = title + delimiter + str(self.time[i])156 else:157 title = ""158 159 #print ">" + str(self.time) + "<"160 #print ">" + title + "<"161 140 162 141 xya_dict = {} 163 142 xya_dict['pointlist'] = self.point_coordinates 164 xya_dict['pointattributelist'] = self.interpolated_quantity 165 166 export_xya_file(point_file, xya_dict, title, delimiter = delimiter) 143 xya_dict['attributelist'] = self.interpolated_quantity 144 export_points_file(point_file, xya_dict) 167 145 168 146 #------------------------------------------------------------- -
inundation/ga/storm_surge/pyvolution/test_interpolate_sww.py
r1379 r1396 18 18 class Test_Interpolate_sww(unittest.TestCase): 19 19 def setUp(self): 20 20 21 import time 21 22 from mesh_factory import rectangular … … 164 165 assert allclose(interp.time,[0.0,2.0]) 165 166 166 #answer = [ 0.15, 0.1, 0., -0.3, -0.35, -0.4, -0.7, -0.8, -0.850]167 #print "answer",answer168 #print interp.stage[0]169 #stage_t = transpose(interp.stage)170 #assert allclose(stage_t[0], answer)171 #assert allclose(stage_t[1],stage_t[0])172 173 167 # create an .xya file 174 168 point_file = tempfile.mktemp(".xya") … … 179 173 interp.interpolate_xya(point_file) 180 174 181 answer = [[0.08, 0.08], [0.02, 0.02], [0.14, 0.14], [.08,.08]] 175 answer = {} 176 answer['0.0'] = [ 0.08, 0.02, 0.14,0.08] 177 answer['2.0'] = [ 0.08, 0.02, 0.14,0.08] 178 182 179 #print "answer",answer 183 assert allclose(interp.interpolated_quantity,answer) 180 #print "interp.interpolated_quantity",interp.interpolated_quantity 181 assert allclose(interp.interpolated_quantity['0.0'],answer['0.0']) 182 assert allclose(interp.interpolated_quantity['2.0'],answer['2.0']) 184 183 185 184 # create an output .xya file … … 189 188 #check the output file 190 189 xya_dict = import_points_file(point_file_out) 191 #print "xya_dict", xya_dict 192 title_list,point_attributes = concatinate_attributelist(xya_dict['attributelist']) 193 assert allclose(interp.point_coordinates, xya_dict['pointlist']) 194 assert allclose(interp.interpolated_quantity, 195 point_attributes ) 196 197 # FIXME -remove 198 #title = xya_dict['title'].split('\n') 199 #print "title",title 200 #string_list = title[0].split(',') # assume a title has only one line 201 #time_list = [] 190 assert allclose(xya_dict['attributelist']['0.0'],answer['0.0']) 191 assert allclose(xya_dict['attributelist']['2.0'],answer['2.0']) 192 assert allclose(xya_dict['pointlist'],[[ 0.0, 0.6],[0.0, 0.9],[ 0.0,0.1],[ 0.4,1.0]]) 202 193 203 194 # Try another quantity … … 205 196 interp.interpolate_xya(point_file) 206 197 207 answer = [[0.08, 0.08], [0.02, 0.02], [0.14, 0.14], [-.32,-.32]] 198 answer['0.0'] = [ 0.08, 0.02, 0.14,-0.32] 199 answer['2.0'] = [ 0.08, 0.02, 0.14,-0.32] 208 200 #print "answer",answer 209 assert allclose(interp.interpolated_quantity,answer) 210 201 #print "interp.interpolated_quantity",interp.interpolated_quantity 202 assert allclose(interp.interpolated_quantity['0.0'],answer['0.0']) 203 assert allclose(interp.interpolated_quantity['2.0'],answer['2.0']) 211 204 212 205 # look at error catching
Note: See TracChangeset
for help on using the changeset viewer.