コード例 #1
0
ファイル: test_config.py プロジェクト: bopopescu/PyRate
 def test_new_config_file_and_original_match(self):
     params = config.get_config_params(TEST_CONF_GAMMA)
     temp_config = tempfile.mktemp(suffix='.conf')
     config.write_config_file(params, temp_config)
     new_params = config.get_config_params(temp_config)
     self.maxDiff = None
     self.assertDictEqual(params, new_params)
     os.remove(temp_config)
コード例 #2
0
 def setUp(self):
     """
     Get a copy of the GAMMA params and also use this to verify that 
     they are correct before we start testing.
     """
     self.params = config.get_config_params(TEST_CONF_GAMMA)
     self.roipac_params = config.get_config_params(TEST_CONF_ROIPAC)
     self.dummy_dir = '/i/should/not/exist/'
     if os.path.exists(self.dummy_dir):
         raise IOError("'dummy_dir' needs to be non-existant for testing.")
コード例 #3
0
ファイル: __main__.py プロジェクト: truth-quark/PyRate
def conv2tif_handler(config_file):
    """
    Convert interferograms to geotiff.
    """
    config_file = os.path.abspath(config_file)
    params = cf.get_config_params(config_file, step=CONV2TIF)
    conv2tif.main(params)
コード例 #4
0
ファイル: test_config.py プロジェクト: bopopescu/PyRate
    def test_read_param_file_missing_value():
        # ensure the parser can handle blank option values
        conf_path = join(SML_TEST_CONF, 'pyrate2.conf')
        params = config.get_config_params(conf_path)

        assert params[REFX] == -1
        assert params[REFY] == -1
コード例 #5
0
 def common_check(self, ele, inc):
     os.path.exists(self.conf_file)
     params = cf.get_config_params(self.conf_file)
     conv2tif.main(params)
     sys.argv = ['dummy', self.conf_file]
     prepifg.main(params)
     # test 17 geotiffs created
     geotifs = glob.glob(os.path.join(params[cf.OBS_DIR], '*_unw.tif'))
     self.assertEqual(17, len(geotifs))
     # test dem geotiff created
     demtif = glob.glob(os.path.join(params[cf.OBS_DIR], '*_dem.tif'))
     self.assertEqual(1, len(demtif))
     # elevation/incidence file
     ele = glob.glob(os.path.join(params[cf.OBS_DIR],
                                  '*utm_{ele}.tif'.format(ele=ele)))[0]
     self.assertTrue(os.path.exists(ele))
     # mlooked tifs
     mlooked_tifs = [f for f in
                     glob.glob(os.path.join(self.base_dir, '*.tif'))
                     if "cr" in f and "rlks" in f]
     # 19 including 17 ifgs, 1 dem and one incidence
     self.assertEqual(19, len(mlooked_tifs))
     inc = glob.glob(os.path.join(self.base_dir,
                                  '*utm_{inc}.tif'.format(inc=inc)))
     self.assertEqual(0, len(inc))
コード例 #6
0
ファイル: test_orbital.py プロジェクト: truth-quark/PyRate
    def setUp(self):
        self.BASE_DIR = tempfile.mkdtemp()
        self.params = cf.get_config_params(TEST_CONF_ROIPAC)
        # change to orbital error correction method 2
        self.params[cf.ORBITAL_FIT_METHOD] = NETWORK_METHOD
        self.params[cf.ORBITAL_FIT_LOOKS_X] = 1
        self.params[cf.ORBITAL_FIT_LOOKS_Y] = 1

        data_paths = [
            os.path.join(SML_TEST_TIF, p) for p in small_ifg_file_list()
        ]
        self.new_data_paths = [
            os.path.join(self.BASE_DIR, os.path.basename(d))
            for d in data_paths
        ]
        for d in data_paths:
            d_copy = os.path.join(self.BASE_DIR, os.path.basename(d))
            shutil.copy(d, d_copy)
            os.chmod(d_copy, 0o660)

        self.ifgs = small_data_setup(datafiles=self.new_data_paths)

        for i in self.ifgs:
            if not i.is_open:
                i.open()
            if not i.nan_converted:
                i.convert_to_nans()

            if not i.mm_converted:
                i.convert_to_mm()
                i.write_modified_phase()
