def main(params): """ Main workflow function for preparing interferograms for PyRate. :param dict params: Parameters dictionary read in from the config file """ # TODO: looks like ifg_paths are ordered according to ifg list # This probably won't be a problem because input list won't be reordered # and the original gamma generated list is ordered) this may not affect # the important pyrate stuff anyway, but might affect gen_thumbs.py. # Going to assume ifg_paths is ordered correcly # pylint: disable=too-many-branches shared.mpi_vs_multiprocess_logging("prepifg", params) ifg_paths = params[cf.INTERFEROGRAM_FILES] if params[cf.DEM_FILE] is not None: # optional DEM conversion ifg_paths.append(params[cf.DEM_FILE_PATH]) if params[cf.COH_MASK]: ifg_paths.extend(params[cf.COHERENCE_FILE_PATHS]) shared.mkdir_p(params[cf.OUT_DIR]) # create output dir user_exts = (params[cf.IFG_XFIRST], params[cf.IFG_YFIRST], params[cf.IFG_XLAST], params[cf.IFG_YLAST]) xlooks, ylooks, crop = cf.transform_params(params) ifgs = [prepifg_helper.dem_or_ifg(p.converted_path) for p in ifg_paths] exts = prepifg_helper.get_analysis_extent(crop, ifgs, xlooks, ylooks, user_exts=user_exts) process_ifgs_paths = np.array_split(ifg_paths, mpiops.size)[mpiops.rank] do_prepifg(process_ifgs_paths, exts, params) mpiops.comm.barrier() log.info("Finished prepifg")
def main(params): """ Parse parameters and prepare files for conversion. :param dict params: Parameters dictionary read in from the config file """ # TODO: looks like base_ifg_paths are ordered according to ifg list # This probably won't be a problem because input list won't be reordered # and the original gamma generated list is ordered) this may not affect # the important pyrate stuff anyway, but might affect gen_thumbs.py. # Going to assume base_ifg_paths is ordered correcly # pylint: disable=too-many-branches if params[cf.PROCESSOR] == 2: # if geotif log.warning("'conv2tif' step not required for geotiff!") return mpi_vs_multiprocess_logging("conv2tif", params) base_ifg_paths = params[cf.INTERFEROGRAM_FILES] if params[cf.COH_FILE_LIST] is not None: base_ifg_paths.extend(params[cf.COHERENCE_FILE_PATHS]) if params[cf.DEM_FILE] is not None: # optional DEM conversion base_ifg_paths.append(params[cf.DEM_FILE_PATH]) process_base_ifgs_paths = np.array_split(base_ifg_paths, mpiops.size)[mpiops.rank] gtiff_paths = do_geotiff(process_base_ifgs_paths, params) mpiops.comm.barrier() log.info("Finished 'conv2tif' step") return gtiff_paths
def main(params): """ Main workflow function for preparing interferograms for PyRate. :param dict params: Parameters dictionary read in from the config file """ # TODO: looks like ifg_paths are ordered according to ifg list # This probably won't be a problem because input list won't be reordered # and the original gamma generated list is ordered) this may not affect # the important pyrate stuff anyway, but might affect gen_thumbs.py. # Going to assume ifg_paths is ordered correcly # pylint: disable=too-many-branches shared.mpi_vs_multiprocess_logging("prepifg", params) ifg_paths = params[cf.INTERFEROGRAM_FILES] if params[cf.DEM_FILE] is not None: # optional DEM conversion ifg_paths.append(params[cf.DEM_FILE_PATH]) shared.mkdir_p(params[cf.OUT_DIR]) # create output dir process_ifgs_paths = np.array_split(ifg_paths, mpiops.size)[mpiops.rank] gtiff_paths = [p.converted_path for p in process_ifgs_paths] do_prepifg(gtiff_paths, params) mpiops.comm.barrier() log.info("Finished prepifg")
def main(config): """ Top level function to perform PyRate workflow on given interferograms :param dict params: Dictionary of configuration parameters :return: refpt: tuple of reference pixel x and y position :rtype: tuple :return: maxvar: array of maximum variance values of interferograms :rtype: ndarray :return: vcmt: Variance-covariance matrix array :rtype: ndarray """ params = config.__dict__ mpi_vs_multiprocess_logging("correct", params) _copy_mlooked(params) return correct_ifgs(config)
def main(params): """ Top level function to perform PyRate workflow on given interferograms :param dict params: Dictionary of configuration parameters :return: refpt: tuple of reference pixel x and y position :rtype: tuple :return: maxvar: array of maximum variance values of interferograms :rtype: ndarray :return: vcmt: Variance-covariance matrix array :rtype: ndarray """ mpi_vs_multiprocess_logging("correct", params) # Make a copy of the multi-looked files for manipulation during correct steps _copy_mlooked(params) return correct_ifgs(params)
def main(params): """ Top level function to perform PyRate workflow on given interferograms :return: refpt: tuple of reference pixel x and y position :rtype: tuple :return: maxvar: array of maximum variance values of interferograms :rtype: ndarray :return: vcmt: Variance-covariance matrix array :rtype: ndarray """ mpi_vs_multiprocess_logging("process", params) ifg_paths = [] for ifg_path in params[cf.INTERFEROGRAM_FILES]: ifg_paths.append(ifg_path.sampled_path) rows, cols = params["rows"], params["cols"] return process_ifgs(ifg_paths, params, rows, cols)
def stack(config: Configuration) -> None: params = config.__dict__ mpi_vs_multiprocess_logging("stack", params) params = update_params_due_to_ifg_selection(config=config) stack_calc_wrapper(params)
def timeseries(config: Configuration) -> None: params = config.__dict__ mpi_vs_multiprocess_logging("timeseries", params) params = update_params_due_to_ifg_selection(config=config) timeseries_calc_wrapper(params)
def main(params): """ Main workflow function for preparing interferograms for PyRate. :param dict params: Parameters dictionary read in from the config file """ # TODO: looks like ifg_paths are ordered according to ifg list # This probably won't be a problem because input list won't be reordered # and the original gamma generated list is ordered) this may not affect # the important pyrate stuff anyway, but might affect gen_thumbs.py. # Going to assume ifg_paths is ordered correcly # pylint: disable=too-many-branches shared.mpi_vs_multiprocess_logging("prepifg", params) ifg_paths = params[C.INTERFEROGRAM_FILES] if params[C.DEM_FILE] is not None: # optional DEM conversion ifg_paths.append(params[C.DEM_FILE_PATH]) if params[C.COH_FILE_LIST] is not None: ifg_paths.extend(params[C.COHERENCE_FILE_PATHS]) if params[C.COH_FILE_LIST] is None and params[C.COH_MASK]: raise FileNotFoundError( "Cannot apply coherence masking: no coherence file list " "supplied (parameter 'cohfilelist')") shared.mkdir_p(params[C.OUT_DIR]) # create output dir user_exts = (params[C.IFG_XFIRST], params[C.IFG_YFIRST], params[C.IFG_XLAST], params[C.IFG_YLAST]) xlooks, ylooks, crop = transform_params(params) ifgs = [prepifg_helper.dem_or_ifg(p.converted_path) for p in ifg_paths] exts = prepifg_helper.get_analysis_extent(crop, ifgs, xlooks, ylooks, user_exts=user_exts) ifg0 = ifgs[0] ifg0.open() transform = ifg0.dataset.GetGeoTransform() process_ifgs_paths = np.array_split(ifg_paths, mpiops.size)[mpiops.rank] do_prepifg(process_ifgs_paths, exts, params) if params[C.LT_FILE] is not None: log.info("Calculating and writing geometry files") __write_geometry_files(params, exts, transform, ifg_paths[0].sampled_path) else: log.info("Skipping geometry calculations: Lookup table not provided") if params[C.COH_FILE_LIST] is not None: log.info("Calculating and writing coherence statistics") mpiops.run_once(__calc_coherence_stats, params, ifg_paths[0].sampled_path) else: log.info("Skipping coherence file statistics computation.") log.info("Finished 'prepifg' step") ifg0.close()
def stack(params: dict) -> None: mpi_vs_multiprocess_logging("stack", params) stack_calc_wrapper(params)
def timeseries(params: dict) -> None: mpi_vs_multiprocess_logging("timeseries", params) timeseries_calc_wrapper(params)