Changeset 2644


Ignore:
Timestamp:
Mar 31, 2006, 4:20:22 PM (18 years ago)
Author:
nick
Message:

added functionality to data_manager.py can now read MOST and Ferret netCDF files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inundation/pyvolution/data_manager.py

    r2623 r2644  
    21192119                                  #for the Wollongong tsunami
    21202120                                  #scenario but is very hacky
    2121     """Convert 'Ferret' NetCDF format for wave propagation to
     2121    """Convert MOST and 'Ferret' NetCDF format for wave propagation to
    21222122    sww format native to pyvolution.
    21232123
     
    21752175        swwname = basename_out + '.sww'
    21762176
    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
    21812220
    21822221
    21832222    #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)
    21862225
    21872226    #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])
    21902229    assert allclose(latitudes, e_lat)
    21912230
    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])
    21942233    assert allclose(longitudes, e_lon)
    2195 
    2196 
    21972234
    21982235    if mint == None:
     
    22262263        lmax = searchsorted(longitudes, maxlon)
    22272264
    2228 
    2229 
     2265#    print' j', jmin, jmax
    22302266    times = times[jmin:jmax]
    22312267    latitudes = latitudes[kmin:kmax]
     
    22352271    if verbose: print 'cropping'
    22362272    zname = 'ELEVATION'
    2237 
    22382273
    22392274    amplitudes = file_h.variables['HA'][jmin:jmax, kmin:kmax, lmin:lmax]
Note: See TracChangeset for help on using the changeset viewer.