コード例 #7
0
ファイル: test_config.py プロジェクト: bopopescu/PyRate
    def test_read_param_file_missing_option():
        # ensure the parser can handle missing option fields
        conf_path = join(SML_TEST_CONF, 'pyrate1.conf')
        params = config.get_config_params(conf_path)

        assert params[REFX] == -1
        assert params[REFY] == -1
コード例 #8
0
ファイル: __main__.py プロジェクト: truth-quark/PyRate
def prepifg_handler(config_file):
    """
    Perform multilooking and cropping on geotiffs.
    """
    config_file = os.path.abspath(config_file)
    params = cf.get_config_params(config_file, step=PREPIFG)
    prepifg.main(params)
コード例 #9
0
 def setUp(self):
     self.ifgs = small_data_setup()
     self.params = cf.get_config_params(TEST_CONF_ROIPAC)
     self.params[cf.REFNX] = REFNX
     self.params[cf.REFNY] = REFNY
     self.params[cf.REF_CHIP_SIZE] = CHIPSIZE
     self.params[cf.REF_MIN_FRAC] = MIN_FRAC
     self.params[cf.PARALLEL] = PARALLEL
コード例 #10
0
 def setup_method(cls):
     cls.ifgs = small_data_setup()
     cls.params = cf.get_config_params(TEST_CONF_ROIPAC)
     cls.params[cf.REFNX] = REFNX
     cls.params[cf.REFNY] = REFNY
     cls.params[cf.REF_CHIP_SIZE] = CHIPSIZE
     cls.params[cf.REF_MIN_FRAC] = MIN_FRAC
     cls.params[cf.PARALLEL] = PARALLEL
コード例 #11
0
ファイル: test_config.py プロジェクト: wzmucas/PyRate
 def setUp(self):
     self.params = config.get_config_params(TEST_CONF_GAMMA, step='prepifg')
     self.dummy_dir = '/i/should/not/exist'
     crop_opts = config._crop_opts(self.params)
     self.min_extents, self.n_cols, self.n_rows = \
         config._get_fullres_info(self.params[IFG_FILE_LIST], self.params[OUT_DIR], crop_opts)
     if os.path.exists(self.dummy_dir):
         raise IOError("{dummy_dir} needs to not exist for test purposes.")
コード例 #12
0
    def setup_class(cls):

        # testing constants2
        cls.BASE_DIR = tempfile.mkdtemp()
        cls.BASE_OUT_DIR = join(cls.BASE_DIR, 'out')
        cls.BASE_DEM_DIR = join(cls.BASE_DIR, 'dem')
        cls.BASE_DEM_FILE = join(cls.BASE_DEM_DIR, 'roipac_test_trimmed.tif')

        try:
            # copy source data (treat as prepifg already run)
            os.makedirs(cls.BASE_OUT_DIR)
            for path in glob.glob(join(common.SML_TEST_TIF, '*')):
                dest = join(cls.BASE_OUT_DIR, os.path.basename(path))
                shutil.copy(path, dest)
                os.chmod(dest, 0o660)

            os.makedirs(cls.BASE_DEM_DIR)
            orig_dem = common.SML_TEST_DEM_TIF
            os.symlink(orig_dem, cls.BASE_DEM_FILE)
            os.chdir(cls.BASE_DIR)

            # Turn off validation because we're in a different working dir
            #  and relative paths in config won't be work.
            params = config.get_config_params(common.TEST_CONF_ROIPAC)
            params['correct'] = [
                'orbfit', 'refphase', 'mst', 'apscorrect', 'maxvar'
            ]
            params[cf.OUT_DIR] = cls.BASE_OUT_DIR
            params[cf.PROCESSOR] = 0  # roipac
            params[cf.APS_CORRECTION] = 0
            paths = glob.glob(join(cls.BASE_OUT_DIR, 'geo_*-*.tif'))
            paths = sorted(paths)
            params[cf.PARALLEL] = False
            params[cf.ORBFIT_OFFSET] = True
            params[cf.TEMP_MLOOKED_DIR] = cls.BASE_OUT_DIR.join(
                cf.TEMP_MLOOKED_DIR)
            params[cf.INTERFEROGRAM_FILES] = [
                MultiplePaths(p, params) for p in paths
            ]
            for p in params[cf.INTERFEROGRAM_FILES]:  # cheat
                p.sampled_path = p.converted_path
                p.tmp_sampled_path = p.converted_path
            params["rows"], params["cols"] = 2, 2
            params[cf.REF_PIXEL_FILE] = Configuration.ref_pixel_path(params)
            Path(params[cf.OUT_DIR]).joinpath(cf.APS_ERROR_DIR).mkdir(
                exist_ok=True, parents=True)
            Path(params[cf.OUT_DIR]).joinpath(cf.MST_DIR).mkdir(exist_ok=True,
                                                                parents=True)
            correct.correct_ifgs(params)

            if not hasattr(cls, 'ifgs'):
                cls.ifgs = get_ifgs(out_dir=cls.BASE_OUT_DIR)
        except:
            # revert working dir & avoid paths busting other tests
            os.chdir(CURRENT_DIR)
            raise
