def _prepifg_multiprocessing(path, xlooks, ylooks, exts, thresh, crop, params): """ Multiprocessing wrapper for prepifg """ processor = params[cf.PROCESSOR] # roipac or gamma if processor == GAMMA: header = gamma.gamma_header(path, params) elif processor == ROIPAC: header = roipac.roipac_header(path, params) else: raise PreprocessError('Processor must be ROI_PAC (0) or GAMMA (1)') # If we're performing coherence masking, find the coherence file for this IFG. # TODO: Refactor _is_interferogram to be unprotected (remove '_') if params[cf.COH_MASK] and shared._is_interferogram(header): coherence_path = cf.coherence_paths_for(path, params, tif=True)[0] coherence_thresh = params[cf.COH_THRESH] else: coherence_path = None coherence_thresh = None prepifg_helper.prepare_ifg(path, xlooks, ylooks, exts, thresh, crop, out_path=params[cf.OUT_DIR], header=header, coherence_path=coherence_path, coherence_thresh=coherence_thresh)
def _geotiff_multiprocessing(unw_path, params): """ Multiprocessing wrapper for full-res geotiff conversion """ # TODO: Need a more robust method for identifying coherence files. if params[cf.COH_FILE_DIR] and unw_path.endswith('.cc'): # If the user has provided a dir for coherence files, place # converted coherence files in that directory. dest = shared.output_tiff_filename(unw_path, params[cf.COH_FILE_DIR]) else: dest = shared.output_tiff_filename(unw_path, params[cf.OBS_DIR]) processor = params[cf.PROCESSOR] # roipac or gamma # Create full-res geotiff if not already on disk if not os.path.exists(dest): if processor == GAMMA: header = gamma.gamma_header(unw_path, params) elif processor == ROIPAC: header = roipac.roipac_header(unw_path, params) else: raise PreprocessError('Processor must be ROI_PAC (0) or GAMMA (1)') shared.write_fullres_geotiff(header, unw_path, dest, nodata=params[cf.NO_DATA_VALUE]) return dest else: log.info("Full-res geotiff already exists") return None
def _geotiff_multiprocessing(unw_path: MultiplePaths, params: dict) -> Tuple[str, bool]: """ Multiprocessing wrapper for full-res geotiff conversion """ # TODO: Need a more robust method for identifying coherence files. dest = unw_path.converted_path processor = params[C.PROCESSOR] # roipac or gamma # Create full-res geotiff if not already on disk if not os.path.exists(dest): if processor == GAMMA: header = gamma.gamma_header(unw_path.unwrapped_path, params) elif processor == ROIPAC: log.info( "Warning: ROI_PAC support will be deprecated in a future PyRate release" ) header = roipac.roipac_header(unw_path.unwrapped_path, params) else: raise PreprocessError('Processor must be ROI_PAC (0) or GAMMA (1)') header[ifc.INPUT_TYPE] = unw_path.input_type shared.write_fullres_geotiff(header, unw_path.unwrapped_path, dest, nodata=params[C.NO_DATA_VALUE]) Path(dest).chmod(0o444) # readonly output return dest, True else: log.warning( f"Full-res geotiff already exists in {dest}! Returning existing geotiff!" ) return dest, False
def _prepifg_multiprocessing(path, xlooks, ylooks, exts, thresh, crop, params): """ Multiprocessing wrapper for prepifg """ processor = params[cf.PROCESSOR] # roipac, gamma or geotif if (processor == GAMMA) or (processor == GEOTIF): header = gamma.gamma_header(path, params) elif processor == ROIPAC: log.info("Warning: ROI_PAC support will be deprecated in a future PyRate release") header = roipac.roipac_header(path, params) else: raise PreprocessError('Processor must be ROI_PAC (0) or GAMMA (1)') # If we're performing coherence masking, find the coherence file for this IFG. if params[cf.COH_MASK] and shared._is_interferogram(header): coherence_path = cf.coherence_paths_for(path, params, tif=True) coherence_thresh = params[cf.COH_THRESH] else: coherence_path = None coherence_thresh = None if params[cf.LARGE_TIFS]: op = output_tiff_filename(path, params[cf.OUT_DIR]) looks_path = cf.mlooked_path(op, ylooks, crop) return path, coherence_path, looks_path else: prepifg_helper.prepare_ifg(path, xlooks, ylooks, exts, thresh, crop, out_path=params[cf.OUT_DIR], header=header, coherence_path=coherence_path, coherence_thresh=coherence_thresh)
def find_header(path: MultiplePaths, params: dict): processor = params[cf.PROCESSOR] # roipac, gamma or geotif tif_path = path.converted_path if (processor == GAMMA) or (processor == GEOTIF): header = gamma.gamma_header(tif_path, params) elif processor == ROIPAC: log.info("Warning: ROI_PAC support will be deprecated in a future PyRate release") header = roipac.roipac_header(tif_path, params) else: raise PreprocessError('Processor must be ROI_PAC (0) or GAMMA (1)') header[ifc.INPUT_TYPE] = path.input_type return header