Ignore:
Timestamp:
May 25, 2010, 12:47:58 PM (14 years ago)
Author:
hudson
Message:

Split off sww2dem from data_manager.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/source/anuga/file_conversion/test_file_conversion.py

    r7743 r7744  
    22412241
    22422242
     2243    def test_read_asc(self):
     2244        """Test conversion from dem in ascii format to native NetCDF format
     2245        """
     2246
     2247        import time, os
     2248
     2249        from file_conversion import _read_asc
     2250        #Write test asc file
     2251        filename = tempfile.mktemp(".000")
     2252        fid = open(filename, 'w')
     2253        fid.write("""ncols         7
     2254nrows         4
     2255xllcorner     2000.5
     2256yllcorner     3000.5
     2257cellsize      25
     2258NODATA_value  -9999
     2259    97.921    99.285   125.588   180.830   258.645   342.872   415.836
     2260   473.157   514.391   553.893   607.120   678.125   777.283   883.038
     2261   984.494  1040.349  1008.161   900.738   730.882   581.430   514.980
     2262   502.645   516.230   504.739   450.604   388.500   338.097   514.980
     2263""")
     2264        fid.close()
     2265        bath_metadata, grid = _read_asc(filename, verbose=self.verbose)
     2266        self.failUnless(bath_metadata['xllcorner']  == 2000.5,  'Failed')
     2267        self.failUnless(bath_metadata['yllcorner']  == 3000.5,  'Failed')
     2268        self.failUnless(bath_metadata['cellsize']  == 25,  'Failed')
     2269        self.failUnless(bath_metadata['NODATA_value']  == -9999,  'Failed')
     2270        self.failUnless(grid[0][0]  == 97.921,  'Failed')
     2271        self.failUnless(grid[3][6]  == 514.980,  'Failed')
     2272
     2273        os.remove(filename)
     2274
     2275
     2276    #### TESTS FOR URS 2 SWW  ###     
     2277   
     2278    def create_mux(self, points_num=None):
     2279        # write all the mux stuff.
     2280        time_step_count = 3
     2281        time_step = 0.5
     2282       
     2283        longitudes = [150.66667, 150.83334, 151., 151.16667]
     2284        latitudes = [-34.5, -34.33333, -34.16667, -34]
     2285
     2286        if points_num == None:
     2287            points_num = len(longitudes) * len(latitudes)
     2288
     2289        lonlatdeps = []
     2290        quantities = ['HA','UA','VA']
     2291        mux_names = [WAVEHEIGHT_MUX_LABEL,
     2292                     EAST_VELOCITY_LABEL,
     2293                     NORTH_VELOCITY_LABEL]
     2294        quantities_init = [[],[],[]]
     2295        # urs binary is latitude fastest
     2296        for i,lon in enumerate(longitudes):
     2297            for j,lat in enumerate(latitudes):
     2298                _ , e, n = redfearn(lat, lon)
     2299                lonlatdeps.append([lon, lat, n])
     2300                quantities_init[0].append(e) # HA
     2301                quantities_init[1].append(n ) # UA
     2302                quantities_init[2].append(e) # VA
     2303        #print "lonlatdeps",lonlatdeps
     2304
     2305        file_handle, base_name = tempfile.mkstemp("")
     2306        os.close(file_handle)
     2307        os.remove(base_name)
     2308       
     2309        files = []       
     2310        for i,q in enumerate(quantities):
     2311            quantities_init[i] = ensure_numeric(quantities_init[i])
     2312            #print "HA_init", HA_init
     2313            q_time = num.zeros((time_step_count, points_num), num.float)
     2314            for time in range(time_step_count):
     2315                q_time[time,:] = quantities_init[i] #* time * 4
     2316           
     2317            #Write C files
     2318            columns = 3 # long, lat , depth
     2319            file = base_name + mux_names[i]
     2320            #print "base_name file",file
     2321            f = open(file, 'wb')
     2322            files.append(file)
     2323            f.write(pack('i',points_num))
     2324            f.write(pack('i',time_step_count))
     2325            f.write(pack('f',time_step))
     2326
     2327            #write lat/long info
     2328            for lonlatdep in lonlatdeps:
     2329                for float in lonlatdep:
     2330                    f.write(pack('f',float))
     2331                   
     2332            # Write quantity info
     2333            for time in  range(time_step_count):
     2334                for point_i in range(points_num):
     2335                    f.write(pack('f',q_time[time,point_i]))
     2336                    #print " mux_names[i]", mux_names[i]
     2337                    #print "f.write(pack('f',q_time[time,i]))", q_time[time,point_i]
     2338            f.close()
     2339        return base_name, files
     2340
    22432341#-------------------------------------------------------------
    22442342
Note: See TracChangeset for help on using the changeset viewer.