コード例 #13
0
 def setup_class(cls):
     """
     Get a copy of the GAMMA params and also use this to verify that 
     they are correct before we start testing.
     """
     cls.params = Configuration(TEST_CONF_GAMMA).__dict__
     cls.roipac_params = config.get_config_params(TEST_CONF_ROIPAC)
     cls.dummy_dir = '/i/should/not/exist/'
     if os.path.exists(cls.dummy_dir):
         raise IOError("'dummy_dir' needs to be non-existant for testing.")
コード例 #14
0
ファイル: test_config.py プロジェクト: wzmucas/PyRate
 def setUp(self):
     self.params = config.get_config_params(TEST_CONF_GAMMA, 'process')
     self.dummy_dir = '/i/should/not/exist'
     crop_opts = config._crop_opts(self.params)
     self.extents, self.n_cols, self.n_rows, _ = \
         _get_prepifg_info(self.params[IFG_FILE_LIST], self.params[OUT_DIR], self.params)
     self.n_epochs, self.max_span = \
         _get_temporal_info(self.params[IFG_FILE_LIST], self.params[OUT_DIR])
     if os.path.exists(self.dummy_dir):
         raise IOError("{dummy_dir} needs to not exist for test purposes.")
コード例 #15
0
    def tearDownClass(cls):
        try:
            shutil.rmtree(cls.temp_out_dir)
        except PermissionError:
            print("File opened by another process.")

        try:
            common.remove_tifs(
                cf.get_config_params(common.TEST_CONF_ROIPAC)[cf.OBS_DIR])
        except PermissionError:
            print("File opened by another process.")

        for ifg in cls.ifgs:
            ifg.close()
コード例 #16
0
ファイル: test_refpixel.py プロジェクト: bopopescu/PyRate
 def setUp(self):
     self.params = cf.get_config_params(TEST_CONF_ROIPAC)
     self.params[cf.PARALLEL] = True
     self.params[cf.OUT_DIR], self.ifg_paths = copy_small_ifg_file_list()
     self.params_alt_ref_frac = copy.copy(self.params)
     self.params_alt_ref_frac[cf.REF_MIN_FRAC] = 0.5
     self.params_all_2s = copy.copy(self.params)
     self.params_all_2s[cf.REFNX] = 2
     self.params_all_2s[cf.REFNY] = 2
     self.params_chipsize_15 = copy.copy(self.params_all_2s)
     self.params_chipsize_15[cf.REF_CHIP_SIZE] = 15
     self.params_all_1s = copy.copy(self.params)
     self.params_all_1s[cf.REFNX] = 1
     self.params_all_1s[cf.REFNY] = 1
     self.params_all_1s[cf.REF_MIN_FRAC] = 0.7
