def modify_params(conf_file, parallel_vs_serial, output_conf_file): tdir = Path(tempdir()) params = manipulate_test_conf(conf_file, tdir) if params[C.PROCESSOR] == 1: # turn on coherence for gamma params[C.COH_MASK] = 1 params[C.PARALLEL] = parallel_vs_serial params[C.PROCESSES] = 4 params[C.APSEST] = 1 params[C.IFG_LKSX], params[C.IFG_LKSY] = get_lks, get_lks params[C.REFNX], params[C.REFNY] = 2, 2 params[C.IFG_CROP_OPT] = get_crop params[C.ORBITAL_FIT_LOOKS_X], params[ C.ORBITAL_FIT_LOOKS_Y] = orbfit_lks, orbfit_lks params[C.ORBITAL_FIT] = 1 params[C.ORBITAL_FIT_METHOD] = orbfit_method params[C.ORBITAL_FIT_DEGREE] = orbfit_degrees params[C.REF_EST_METHOD] = ref_est_method params[C.MAX_LOOP_LENGTH] = 3 params["rows"], params["cols"] = 3, 2 params["savenpy"] = 1 params["notiles"] = params["rows"] * params["cols"] # number of tiles # write new temp config output_conf = tdir.joinpath(output_conf_file) write_config_file(params=params, output_conf_file=output_conf) return output_conf, params
def series_ifgs(gamma_conf): print('======================setup series==========================') tdir = Path(tempfile.mkdtemp()) params_s = manipulate_test_conf(gamma_conf, tdir) params_s[C.PARALLEL] = 0 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params_s, output_conf_file=output_conf) params_s = Configuration(output_conf).__dict__ conv2tif.main(params_s) prepifg.main(params_s) serial_ifgs = list( Path(params_s[C.INTERFEROGRAM_DIR]).glob(ifg_glob_suffix)) coh_files = list(Path(params_s[C.COHERENCE_DIR]).glob(coh_glob_suffix)) s_ifgs = small_data_setup(datafiles=serial_ifgs + coh_files) yield s_ifgs
def test_small_data_coherence(gamma_or_mexicoa_conf): work_dir = Path(tempfile.mkdtemp()) params = common.manipulate_test_conf(conf_file=gamma_or_mexicoa_conf, work_dir=work_dir) params[c.COH_MASK] = 1 ifg_multilist = copy(params[c.INTERFEROGRAM_FILES]) conv2tif.main(params) for i in ifg_multilist: p = Path(i.converted_path) p.chmod(0o664) # assign write permission as conv2tif output is readonly ifg = pyrate.core.shared.dem_or_ifg(data_path=p.as_posix()) if not isinstance(ifg, Ifg): continue ifg.open() # now do coherence masking and compare ifg = pyrate.core.shared.dem_or_ifg(data_path=p.as_posix()) ifg.open() converted_coh_file_path = pyrate.core.prepifg_helper.coherence_paths_for(p, params, tif=True) gdal_python.coherence_masking(ifg.dataset, coh_file_path=converted_coh_file_path, coh_thr=params[c.COH_THRESH] ) nans = np.isnan(ifg.phase_data) coherence_path = pyrate.core.prepifg_helper.coherence_paths_for(p, params, tif=True) cifg = Ifg(coherence_path) cifg.open() cifg_below_thrhold = cifg.phase_data < params[c.COH_THRESH] np.testing.assert_array_equal(nans, cifg_below_thrhold) shutil.rmtree(work_dir)
def series_ifgs(gamma_conf): print('======================setup series==========================') tdir = Path(tempfile.mkdtemp()) params_s = manipulate_test_conf(gamma_conf, tdir) params_s[cf.PARALLEL] = 0 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params_s, output_conf_file=output_conf) params_s = Configuration(output_conf).__dict__ conv2tif.main(params_s) prepifg.main(params_s) serial_ifgs = list(Path(tdir).joinpath('out').glob(ifg_glob_suffix)) coh_files = list(Path(tdir).joinpath('out').glob(coh_glob_suffix)) s_ifgs = small_data_setup(datafiles=serial_ifgs + coh_files) yield s_ifgs print('======================teardown series==========================') shutil.rmtree(params_s[cf.OBS_DIR], ignore_errors=True)
def test_prepifg_treats_inputs_and_outputs_read_only(gamma_conf, tempdir, coh_mask): tdir = Path(tempdir()) params = common.manipulate_test_conf(gamma_conf, tdir) params[C.COH_MASK] = coh_mask output_conf = tdir.joinpath('conf.cfg') pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) params = Configuration(output_conf.as_posix()).__dict__ conv2tif.main(params) tifs = list(Path(params[C.INTERFEROGRAM_DIR]).glob('*_unw.tif')) assert len(tifs) == 17 params = Configuration(output_conf.as_posix()).__dict__ prepifg.main(params) cropped_ifgs = list(Path(params[C.INTERFEROGRAM_DIR]).glob('*_ifg.tif')) cropped_cohs = list(Path(params[C.COHERENCE_DIR]).glob('*_coh.tif')) cropped_dem = list(Path(params[C.GEOMETRY_DIR]).glob('*_dem.tif')) if params[C.COH_FILE_LIST] is not None: # 17 + 1 dem + 17 coh files assert len(cropped_ifgs) + len(cropped_cohs) + len(cropped_dem) == 35 else: # 17 + 1 dem assert len(cropped_ifgs) + len(cropped_cohs) + len(cropped_dem) == 18 # check all tifs from conv2tif are still readonly for t in tifs: assert t.stat().st_mode == 33060 # check all prepifg outputs are readonly for c in cropped_cohs + cropped_ifgs + cropped_dem: assert c.stat().st_mode == 33060
def series_ifgs(gamma_conf): print('======================setup series==========================') tdir = Path(tempfile.mkdtemp()) params_s = manipulate_test_conf(gamma_conf, tdir) params_s[cf.PARALLEL] = 0 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params_s, output_conf_file=output_conf) params_s = Configuration(output_conf).__dict__ gtif_paths = conv2tif.main(params_s) prepifg.main(params_s) parallel_df = list(Path(tdir).joinpath('out').glob(glob_prefix)) s_ifgs = small_data_setup(datafiles=parallel_df) yield s_ifgs print('======================teardown series==========================') shutil.rmtree(params_s[cf.OBS_DIR])
def test_conv2tif_file_types(tempdir, gamma_conf): tdir = Path(tempdir()) params = manipulate_test_conf(gamma_conf, tdir) params[cf.COH_MASK] = 1 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params, output_conf_file=output_conf) params_s = configuration.Configuration(output_conf).__dict__ conv2tif.main(params_s) ifg_files = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_ifg.tif')) coh_files = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_coh.tif')) dem_file = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_dem.tif'))[0] # assert coherence and ifgs have correct metadata for i in itertools.chain(*[ifg_files, coh_files]): ifg = Ifg(i) ifg.open() md = ifg.meta_data if i.name.endswith('_ifg.tif'): assert md[ifc.DATA_TYPE] == ifc.ORIG continue if i.name.endswith('_coh.tif'): assert md[ifc.DATA_TYPE] == ifc.COH continue # assert dem has correct metadata dem = DEM(dem_file.as_posix()) dem.open() md = dem.dataset.GetMetadata() assert md[ifc.DATA_TYPE] == ifc.DEM shutil.rmtree(tdir)
def modify_params(conf_file, parallel, output_conf_file, largetifs): tdir = Path(tempdir()) params = manipulate_test_conf(conf_file, tdir) params[cf.COH_MASK] = coh_mask params[cf.PARALLEL] = parallel params[cf.PROCESSES] = 4 params[cf.APSEST] = 1 params[cf.LARGE_TIFS] = largetifs params[cf.IFG_LKSX], params[cf.IFG_LKSY] = get_lks, get_lks params[cf.REFX], params[cf.REFY] = ref_pixel params[cf.REFNX], params[cf.REFNY] = 4, 4 params[cf.IFG_CROP_OPT] = local_crop params[cf.ORBITAL_FIT_LOOKS_X], params[cf.ORBITAL_FIT_LOOKS_Y] = orbfit_lks, orbfit_lks params[cf.ORBITAL_FIT] = 1 params[cf.ORBITAL_FIT_METHOD] = orbfit_method params[cf.ORBITAL_FIT_DEGREE] = orbfit_degrees params[cf.REF_EST_METHOD] = ref_est_method params["rows"], params["cols"] = 3, 2 params["savenpy"] = 1 params["notiles"] = params["rows"] * params["cols"] # number of tiles print(params) # write new temp config output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) return output_conf, params
def create_stack_output(tempdir, gamma_conf): tdir = Path(tempdir()) params = manipulate_test_conf(gamma_conf, tdir) output_conf_file = tdir.joinpath('conf.cfg') output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params, output_conf_file=output_conf) check_call(f"pyrate conv2tif -f {output_conf}", shell=True) check_call(f"pyrate prepifg -f {output_conf}", shell=True) check_call(f"pyrate process -f {output_conf}", shell=True) params = Configuration(output_conf).__dict__ return params, tdir
def _get_mlooked_files(gamma_conf, tdir, refx, refy): params = manipulate_test_conf(gamma_conf, tdir) params[cf.REFX] = refx params[cf.REFY] = refy output_conf_file = 'config.conf' output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params, output_conf_file=output_conf) check_call(f"pyrate conv2tif -f {output_conf}", shell=True) check_call(f"pyrate prepifg -f {output_conf}", shell=True) stdout = run(f"pyrate process -f {output_conf}", shell=True, capture_output=True, text=True) print("============================================", stdout) return params, stdout
def create_merge_output(tempdir, gamma_conf): tdir = Path(tempdir()) params = manipulate_test_conf(gamma_conf, tdir) output_conf_file = tdir.joinpath('conf.cfg') output_conf = tdir.joinpath(output_conf_file) write_config_file(params=params, output_conf_file=output_conf) check_call(f"pyrate conv2tif -f {output_conf}", shell=True) check_call(f"pyrate prepifg -f {output_conf}", shell=True) check_call(f"pyrate correct -f {output_conf}", shell=True) check_call(f"pyrate timeseries -f {output_conf}", shell=True) check_call(f"pyrate stack -f {output_conf}", shell=True) params = Configuration(output_conf).__dict__ _merge_stack(params) _merge_linrate(params) return params
def _get_mlooked_files(gamma_conf, tdir, refx, refy): params = manipulate_test_conf(gamma_conf, tdir) params[C.REFX] = refx params[C.REFY] = refy output_conf_file = 'config.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) params = Configuration(output_conf).__dict__ conv2tif.main(params) params = Configuration(output_conf).__dict__ prepifg.main(params) err = run(f"pyrate correct -f {output_conf}", shell=True, universal_newlines=True, stderr=PIPE).stderr return params, err
def test_process_treats_prepif_outputs_readonly(gamma_conf, tempdir, coh_mask): from pyrate.configuration import Configuration tdir = Path(tempdir()) params = common.manipulate_test_conf(gamma_conf, tdir) params[cf.COH_MASK] = coh_mask params[cf.PARALLEL] = 0 output_conf = tdir.joinpath('conf.cfg') pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) params = Configuration(output_conf).__dict__ conv2tif.main(params) tifs = list(Path(params[cf.OUT_DIR]).glob('*_unw.tif')) assert len(tifs) == 17 if params[cf.COH_FILE_LIST] is not None: coh_tifs = list(Path(params[cf.OUT_DIR]).glob('*_cc.tif')) assert len(coh_tifs) == 17 params = Configuration(output_conf).__dict__ prepifg.main(params) cropped_coh = list(Path(params[cf.OUT_DIR]).glob('*_coh.tif')) cropped_ifgs = list(Path(params[cf.OUT_DIR]).glob('*_ifg.tif')) dem_ifgs = list(Path(params[cf.OUT_DIR]).glob('*_dem.tif')) if params[cf.COH_FILE_LIST] is not None: # 17 + 1 dem + 17 coh files assert len(cropped_coh) + len(cropped_ifgs) + len(dem_ifgs) == 35 else: # 17 + 1 dem assert len(cropped_coh) + len(cropped_ifgs) + len(dem_ifgs) == 18 # check all tifs from conv2tif are still readonly for t in tifs: assert t.stat().st_mode == 33060 # check all prepifg outputs are readonly for c in cropped_coh + cropped_ifgs: assert c.stat().st_mode == 33060 params = Configuration(output_conf).__dict__ correct.main(params) # check all after correct steps multilooked files are still readonly for c in cropped_coh + cropped_ifgs + dem_ifgs: assert c.stat().st_mode == 33060 shutil.rmtree(params[cf.OUT_DIR])
def test_prepifg_treat_inputs_read_only(gamma_conf, tempdir, coh_mask): tdir = Path(tempdir()) params = common.manipulate_test_conf(gamma_conf, tdir) params[cf.COH_MASK] = coh_mask output_conf = tdir.joinpath('conf.cfg') cf.write_config_file(params=params, output_conf_file=output_conf) check_call(f"mpirun -n 3 pyrate conv2tif -f {output_conf}", shell=True) tifs = list(Path(params[cf.OUT_DIR]).glob('*_unw_ifg.tif')) assert len(tifs) == 17 check_call(f"mpirun -n 3 pyrate prepifg -f {output_conf}", shell=True) cropped = list(Path(params[cf.OUT_DIR]).glob('*cr.tif')) if coh_mask: # 17 + 1 dem + 17 coh files assert len(cropped) == 35 else: # 17 + 1 dem assert len(cropped) == 18 # check all tifs from conv2tif are still readonly for t in tifs: assert t.stat().st_mode == 33060
def parallel_ifgs(gamma_conf): tdir = Path(tempfile.mkdtemp()) params_p = manipulate_test_conf(gamma_conf, tdir) params_p[cf.PARALLEL] = 1 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params_p, output_conf_file=output_conf) params_p = Configuration(output_conf).__dict__ gtif_paths = conv2tif.main(params_p) prepifg.main(params_p) parallel_df = list(Path(tdir).joinpath('out').glob(glob_prefix)) p_ifgs = small_data_setup(datafiles=parallel_df) yield p_ifgs shutil.rmtree(params_p[cf.OBS_DIR])
def parallel_ifgs(gamma_conf): tdir = Path(tempfile.mkdtemp()) params_p = manipulate_test_conf(gamma_conf, tdir) params_p[cf.PARALLEL] = 1 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params_p, output_conf_file=output_conf) params_p = Configuration(output_conf).__dict__ conv2tif.main(params_p) prepifg.main(params_p) parallel_df = list(Path(tdir).joinpath('out').glob(ifg_glob_suffix)) parallel_coh_files = list(Path(tdir).joinpath('out').glob(coh_glob_suffix)) p_ifgs = small_data_setup(datafiles=parallel_df + parallel_coh_files) yield p_ifgs shutil.rmtree(params_p[cf.OBS_DIR], ignore_errors=True)
def parallel_ifgs(gamma_conf): tdir = Path(tempfile.mkdtemp()) params_p = manipulate_test_conf(gamma_conf, tdir) params_p[C.PARALLEL] = 1 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params_p, output_conf_file=output_conf) params_p = Configuration(output_conf).__dict__ conv2tif.main(params_p) prepifg.main(params_p) parallel_df = list( Path(params_p[C.INTERFEROGRAM_DIR]).glob(ifg_glob_suffix)) parallel_coh_files = list( Path(params_p[C.COHERENCE_DIR]).glob(coh_glob_suffix)) p_ifgs = small_data_setup(datafiles=parallel_df + parallel_coh_files) yield p_ifgs
def test_prepifg_file_types(tempdir, gamma_conf, coh_mask): tdir = Path(tempdir()) params = manipulate_test_conf(gamma_conf, tdir) params[cf.COH_MASK] = coh_mask params[cf.PARALLEL] = 0 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) cf.write_config_file(params=params, output_conf_file=output_conf) params_s = Configuration(output_conf).__dict__ conv2tif.main(params_s) # reread params from config params_s = Configuration(output_conf).__dict__ prepifg.main(params_s) ifg_files = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_ifg.tif')) assert len(ifg_files) == 17 mlooked_files = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_ifg_1rlks_1cr.tif')) assert len(mlooked_files) == 17 coh_files = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_cc_coh.tif')) mlooked_coh_files = list( Path(tdir.joinpath( params_s[cf.OUT_DIR])).glob('*_cc_coh_1rlks_1cr.tif')) if coh_mask: assert len(coh_files) == 17 assert len(mlooked_coh_files) == 17 dem_file = list( Path(tdir.joinpath(params_s[cf.OUT_DIR])).glob('*_dem.tif'))[0] mlooked_dem_file = list( Path(tdir.joinpath( params_s[cf.OUT_DIR])).glob('*_dem_1rlks_1cr.tif'))[0] import itertools # assert coherence and ifgs have correct metadata for i in itertools.chain( *[ifg_files, mlooked_files, coh_files, mlooked_coh_files]): ifg = Ifg(i) ifg.open() md = ifg.meta_data if i.name.endswith('_ifg.tif'): assert md[ifc.DATA_TYPE] == ifc.ORIG continue if i.name.endswith('_coh.tif'): assert md[ifc.DATA_TYPE] == ifc.COH continue if i.name.endswith('_cc_coh_1rlks_1cr.tif'): assert md[ifc.DATA_TYPE] == ifc.MULTILOOKED_COH continue if i.name.endswith('_ifg_1rlks_1cr.tif'): if coh_mask: assert md[ifc.DATA_TYPE] == ifc.COHERENCE else: assert md[ifc.DATA_TYPE] == ifc.MULTILOOKED continue # assert dem has correct metadata dem = DEM(dem_file.as_posix()) dem.open() md = dem.dataset.GetMetadata() assert md[ifc.DATA_TYPE] == ifc.DEM dem = DEM(mlooked_dem_file.as_posix()) dem.open() md = dem.dataset.GetMetadata() assert md[ifc.DATA_TYPE] == ifc.MLOOKED_DEM shutil.rmtree(tdir)
def test_prepifg_file_types(tempdir, gamma_conf, coh_mask): tdir = Path(tempdir()) params = manipulate_test_conf(gamma_conf, tdir) params[C.COH_MASK] = coh_mask params[C.PARALLEL] = 0 output_conf_file = 'conf.conf' output_conf = tdir.joinpath(output_conf_file) pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) params_s = Configuration(output_conf).__dict__ conv2tif.main(params_s) # reread params from config params_s = Configuration(output_conf).__dict__ prepifg.main(params_s) ifg_files = list( Path(tdir.joinpath(params_s[C.INTERFEROGRAM_DIR])).glob('*_unw.tif')) assert len(ifg_files) == 17 mlooked_files = list( Path(tdir.joinpath(params_s[C.INTERFEROGRAM_DIR])).glob('*_ifg.tif')) assert len(mlooked_files) == 17 coh_files = list( Path(tdir.joinpath(params_s[C.COHERENCE_DIR])).glob('*_cc.tif')) mlooked_coh_files = list( Path(tdir.joinpath(params_s[C.COHERENCE_DIR])).glob('*_coh.tif')) if coh_mask: assert len(coh_files) == 17 assert len(mlooked_coh_files) == 17 dem_file = list( Path(tdir.joinpath(params_s[C.GEOMETRY_DIR])).glob('*_dem.tif'))[0] mlooked_dem_file = list( Path(tdir.joinpath(params_s[C.GEOMETRY_DIR])).glob('dem.tif'))[0] import itertools # assert coherence and ifgs have correct metadata for i in itertools.chain( *[ifg_files, mlooked_files, coh_files, mlooked_coh_files]): ifg = Ifg(i) ifg.open() md = ifg.meta_data if i.name.endswith('_unw.tif'): assert md[ifc.DATA_TYPE] == ifc.ORIG assert ifc.IFG_LKSX not in md assert ifc.IFG_LKSY not in md assert ifc.IFG_CROP not in md continue if i.name.endswith('_cc.tif'): assert md[ifc.DATA_TYPE] == ifc.COH assert ifc.IFG_LKSX not in md assert ifc.IFG_LKSY not in md assert ifc.IFG_CROP not in md continue if i.name.endswith('_coh.tif'): assert md[ifc.DATA_TYPE] == ifc.MULTILOOKED_COH assert md[ifc.IFG_LKSX] == '1' assert md[ifc.IFG_LKSY] == '1' assert md[ifc.IFG_CROP] == '1' continue if i.name.endswith('_ifg.tif'): if coh_mask: assert md[ifc.DATA_TYPE] == ifc.MLOOKED_COH_MASKED_IFG assert md[ifc.IFG_LKSX] == '1' assert md[ifc.IFG_LKSY] == '1' assert md[ifc.IFG_CROP] == '1' else: assert md[ifc.DATA_TYPE] == ifc.MULTILOOKED assert md[ifc.IFG_LKSX] == '1' assert md[ifc.IFG_LKSY] == '1' assert md[ifc.IFG_CROP] == '1' continue # assert dem has correct metadata dem = DEM(dem_file.as_posix()) dem.open() md = dem.dataset.GetMetadata() assert md[ifc.DATA_TYPE] == ifc.DEM assert ifc.IFG_LKSX not in md assert ifc.IFG_LKSY not in md assert ifc.IFG_CROP not in md dem = DEM(mlooked_dem_file.as_posix()) dem.open() md = dem.dataset.GetMetadata() assert md[ifc.DATA_TYPE] == ifc.MLOOKED_DEM assert ifc.IFG_LKSX in md assert ifc.IFG_LKSY in md assert ifc.IFG_CROP in md shutil.rmtree(tdir)
def setup_class(cls): gamma_conf = common.TEST_CONF_GAMMA from tests.common import manipulate_test_conf rate_types = ['stack_rate', 'stack_error', 'stack_samples'] cls.tif_dir = Path(tempfile.mkdtemp()) params = manipulate_test_conf(gamma_conf, cls.tif_dir) from pyrate.configuration import Configuration # change the required params params[C.PROCESSES] = 4 params[C.PROCESSOR] = 1 # gamma params[C.IFG_FILE_LIST] = os.path.join(common.GAMMA_SML_TEST_DIR, 'ifms_17') params[C.PARALLEL] = 1 params[C.APS_CORRECTION] = 0 params[C.REFX], params[C.REFY] = -1, -1 rows, cols = params["rows"], params["cols"] output_conf_file = 'gamma.conf' output_conf = cls.tif_dir.joinpath(output_conf_file).as_posix() pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) config = Configuration(output_conf) params = config.__dict__ common.sub_process_run(f"pyrate conv2tif -f {output_conf}") common.sub_process_run(f"pyrate prepifg -f {output_conf}") cls.sampled_paths = [ p.tmp_sampled_path for p in params[C.INTERFEROGRAM_FILES] ] ifgs = common.small_data_setup() correct._copy_mlooked(params) tiles = pyrate.core.shared.get_tiles(cls.sampled_paths[0], rows, cols) correct.correct_ifgs(config) pyrate.main.timeseries(config) pyrate.main.stack(config) cls.refpixel_p, cls.maxvar_p, cls.vcmt_p = \ (params[C.REFX], params[C.REFY]), params[C.MAXVAR], params[ C.VCMT] cls.mst_p = common.reconstruct_mst(ifgs[0].shape, tiles, params[C.OUT_DIR]) cls.rate_p, cls.error_p, cls.samples_p = \ [common.reconstruct_stack_rate(ifgs[0].shape, tiles, params[C.TMPDIR], t) for t in rate_types] common.remove_tifs(params[C.OUT_DIR]) # now create the non parallel version cls.tif_dir_s = Path(tempfile.mkdtemp()) params = manipulate_test_conf(gamma_conf, cls.tif_dir_s) params[C.PROCESSES] = 4 params[C.PROCESSOR] = 1 # gamma params[C.IFG_FILE_LIST] = os.path.join(common.GAMMA_SML_TEST_DIR, 'ifms_17') params[C.PARALLEL] = 0 params[C.APS_CORRECTION] = 0 params[C.REFX], params[C.REFY] = -1, -1 output_conf_file = 'gamma.conf' output_conf = cls.tif_dir_s.joinpath(output_conf_file).as_posix() pyrate.configuration.write_config_file(params=params, output_conf_file=output_conf) config = Configuration(output_conf) params = config.__dict__ common.sub_process_run(f"pyrate conv2tif -f {output_conf}") common.sub_process_run(f"pyrate prepifg -f {output_conf}") correct._copy_mlooked(params) correct.correct_ifgs(config) pyrate.main.timeseries(config) pyrate.main.stack(config) cls.refpixel, cls.maxvar, cls.vcmt = \ (params[C.REFX], params[C.REFY]), params[C.MAXVAR], params[ C.VCMT] cls.mst = common.reconstruct_mst(ifgs[0].shape, tiles, params[C.OUT_DIR]) cls.rate, cls.error, cls.samples = \ [common.reconstruct_stack_rate(ifgs[0].shape, tiles, params[C.TMPDIR], t) for t in rate_types] cls.params = params