Changeset 2644
- Timestamp:
- Mar 31, 2006, 4:20:22 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/pyvolution/data_manager.py
r2623 r2644 2119 2119 #for the Wollongong tsunami 2120 2120 #scenario but is very hacky 2121 """Convert 'Ferret' NetCDF format for wave propagation to2121 """Convert MOST and 'Ferret' NetCDF format for wave propagation to 2122 2122 sww format native to pyvolution. 2123 2123 … … 2175 2175 swwname = basename_out + '.sww' 2176 2176 2177 times = file_h.variables['TIME'] 2178 latitudes = file_h.variables['LAT'] 2179 longitudes = file_h.variables['LON'] 2180 2177 # Get dimensions of file_h 2178 for dimension in file_h.dimensions.keys(): 2179 if dimension[:3] == 'LON': 2180 dim_h_longitude = dimension 2181 if dimension[:3] == 'LAT': 2182 dim_h_latitude = dimension 2183 if dimension[:4] == 'TIME': 2184 dim_h_time = dimension 2185 2186 # print 'long:', dim_h_longitude 2187 # print 'lats:', dim_h_latitude 2188 # print 'times:', dim_h_time 2189 2190 times = file_h.variables[dim_h_time] 2191 latitudes = file_h.variables[dim_h_latitude] 2192 longitudes = file_h.variables[dim_h_longitude] 2193 2194 # get dimensions for file_e 2195 for dimension in file_e.dimensions.keys(): 2196 if dimension[:3] == 'LON': 2197 dim_e_longitude = dimension 2198 if dimension[:3] == 'LAT': 2199 dim_e_latitude = dimension 2200 if dimension[:4] == 'TIME': 2201 dim_e_time = dimension 2202 2203 # get dimensions for file_u 2204 for dimension in file_u.dimensions.keys(): 2205 if dimension[:3] == 'LON': 2206 dim_u_longitude = dimension 2207 if dimension[:3] == 'LAT': 2208 dim_u_latitude = dimension 2209 if dimension[:4] == 'TIME': 2210 dim_u_time = dimension 2211 2212 # get dimensions for file_v 2213 for dimension in file_v.dimensions.keys(): 2214 if dimension[:3] == 'LON': 2215 dim_v_longitude = dimension 2216 if dimension[:3] == 'LAT': 2217 dim_v_latitude = dimension 2218 if dimension[:4] == 'TIME': 2219 dim_v_time = dimension 2181 2220 2182 2221 2183 2222 #Precision used by most for lat/lon is 4 or 5 decimals 2184 e_lat = around(file_e.variables[ 'LAT'][:], 5)2185 e_lon = around(file_e.variables[ 'LON'][:], 5)2223 e_lat = around(file_e.variables[dim_e_latitude][:], 5) 2224 e_lon = around(file_e.variables[dim_e_longitude][:], 5) 2186 2225 2187 2226 #Check that files are compatible 2188 assert allclose(latitudes, file_u.variables[ 'LAT'])2189 assert allclose(latitudes, file_v.variables[ 'LAT'])2227 assert allclose(latitudes, file_u.variables[dim_u_latitude]) 2228 assert allclose(latitudes, file_v.variables[dim_v_latitude]) 2190 2229 assert allclose(latitudes, e_lat) 2191 2230 2192 assert allclose(longitudes, file_u.variables[ 'LON'])2193 assert allclose(longitudes, file_v.variables[ 'LON'])2231 assert allclose(longitudes, file_u.variables[dim_u_longitude]) 2232 assert allclose(longitudes, file_v.variables[dim_v_longitude]) 2194 2233 assert allclose(longitudes, e_lon) 2195 2196 2197 2234 2198 2235 if mint == None: … … 2226 2263 lmax = searchsorted(longitudes, maxlon) 2227 2264 2228 2229 2265 # print' j', jmin, jmax 2230 2266 times = times[jmin:jmax] 2231 2267 latitudes = latitudes[kmin:kmax] … … 2235 2271 if verbose: print 'cropping' 2236 2272 zname = 'ELEVATION' 2237 2238 2273 2239 2274 amplitudes = file_h.variables['HA'][jmin:jmax, kmin:kmax, lmin:lmax]
Note: See TracChangeset
for help on using the changeset viewer.