コード例 #17
0
ファイル: test_config.py プロジェクト: bopopescu/PyRate
    def test_inc_vs_ele_maps_ele_provided(self):
        self.make_input_files(ele=common.SML_TEST_ELEVATION)
        assert os.path.exists(self.conf_file)
        params = config.get_config_params(self.conf_file)
        # incidence variables
        self.assertIn(config.APS_INCIDENCE_MAP, params.keys())
        self.assertIn(config.APS_INCIDENCE_EXT, params.keys())
        self.assertIsNone(params[config.APS_INCIDENCE_MAP])
        self.assertIsNone(params[config.APS_INCIDENCE_EXT])

        # elevation variables
        self.assertIn(config.APS_ELEVATION_MAP, params.keys())
        self.assertIsNotNone(params[config.APS_ELEVATION_MAP])
        self.assertIn(config.APS_ELEVATION_EXT, params.keys())
        self.assertIn(config.APS_ELEVATION_MAP, params.keys())
コード例 #18
0
ファイル: test_orbital.py プロジェクト: truth-quark/PyRate
    def setUp(self):
        self.BASE_DIR = tempfile.mkdtemp()
        self.params = cf.get_config_params(TEST_CONF_ROIPAC)
        # change to orbital error correction method 1
        self.params[cf.ORBITAL_FIT_METHOD] = INDEPENDENT_METHOD
        self.params[cf.ORBITAL_FIT_LOOKS_X] = 2
        self.params[cf.ORBITAL_FIT_LOOKS_Y] = 2
        self.params[cf.PARALLEL] = False

        data_paths = [os.path.join(SML_TEST_TIF, p) for p in IFMS16]
        self.ifg_paths = [
            os.path.join(self.BASE_DIR, os.path.basename(d))
            for d in data_paths
        ]

        for d in data_paths:
            shutil.copy(d, os.path.join(self.BASE_DIR, os.path.basename(d)))
コード例 #19
0
ファイル: test_refpixel.py プロジェクト: bopopescu/PyRate
 def setUp(self):
     self.params = cf.get_config_params(TEST_CONF_ROIPAC)
     self.params[cf.PARALLEL] = 0
     self.params[cf.OUT_DIR], self.ifg_paths = copy_small_ifg_file_list()
     conf_file = Path(self.params[cf.OUT_DIR], 'conf_file.conf')
     cf.write_config_file(params=self.params, output_conf_file=conf_file)
     self.params = Configuration(conf_file).__dict__
     self.params_alt_ref_frac = copy.copy(self.params)
     self.params_alt_ref_frac[cf.REF_MIN_FRAC] = 0.5
     self.params_all_2s = copy.copy(self.params)
     self.params_all_2s[cf.REFNX] = 2
     self.params_all_2s[cf.REFNY] = 2
     self.params_chipsize_15 = copy.copy(self.params_all_2s)
     self.params_chipsize_15[cf.REF_CHIP_SIZE] = 15
     self.params_all_1s = copy.copy(self.params)
     self.params_all_1s[cf.REFNX] = 1
     self.params_all_1s[cf.REFNY] = 1
     self.params_all_1s[cf.REF_MIN_FRAC] = 0.7
