12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import os
- import argparse
- import time
- def main():
- estimators = ["median", "variance", "std", "skewness", "kurtosis", "mode"]
- parser = argparse.ArgumentParser("Run estimators reconstruction")
- parser.add_argument('--folder', type=str, help='folder with rawls scene data', required=True)
- parser.add_argument('--nfiles', type=int, help='expected number of rawls files', required=True)
- parser.add_argument('--est', type=str, help='estimator to use', choices=estimators, required=True)
- parser.add_argument('--tiles', type=str, help='tiles size: 100,100', default="100,100")
- parser.add_argument('--output', type=str, help='output folder', required=True)
- args = parser.parse_args()
- p_folder = args.folder
- p_nfiles = args.nfiles
- p_est = args.est
- x_tile, y_tile = list(map(int, args.tiles.split(',')))
- p_output = args.output
- scenes = sorted(os.listdir(p_folder))
- for scene in scenes:
- scene_path = os.path.join(p_folder, scene)
- nelements = len(os.listdir(scene_path))
- if nelements == p_nfiles:
- print('Extraction of {0} estimator for {1} scene'.format(p_est, scene))
- output_folder = os.path.join(p_output, p_est, scene)
- if not os.path.exists(output_folder):
- os.makedirs(output_folder)
- outfilename = os.path.join(output_folder, scene + '_10000.rawls')
- if not os.path.exists(outfilename):
- t1 = time.time()
- os.system('./build/main/extract_stats_images --folder {0} --bwidth {1} --bheight {2} --outfile {3} --estimator {4}'.format(scene_path, x_tile, y_tile, p_est, outfilename))
- t2 = time.time()
- delta = (t2 - t1)
- print(f'Extraction for {scene}, took {delta}')
- else:
- print('Already generated')
- if __name__ == "__main__":
- main()
|