def read_subset_box(template_file, meta): """Read subset info from template file Parameters: template_file - str, path of template file meta - dict, metadata Returns: pix_box - tuple of 4 int in (x0, y0, x1, y1) meta - dict, metadata """ if template_file and os.path.isfile(template_file): # read subset info from template file pix_box, geo_box = read_subset_template2box(template_file) # geo_box --> pix_box if geo_box is not None: coord = ut.coordinate(meta) pix_box = coord.bbox_geo2radar(geo_box) pix_box = coord.check_box_within_data_coverage(pix_box) print('input bounding box in lalo: {}'.format(geo_box)) else: pix_box = None if pix_box is not None: # update metadata against the new bounding box print('input bounding box in yx: {}'.format(pix_box)) meta = ut.subset_attribute(meta, pix_box) else: # translate box of None to tuple of 4 int length, width = int(meta['LENGTH']), int(meta['WIDTH']) pix_box = (0, 0, width, length) return pix_box, meta
def read_subset_box(inpsDict): # Read subset info from template inpsDict['box'] = None inpsDict['box4geo_lut'] = None pix_box, geo_box = subset.read_subset_template2box(inpsDict['template_file'][0]) # Grab required info to read input geo_box into pix_box try: lookupFile = [glob.glob(str(inpsDict['mintpy.load.lookupYFile']))[0], glob.glob(str(inpsDict['mintpy.load.lookupXFile']))[0]] except: lookupFile = None try: pathKey = [i for i in datasetName2templateKey.values() if i in inpsDict.keys()][0] file = glob.glob(str(inpsDict[pathKey]))[0] atr = readfile.read_attribute(file) except: atr = dict() geocoded = None if 'Y_FIRST' in atr.keys(): geocoded = True else: geocoded = False # Check conflict if geo_box and not geocoded and lookupFile is None: geo_box = None print(('WARNING: mintpy.subset.lalo is not supported' ' if 1) no lookup file AND' ' 2) radar/unkonwn coded dataset')) print('\tignore it and continue.') if not geo_box and not pix_box: return inpsDict # geo_box --> pix_box coord = ut.coordinate(atr, lookup_file=lookupFile) if geo_box is not None: pix_box = coord.bbox_geo2radar(geo_box) pix_box = coord.check_box_within_data_coverage(pix_box) print('input bounding box of interest in lalo: {}'.format(geo_box)) print('box to read for datasets in y/x: {}'.format(pix_box)) # Get box for geocoded lookup table (for gamma/roipac) box4geo_lut = None if lookupFile is not None: atrLut = readfile.read_attribute(lookupFile[0]) if not geocoded and 'Y_FIRST' in atrLut.keys(): geo_box = coord.bbox_radar2geo(pix_box) box4geo_lut = ut.coordinate(atrLut).bbox_geo2radar(geo_box) print('box to read for geocoded lookup file in y/x: {}'.format(box4geo_lut)) inpsDict['box'] = pix_box inpsDict['box4geo_lut'] = box4geo_lut return inpsDict
def read_subset_box(iDict): """read the following items: geocoded box box4geo_lut """ # Read subset info from template iDict['box'] = None iDict['box4geo_lut'] = None pix_box, geo_box = subset.read_subset_template2box(iDict['template_file'][0]) # Grab required info to read input geo_box into pix_box try: lookupFile = [glob.glob(str(iDict['mintpy.load.lookupYFile']))[0], glob.glob(str(iDict['mintpy.load.lookupXFile']))[0]] except: lookupFile = None try: pathKey = [i for i in iDict['ds_name2key'].values() if i in iDict.keys()][0] file = glob.glob(str(iDict[pathKey]))[0] atr = readfile.read_attribute(file) except: atr = dict() geocoded = None if 'Y_FIRST' in atr.keys(): geocoded = True else: geocoded = False # Check conflict if geo_box and not geocoded and lookupFile is None: geo_box = None print(('WARNING: mintpy.subset.lalo is not supported' ' if 1) no lookup file AND' ' 2) radar/unkonwn coded dataset')) print('\tignore it and continue.') if not geo_box and not pix_box: # adjust for the size inconsistency problem in SNAP geocoded products # ONLY IF there is no input subset # Use the min bbox if files size are different if iDict['processor'] == 'snap': fnames = ut.get_file_list(iDict['mintpy.load.unwFile']) pix_box = update_box4files_with_inconsistent_size(fnames) if not pix_box: return iDict # geo_box --> pix_box coord = ut.coordinate(atr, lookup_file=lookupFile) if geo_box is not None: pix_box = coord.bbox_geo2radar(geo_box) pix_box = coord.check_box_within_data_coverage(pix_box) print('input bounding box of interest in lalo: {}'.format(geo_box)) print('box to read for datasets in y/x: {}'.format(pix_box)) # Get box for geocoded lookup table (for gamma/roipac) box4geo_lut = None if lookupFile is not None: atrLut = readfile.read_attribute(lookupFile[0]) if not geocoded and 'Y_FIRST' in atrLut.keys(): geo_box = coord.bbox_radar2geo(pix_box) box4geo_lut = ut.coordinate(atrLut).bbox_geo2radar(geo_box) print('box to read for geocoded lookup file in y/x: {}'.format(box4geo_lut)) iDict['geocoded'] = geocoded iDict['box'] = pix_box iDict['box4geo_lut'] = box4geo_lut return iDict