コード例 #20
0
ファイル: test_pyrate.py プロジェクト: bopopescu/PyRate
    def setUpClass(cls):

        # testing constants2
        cls.BASE_DIR = tempfile.mkdtemp()
        cls.BASE_OUT_DIR = join(cls.BASE_DIR, 'out')
        cls.BASE_DEM_DIR = join(cls.BASE_DIR, 'dem')
        cls.BASE_DEM_FILE = join(cls.BASE_DEM_DIR, 'roipac_test_trimmed.tif')

        try:
            # copy source data (treat as prepifg already run)
            os.makedirs(cls.BASE_OUT_DIR)
            for path in glob.glob(join(common.SML_TEST_TIF, '*')):
                dest = join(cls.BASE_OUT_DIR, os.path.basename(path))
                shutil.copy(path, dest)
                os.chmod(dest, 0o660)

            os.makedirs(cls.BASE_DEM_DIR)
            orig_dem = common.SML_TEST_DEM_TIF
            os.symlink(orig_dem, cls.BASE_DEM_FILE)
            os.chdir(cls.BASE_DIR)

            # Turn off validation because we're in a different working dir
            #  and relative paths in config won't be work.
            params = config.get_config_params(common.TEST_CONF_ROIPAC)
            params[cf.OUT_DIR] = cls.BASE_OUT_DIR
            params[cf.PROCESSOR] = 0  # roipac
            params[cf.APS_CORRECTION] = 0
            paths = glob.glob(join(cls.BASE_OUT_DIR, 'geo_*-*.tif'))
            params[cf.PARALLEL] = False
            params[cf.INTERFEROGRAM_FILES] = [
                MultiplePaths(cls.BASE_OUT_DIR, p) for p in paths
            ]
            for p in params[cf.INTERFEROGRAM_FILES]:  # cheat
                p.sampled_path = p.converted_path
            process.process_ifgs(sorted(paths), params, 2, 2)

            if not hasattr(cls, 'ifgs'):
                cls.ifgs = get_ifgs(out_dir=cls.BASE_OUT_DIR)
        except:
            # revert working dir & avoid paths busting other tests
            os.chdir(CURRENT_DIR)
            raise
コード例 #21
0
ファイル: test_covariance.py プロジェクト: truth-quark/PyRate
    def setUpClass(cls):

        params = cf.get_config_params(TEST_CONF_ROIPAC)
        cls.temp_out_dir = tempfile.mkdtemp()
        sys.argv = ['prepifg.py', TEST_CONF_ROIPAC]
        params[cf.OUT_DIR] = cls.temp_out_dir
        params[cf.TMPDIR] = os.path.join(cls.temp_out_dir, cf.TMPDIR)
        shared.mkdir_p(params[cf.TMPDIR])
        params[cf.REF_EST_METHOD] = 2
        conv2tif.main(params)
        prepifg.main(params)
        cls.params = params
        xlks, ylks, crop = cf.transform_params(params)
        base_ifg_paths = cf.original_ifg_paths(params[cf.IFG_FILE_LIST],
                                               params[cf.OBS_DIR])
        dest_paths = cf.get_dest_paths(base_ifg_paths, crop, params, xlks)
        ifgs = common.pre_prepare_ifgs(dest_paths, params)
        refx, refy = process._ref_pixel_calc(dest_paths, params)
        pyrate.core.orbital.remove_orbital_error(ifgs, params)
        ifgs = prepare_ifgs_without_phase(dest_paths, params)
        for ifg in ifgs:
            ifg.close()
        _, cls.ifgs = process._ref_phase_estimation(dest_paths, params, refx,
                                                    refy)
        ifgs[0].open()
        r_dist = RDist(ifgs[0])()
        ifgs[0].close()
        # Calculate interferogram noise
        cls.maxvar = [
            cvd(i,
                params,
                r_dist,
                calc_alpha=True,
                save_acg=True,
                write_vals=True)[0] for i in dest_paths
        ]
        cls.vcmt = get_vcmt(ifgs, cls.maxvar)
        for ifg in ifgs:
            ifg.close()
