import json import re import os ''' Sharon Yates, 04.04.24. This is a script for converting WALN and WWRP files from WebAlign and WebWarp to VisuAlign compatible JSON files. To be used for testing purposes. ''' def waln_to_json(filename): with open(filename) as f: vafile = json.load(f) if filename.endswith(".waln") or filename.endswith("wwrp"): slices = vafile["sections"] # define slices as "section" in waln vafile["slices"] = slices for slice in slices: print(slice) # this prints info from waln to screen. if "filename" in slice: base_name = os.path.basename(slice["filename"]).split('.')[0] new_filename = base_name + '.png' slice["filename"] = new_filename slice["nr"] = int(re.search(r"_s(\d+)", slice["filename"]).group(1)) if "ouv" in slice: slice["anchoring"] = slice["ouv"] ''' for slice in slices: print(slice) # this prints info from waln to screen. if "filename" in slice: name, old_extension = slice["filename"].rsplit('.',1) new_filename = name + '.png' slice["filename"] = new_filename slice["nr"] = int(re.search(r"_s(\d+)", slice["filename"]).group(1)) if "ouv" in slice: slice["anchoring"] = slice["ouv"] ''' name = os.path.basename(filename) va_compat_file = { "name": name.replace(".waln",".json"), "target": vafile["atlas"] + '.cutlas', "target-resolution": [456, 528, 320], "slices": slices } # save with .json extension need to see if i can remove this with open( filename.replace(".waln", ".json").replace(".wwrp", ".json"), "w" ) as f: #json.dump(va_compat_file, f, indent=4) json.dump(va_compat_file, f, indent=4) print("Waln or Wwrp converted successfully to JSON") else: pass waln_to_json("PyNutil_test.waln")