def disparity_to_height(tile, i): """ Compute a height map from the disparity map of a pair of image tiles. Args: tile: dictionary containing the information needed to process a tile. i: index of the processed pair. """ out_dir = os.path.join(tile['dir'], 'pair_{}'.format(i)) height_map = os.path.join(out_dir, 'height_map.tif') x, y, w, h = tile['coordinates'] if os.path.exists(os.path.join(out_dir, 'stderr.log')): print('triangulation: stderr.log exists') print('pair_{} not processed on tile {} {}'.format(i, x, y)) return if cfg['skip_existing'] and os.path.isfile(height_map): print('triangulation done on tile {} {} pair {}'.format(x, y, i)) return print('triangulating tile {} {} pair {}...'.format(x, y, i)) rpc1 = cfg['images'][0]['rpc'] rpc2 = cfg['images'][i]['rpc'] H_ref = os.path.join(out_dir, 'H_ref.txt') H_sec = os.path.join(out_dir, 'H_sec.txt') disp = os.path.join(out_dir, 'rectified_disp.tif') mask = os.path.join(out_dir, 'rectified_mask.png') rpc_err = os.path.join(out_dir, 'rpc_err.tif') out_mask = os.path.join(tile['dir'], 'cloud_water_image_domain_mask.png') pointing = os.path.join(cfg['out_dir'], 'global_pointing_pair_{}.txt'.format(i)) triangulation.height_map(height_map, x, y, w, h, cfg['subsampling_factor'], rpc1, rpc2, H_ref, H_sec, disp, mask, rpc_err, out_mask, pointing) if cfg['clean_intermediate']: common.remove(H_ref) common.remove(H_sec) common.remove(disp) common.remove(mask) common.remove(rpc_err)