コード例 #22
0
    def setUpClass(cls):

        params = cf.get_config_params(common.TEST_CONF_ROIPAC)
        cls.temp_out_dir = tempfile.mkdtemp()
        sys.argv = ['prepifg.py', common.TEST_CONF_ROIPAC]
        params[cf.OUT_DIR] = cls.temp_out_dir
        params[cf.TMPDIR] = cls.temp_out_dir
        conv2tif.main(params)
        prepifg.main(params)

        params[cf.OUT_DIR] = cls.temp_out_dir
        params[cf.REF_EST_METHOD] = 2
        params[cf.PARALLEL] = True

        xlks, ylks, crop = cf.transform_params(params)

        base_ifg_paths = cf.original_ifg_paths(params[cf.IFG_FILE_LIST],
                                               params[cf.OBS_DIR])

        dest_paths = cf.get_dest_paths(base_ifg_paths, crop, params, xlks)

        # start run_pyrate copy
        ifgs = common.pre_prepare_ifgs(dest_paths, params)
        # Estimate reference pixel location
        refx, refy = process._ref_pixel_calc(dest_paths, params)

        # Estimate and remove orbit errors
        pyrate.core.orbital.remove_orbital_error(ifgs, params)

        for i in ifgs:
            i.close()

        ifgs = common.pre_prepare_ifgs(dest_paths, params)

        for i in ifgs:
            i.close()

        cls.ref_phs, cls.ifgs = process._ref_phase_estimation(
            dest_paths, params, refx, refy)
コード例 #23
0
ファイル: common.py プロジェクト: bopopescu/PyRate
def manipulate_test_conf(conf_file, temp_obs_dir):
    params = cf.get_config_params(conf_file)
    copytree(params[cf.OBS_DIR], temp_obs_dir)
    # manipulate params
    params[cf.OBS_DIR] = temp_obs_dir.as_posix()
    outdir = temp_obs_dir.joinpath('out')
    outdir.mkdir(exist_ok=True)
    params[cf.OUT_DIR] = outdir.as_posix()
    params[cf.DEM_FILE] = temp_obs_dir.joinpath(
        Path(params[cf.DEM_FILE]).name).as_posix()
    params[cf.DEM_HEADER_FILE] = temp_obs_dir.joinpath(
        Path(params[cf.DEM_HEADER_FILE]).name).as_posix()
    params[cf.HDR_FILE_LIST] = temp_obs_dir.joinpath(
        Path(params[cf.HDR_FILE_LIST]).name).as_posix()
    params[cf.SLC_DIR] = temp_obs_dir.as_posix()
    params[cf.IFG_FILE_LIST] = temp_obs_dir.joinpath(
        Path(params[cf.IFG_FILE_LIST]).name).as_posix()
    params[cf.COH_FILE_DIR] = temp_obs_dir.as_posix()
    params[cf.APS_INCIDENCE_MAP] = temp_obs_dir.joinpath(
        Path(params[cf.APS_INCIDENCE_MAP]).name).as_posix()
    params[cf.TMPDIR] = temp_obs_dir.joinpath(Path(
        params[cf.TMPDIR]).name).as_posix()
    return params
コード例 #24
0
    def setup_method(cls):
        cls.params = cf.get_config_params(TEST_CONF_ROIPAC)
        cls.params[cf.PARALLEL] = 1
        cls.params[cf.OUT_DIR], cls.ifg_paths = copy_small_ifg_file_list()
        conf_file = Path(cls.params[cf.OUT_DIR], 'conf_file.conf')
        pyrate.configuration.write_config_file(params=cls.params,
                                               output_conf_file=conf_file)
        cls.params = Configuration(conf_file).__dict__
        cls.params_alt_ref_frac = copy.copy(cls.params)
        cls.params_alt_ref_frac[cf.REF_MIN_FRAC] = 0.5
        cls.params_all_2s = copy.copy(cls.params)
        cls.params_all_2s[cf.REFNX] = 2
        cls.params_all_2s[cf.REFNY] = 2
        cls.params_chipsize_15 = copy.copy(cls.params_all_2s)
        cls.params_chipsize_15[cf.REF_CHIP_SIZE] = 15
        cls.params_all_1s = copy.copy(cls.params)
        cls.params_all_1s[cf.REFNX] = 1
        cls.params_all_1s[cf.REFNY] = 1
        cls.params_all_1s[cf.REF_MIN_FRAC] = 0.7

        for p, q in zip(cls.params[cf.INTERFEROGRAM_FILES],
                        cls.ifg_paths):  # hack
            p.sampled_path = q
            p.tmp_sampled_path = q
