mirror of https://github.com/openXC7/prjxray.git
48 lines
1.3 KiB
Python
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()
|