Esempio n. 1
0
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)
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
    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)
Esempio n. 5
0
    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.])
Esempio n. 6
0
    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)