コード例 #25
0
    def setUpClass(cls):
        cls.tif_dir = tempfile.mkdtemp()
        cls.test_conf = common.TEST_CONF_GAMMA

        # change the required params
        cls.params = cf.get_config_params(cls.test_conf)
        cls.params[cf.OBS_DIR] = common.SML_TEST_GAMMA
        cls.params[cf.PROCESSOR] = 1  # gamma
        file_list = list(
            cf.parse_namelist(os.path.join(common.SML_TEST_GAMMA, 'ifms_17')))
        fd, cls.params[cf.IFG_FILE_LIST] = tempfile.mkstemp(suffix='.conf',
                                                            dir=cls.tif_dir)
        os.close(fd)
        # write a short filelist with only 3 gamma unws
        with open(cls.params[cf.IFG_FILE_LIST], 'w') as fp:
            for f in file_list[:3]:
                fp.write(os.path.join(common.SML_TEST_GAMMA, f) + '\n')
        cls.params[cf.OUT_DIR] = cls.tif_dir
        cls.params[cf.PARALLEL] = 0
        cls.params[cf.REF_EST_METHOD] = 1
        cls.params[cf.DEM_FILE] = common.SML_TEST_DEM_GAMMA
        # base_unw_paths need to be geotiffed and multilooked by run_prepifg
        cls.base_unw_paths = cf.original_ifg_paths(
            cls.params[cf.IFG_FILE_LIST], cls.params[cf.OBS_DIR])
        cls.base_unw_paths.append(common.SML_TEST_DEM_GAMMA)

        xlks, ylks, crop = cf.transform_params(cls.params)
        # dest_paths are tifs that have been geotif converted and multilooked
        conv2tif.main(cls.params)
        prepifg.main(cls.params)
        # run_prepifg.gamma_prepifg(cls.base_unw_paths, cls.params)
        cls.base_unw_paths.pop()  # removed dem as we don't want it in ifgs

        cls.dest_paths = cf.get_dest_paths(cls.base_unw_paths, crop,
                                           cls.params, xlks)
        cls.ifgs = common.small_data_setup(datafiles=cls.dest_paths)
コード例 #26
0
ファイル: test_pyrate.py プロジェクト: truth-quark/PyRate
    def setUpClass(cls):
        params = config.get_config_params(common.TEST_CONF_ROIPAC)
        cls.tmp_dir = tempfile.mkdtemp()
        common.copytree(common.SML_TEST_TIF, cls.tmp_dir)
        tifs = glob.glob(os.path.join(cls.tmp_dir, "*.tif"))
        for t in tifs:
            os.chmod(t, 0o644)
        small_ifgs = common.small_data_setup(datafiles=tifs)
        ifg_paths = [i.data_path for i in small_ifgs]

        cls.ifg_ret = common.pre_prepare_ifgs(ifg_paths, params=params)
        for i in cls.ifg_ret:
            i.close()

        nan_conversion = params[cf.NAN_CONVERSION]

        # prepare a second set
        cls.tmp_dir2 = tempfile.mkdtemp()
        common.copytree(common.SML_TEST_TIF, cls.tmp_dir2)
        tifs = glob.glob(os.path.join(cls.tmp_dir2, "*.tif"))
        for t in tifs:
            os.chmod(t, 0o644)
        small_ifgs = common.small_data_setup(datafiles=tifs)
        ifg_paths = [i.data_path for i in small_ifgs]

        cls.ifgs = [shared.Ifg(p) for p in ifg_paths]

        for i in cls.ifgs:
            if not i.is_open:
                i.open(readonly=False)
            if nan_conversion:  # nan conversion happens here in networkx mst
                i.nodata_value = params[cf.NO_DATA_VALUE]
                i.convert_to_nans()
            if not i.mm_converted:
                i.convert_to_mm()
            i.close()
