def setUp(self): # fake some real ifg data by adding nans self.ml_ifgs = small5_mock_ifgs() # 2x data of default Small mock self.ifgs = small5_mock_ifgs(xs=6, ys=8) # use different sizes to differentiate axes results for ifg in self.ifgs: ifg.X_SIZE = 90.0 ifg.Y_SIZE = 89.5 # add common nodata to all ifgs for i in self.ifgs + self.ml_ifgs: i.phase_data[0, :] = nan
def setUp(self): self.ifgs = small5_mock_ifgs() _add_nodata(self.ifgs) for ifg in self.ifgs: ifg.x_size = 90.0 ifg.y_size = 89.5 ifg.open()
def setup_class(cls): cls.ifgs = small5_mock_ifgs() _add_nodata(cls.ifgs) for ifg in cls.ifgs: ifg.x_size = 90.0 ifg.y_size = 89.5 ifg.open()
def test_get_all_epochs(self): # test function to extract all dates from sequence of ifgs ifgs = small5_mock_ifgs() for i in ifgs: i.nodata_value = 0 dates = [date(2006, 8, 28), date(2006, 11, 6), date(2006, 12, 11), date(2007, 1, 15), date(2007, 3, 26), date(2007, 9, 17)] self.assertEqual(dates, sorted(set(get_all_epochs(ifgs))))
def test_invalid_degree_arg(self): # test failure of a few different args for 'degree' ifgs = small5_mock_ifgs() for d in range(-5, 1): self.assertRaises(OrbitalError, get_network_design_matrix, ifgs, d, True) for d in range(4, 7): self.assertRaises(OrbitalError, get_network_design_matrix, ifgs, d, True)
def test_invalid_method(self): # test failure of a few different args for 'method' ifgs = small5_mock_ifgs() params = dict() params[cf.ORBITAL_FIT_DEGREE] = PLANAR params[cf.PARALLEL] = False for m in [None, 5, -1, -3, 45.8]: params[cf.ORBITAL_FIT_METHOD] = m self.assertRaises(OrbitalError, _orbital_correction, ifgs, params, None)
def setup_class(cls): # fake some real ifg data by adding nans cls.ifgs = small5_mock_ifgs() _add_nodata(cls.ifgs) # use different sizes to differentiate axes results for ifg in cls.ifgs: ifg.X_SIZE = 90.0 ifg.Y_SIZE = 89.5 cls.nc_tol = 1e-6
def setUp(self): # fake some real ifg data by adding nans self.ifgs = small5_mock_ifgs() _add_nodata(self.ifgs) # use different sizes to differentiate axes results for ifg in self.ifgs: ifg.X_SIZE = 90.0 ifg.Y_SIZE = 89.5 self.nc_tol = 1e-6
def setUp(self): self.ifgs = small5_mock_ifgs() _add_nodata(self.ifgs) self.nifgs = len(self.ifgs) self.ncells = self.ifgs[0].num_cells self.date_ids = get_date_ids(self.ifgs) self.nepochs = len(self.date_ids) assert self.nepochs == 6 for ifg in self.ifgs: ifg.X_SIZE = 90.0 ifg.Y_SIZE = 89.5
def test_vcm_basic(self): ifgs = small5_mock_ifgs(5, 9) maxvar = [8.486, 12.925, 6.313, 0.788, 0.649] exp = array([[8.486, 5.2364, 0.0, 0.0, 0.0], [5.2364, 12.925, 4.5165, 1.5957, 0.0], [0.0, 4.5165, 6.313, 1.1152, 0.0], [0.0, 1.5957, 1.1152, 0.788, -0.3576], [0.0, 0.0, 0.0, -0.3576, 0.649]]) act = get_vcmt(ifgs, maxvar) assert_array_almost_equal(act, exp, decimal=3)
def test_mst_matrix_as_ifgs(self): # ensure only ifgs are returned, not individual MST graphs ifgs = small5_mock_ifgs() nifgs = len(ifgs) ys, xs = ifgs[0].shape result = mst._mst_matrix_ifgs_only(ifgs) for coord in product(range(ys), range(xs)): stack = (i.phase_data[coord] for i in self.ifgs) nc = nsum([isnan(n) for n in stack]) self.assertTrue(len(result[coord]) <= (nifgs - nc)) # HACK: type testing here is a bit grubby self.assertTrue(all([isinstance(i, MockIfg) for i in ifgs]))
def test_multilooked_ifgs_arg(self): # check some bad args for network method with multilooked ifgs ifgs = small5_mock_ifgs() args = [[None, None, None, None, None], ["X"] * 5] params = dict() params[cf.ORBITAL_FIT_METHOD] = NETWORK_METHOD params[cf.PARALLEL] = False params[cf.ORBITAL_FIT_DEGREE] = PLANAR for a in args: args = (ifgs, params, a) self.assertRaises(OrbitalError, _orbital_correction, *args) # ensure failure if # ifgs doesn't match # mlooked ifgs args = (ifgs, params, ifgs[:4]) self.assertRaises(OrbitalError, _orbital_correction, *args)
def test_default_mst(self): # default MST from full set of Ifgs shouldn't drop any nodes ifgs = small5_mock_ifgs() dates = [(i.master, i.slave) for i in ifgs] res = mst.mst_from_ifgs(ifgs)[0] num_edges = len(res) self.assertEqual(num_edges, len(ifgs)) # test edges, note node order can be reversed for edge in res: self.assertTrue(edge in dates or (edge[1], edge[0]) in dates) # check all nodes exist in this default tree mst_dates = set(res) mst_dates = list(sum(mst_dates, ())) for i in ifgs: for node in (i.master, i.slave): self.assertIn(node, mst_dates)
def test_get_epoch_count(self): self.assertEqual(6, len(set(get_all_epochs(small5_mock_ifgs()))))
def setup_class(cls): cls.ifgs = small5_mock_ifgs()
def setup_method(cls): out_dir = tempfile.mkdtemp() cls.params = common.min_params(out_dir) cls.ifgs = small5_mock_ifgs()
def setUp(self): self.ifgs = small5_mock_ifgs()