def course_yasi_img(): tl_y = np.asarray([-16]) # top left y tl_x = np.asarray([140]) # top left x dx = 2 dy = -2 multiplier_values = np.zeros((2, 3)) for index in indices: multiplier_values.fill(index) img_name = 'm4_' + indices[index]['dir'] + '.img' pM.createRaster(multiplier_values, tl_x, tl_y, dx, dy, filename=img_name)
def test_xcreateRaster3(self): """Test can create img files""" file_is = 'test.img' f_img = tempfile.NamedTemporaryFile(suffix='.tif', prefix='test_proMult', delete=False) f_img.close() gust = np.asarray([[1., -1., 10, -10.], [100., -100., 1000, -1000.]]) lon = np.asarray([136, 138, 140, 142]) # 136 is used lat = np.array([-22, -20]) # -22 is used result = pM.createRaster(gust, lon, lat, 2, -2, filename=f_img.name) minx, miny, maxx, maxy, data = pM.loadRasterFileBandLonLat(f_img.name) self.assertEqual(minx, 136) self.assertEqual(maxx, 144) self.assertEqual(miny, -24) self.assertEqual(maxy, -20) # This isn't working in this test # but works in # test_xprocessMult_A # assert_almost_equal(np.flipud(gust), data) del result os.remove(f_img.name)
def test_createRasterII(self): """Test can create img files""" file_is = 'test.img' result = pM.createRaster(self.array, self.x, self.y, self.dx, self.dy, filename=file_is) self.assertEqual(type(result), gdal.Dataset) assert exists(file_is)
def test_createRaster(self): """Test createRaster returns a gdal dataset""" result = pM.createRaster(self.array, self.x, self.y, self.dx, self.dy, filename=self.testRasterFile) self.assertEqual(type(result), gdal.Dataset) assert exists(self.testRasterFile)
def setUp(self): self.array = np.arange(100, dtype=float).reshape((10, 10)) self.x = np.arange(120, 130) self.y = np.arange(10, 20) self.dx = 1 self.dy = -1 self.testRasterFile = "testRaster.tif" self.reprojectRaster = "testReprojection.tif" # is this used? self.projectedDataset = pM.createRaster(np.ones((2000, 5000)), np.arange(15000, 55000, 20), np.arange(20000, 120000, 20), dx=20, dy=-20, epsg=3123) self.uu = np.array([-1., 1., 1., -1.]) self.vv = np.array([-1., -1., 1., 1.]) self.bearing = np.array([45., 315., 225., 135.])
def test_reprojectDataset_same_nc_img(self): """Test a dataset is correctly reprojected""" # Write a .nc file to test # This is the gust file f_nc = tempfile.NamedTemporaryFile(suffix='.nc', prefix='test_processMultipliers', delete=False) f_nc.close() # Write an .img file to test #This is the multiplier file f_img = tempfile.NamedTemporaryFile(suffix='.img', prefix='test_processMultipliers', delete=False) f_img.close() # Write a temporary track file f_track = tempfile.NamedTemporaryFile(suffix='.nc', prefix='test_track', delete=False) f_track.close() lat = np.asarray([ -23, -20, -17, -14, -11, -8, -5]) lon = np.asarray([137, 140, 143, 146, 149, 152, 155, 158]) delta = lon[1] - lon[0] lon_mid = lon + delta / 2. lat_mid = lat + delta / 2. speed = np.zeros(([lon.shape[0], lat.shape[0]])) speed.fill(42.5) # doing this just to get values in Vx = Vy = P = speed result = lat_mid, lon_mid, speed, Vx, Vy, P cfg = ConfigParser() wg = WindfieldGenerator(cfg) wg.saveGustToFile(f_track.name, result, f_nc.name) # nctools.ncSaveGrid(multiplier_name, multiplier_values, lat, # lon, f_nc.name) # For the multiplier file lat = np.asarray([ -17, -14, -11]) lon = np.asarray([140, 143, 146, 149]) speed = np.zeros(([lon.shape[0], lat.shape[0]])) dx = 3.0 dy = -3.0 speed.fill(27.1701) pM.createRaster(speed, lon, lat, dx, dy, filename=f_img.name) speed.fill(42.5) m4_max_file = f_img.name # pulling out a section of the processMultipliers.main # load the wind data ncobj = Dataset(f_nc.name, 'r') lat = ncobj.variables['lat'][:] lon = ncobj.variables['lon'][:] delta = lon[1] - lon[0] lon = lon - delta / 2. lat = lat - delta / 2. # Wind speed: wspd = ncobj.variables['vmax'][:] wind_raster_file = 'region_wind.tif' wind_prj_file = 'gust_prj.tif' wind_raster = pM.createRaster(wspd, lon, lat, delta, -delta, filename=wind_raster_file) # This shows that the right data is going in src_data = wind_raster.GetRasterBand(1).ReadAsArray() m4_max = gdal.Open(m4_max_file, GA_ReadOnly) m4_max_data = m4_max.GetRasterBand(1).ReadAsArray() pM.reprojectDataset(wind_raster, m4_max_file, wind_prj_file) #, # match_projection=32756) wind_prj_ds = gdal.Open(wind_prj_file, GA_ReadOnly) wind_prj = wind_prj_ds.GetRasterBand(1) wind_data = wind_prj.ReadAsArray() # The info here is correct. #print "img data", pM.loadRasterFile(f_img.name) assert_almost_equal(wind_data, speed) keep = False ncobj.close() del m4_max if keep: print "f_nc.name", f_nc.name print "f_img.name", f_img.name else: os.remove(f_nc.name) os.remove(f_img.name)