prjxray/utils/merge_tilegrid.py

48 lines
1.3 KiB
Python

import json
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--base_grid', required=True)
parser.add_argument('--output_grid', required=True)
parser.add_argument('--overlay_grid', required=True)
parser.add_argument('--old_format', action='store_true')
parser.add_argument('--mark_roi', action='store_true')
args = parser.parse_args()
with open(args.base_grid) as f:
base_grid = json.load(f)
if args.mark_roi:
for tile in base_grid:
base_grid[tile]['in_roi'] = True
with open(args.overlay_grid) as f:
overlay_grid = json.load(f)
if args.old_format:
overlay_grid = overlay_grid['tiles']
for tile in overlay_grid:
if tile in base_grid:
for k in overlay_grid[tile]:
if k in base_grid[tile]:
assert base_grid[tile][k] == overlay_grid[tile][k], (
k, base_grid[tile][k], overlay_grid[tile][k])
else:
base_grid[tile][k] = overlay_grid[tile][k]
else:
base_grid[tile] = overlay_grid[tile]
if args.mark_roi:
base_grid[tile]['in_roi'] = False
with open(args.output_grid, 'w') as f:
json.dump(base_grid, f, indent=2)
if __name__ == '__main__':
main()