def _validate_minimum_fraction(min_frac): """Sanity check min fraction.""" if min_frac is None: raise cf.ConfigException('Minimum fraction is None') if min_frac < 0.0 or min_frac > 1.0: raise ValueError("Minimum fraction setting must be >= 0.0 and <= 1.0 ")
def _validate_search_win(refnx, refny, chipsize, head): """Sanity check X|Y steps.""" if refnx is None: raise cf.ConfigException('refnx is None') max_width = (head.ncols - (chipsize - 1)) if refnx < 1 or refnx > max_width: msg = "Invalid refnx setting, must be > 0 and <= %s" raise ValueError(msg % max_width) if refny is None: raise cf.ConfigException('refny is None') max_rows = (head.nrows - (chipsize - 1)) if refny < 1 or refny > max_rows: msg = "Invalid refny setting, must be > 0 and <= %s" raise ValueError(msg % max_rows)
def _validate_chipsize(chipsize, head): """Sanity check min chipsize.""" if chipsize is None: raise cf.ConfigException('Chipsize is None') if chipsize < 3 or chipsize > head.ncols or (chipsize % 2 == 0): msg = "Chipsize setting must be >=3 and at least <= grid width" raise ValueError(msg) log.info('Chipsize validation successful')
def main(params=None): """ xxxx :param params: Parameters dictionary read in from the config file :return xxxx """ # 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 usage = 'Usage: pyrate prepifg <config_file>' if mpiops.size > 1: # Over-ride input options if this is an MPI job params[cf.LUIGI] = False params[cf.PARALLEL] = False if params: base_ifg_paths = cf.original_ifg_paths(params[cf.IFG_FILE_LIST]) use_luigi = params[cf.LUIGI] # luigi or no luigi if use_luigi: raise cf.ConfigException('params can not be provided with luigi') else: # if params not provided read from config file if (not params) and (len(sys.argv) < 3): print(usage) return base_ifg_paths, _, params = cf.get_ifg_paths(sys.argv[2]) use_luigi = params[cf.LUIGI] # luigi or no luigi raw_config_file = sys.argv[2] base_ifg_paths.append(params[cf.DEM_FILE]) processor = params[cf.PROCESSOR] # roipac or gamma if processor == GAMMA: # Incidence/elevation only supported for GAMMA if params[cf.APS_INCIDENCE_MAP]: base_ifg_paths.append(params[cf.APS_INCIDENCE_MAP]) if params[cf.APS_ELEVATION_MAP]: base_ifg_paths.append(params[cf.APS_ELEVATION_MAP]) if use_luigi: log.info("Running prepifg using luigi") luigi.configuration.LuigiConfigParser.add_config_path( pythonify_config(raw_config_file)) luigi.build([PrepareInterferograms()], local_scheduler=True) else: process_base_ifgs_paths = \ np.array_split(base_ifg_paths, mpiops.size)[mpiops.rank] if processor == ROIPAC: roipac_prepifg(process_base_ifgs_paths, params) elif processor == GAMMA: gamma_prepifg(process_base_ifgs_paths, params) else: raise prepifg.PreprocessError('Processor must be ROI_PAC (0) or ' 'GAMMA (1)') log.info("Finished prepifg")