コード例 #27
0
 def teardown_class(cls):
     shutil.rmtree(cls.temp_out_dir)
     common.remove_tifs(
         cf.get_config_params(common.TEST_CONF_ROIPAC)[cf.OBS_DIR])
コード例 #28
0
ファイル: test_prepifg.py プロジェクト: bopopescu/PyRate
 def tearDown(self):
     params = cf.get_config_params(self.conf_file)
     shutil.rmtree(self.base_dir)
     common.remove_tifs(params[cf.OBS_DIR])
コード例 #29
0
ファイル: test_timeseries.py プロジェクト: truth-quark/PyRate
    def setUpClass(cls):
        params = cf.get_config_params(common.TEST_CONF_ROIPAC)
        cls.temp_out_dir = tempfile.mkdtemp()
        sys.argv = ['prepifg.py', common.TEST_CONF_ROIPAC]
        params[cf.OUT_DIR] = cls.temp_out_dir
        conv2tif.main(params)
        prepifg.main(params)

        params[cf.REF_EST_METHOD] = 2

        xlks, ylks, crop = cf.transform_params(params)

        base_ifg_paths = cf.original_ifg_paths(params[cf.IFG_FILE_LIST],
                                               params[cf.OBS_DIR])

        dest_paths = cf.get_dest_paths(base_ifg_paths, crop, params, xlks)
        # start run_pyrate copy
        ifgs = common.pre_prepare_ifgs(dest_paths, params)
        mst_grid = common.mst_calculation(dest_paths, params)

        refx, refy = process._ref_pixel_calc(dest_paths, params)

        # Estimate and remove orbit errors
        pyrate.core.orbital.remove_orbital_error(ifgs, params)
        ifgs = common.prepare_ifgs_without_phase(dest_paths, params)
        for ifg in ifgs:
            ifg.close()
        _, ifgs = process._ref_phase_estimation(dest_paths, params, refx, refy)
        ifgs[0].open()
        r_dist = covariance.RDist(ifgs[0])()
        ifgs[0].close()
        # Calculate interferogram noise
        maxvar = [covariance.cvd(i, params, r_dist)[0] for i in dest_paths]
        for ifg in ifgs:
            ifg.open()
        vcmt = covariance.get_vcmt(ifgs, maxvar)
        for ifg in ifgs:
            ifg.close()
            ifg.open()
            ifg.nodata_value = 0.0

        params[cf.TIME_SERIES_METHOD] = 2
        params[cf.PARALLEL] = 1
        # Calculate time series
        cls.tsincr, cls.tscum, _ = common.calculate_time_series(
            ifgs, params, vcmt, mst=mst_grid)

        params[cf.PARALLEL] = 2

        # Calculate time series
        cls.tsincr_2, cls.tscum_2, _ = \
            common.calculate_time_series(ifgs, params, vcmt, mst=mst_grid)

        params[cf.PARALLEL] = 0
        # Calculate time series serailly by the pixel
        cls.tsincr_0, cls.tscum_0, _ = \
            common.calculate_time_series(ifgs, params, vcmt, mst=mst_grid)

        # copy legacy data
        SML_TIME_SERIES_DIR = os.path.join(common.SML_TEST_DIR,
                                   'time_series')
        tsincr_path = os.path.join(SML_TIME_SERIES_DIR,
                                   'ts_incr_interp0_method2.csv')
        ts_incr = np.genfromtxt(tsincr_path)

        tscum_path = os.path.join(SML_TIME_SERIES_DIR,
                                  'ts_cum_interp0_method2.csv')
        ts_cum = np.genfromtxt(tscum_path)

        cls.ts_incr = np.reshape(ts_incr,
                                 newshape=cls.tsincr_0.shape, order='F')
        cls.ts_cum = np.reshape(ts_cum, newshape=cls.tscum_0.shape, order='F')
コード例 #30
0
ファイル: test_config.py プロジェクト: bopopescu/PyRate
 def test_roipac_conf_passes(self):
     config.get_config_params(TEST_CONF_ROIPAC)