Skip to content
Snippets Groups Projects
Commit d1c762eb authored by Sharon Christine Yates's avatar Sharon Christine Yates
Browse files

New script for converting WALN to JSON format

Script for converting Waln files from Webalign and Webwarp to VisuAlign compatible JSON files. The intention is to use the script for testing purposes (make sure the online tools produce the same results as the offline tools).
parent 859c8b82
No related branches found
No related tags found
No related merge requests found
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_2.waln")
......@@ -6,9 +6,9 @@ os.chdir("..")
pnt = PyNutil(settings_file=r"PyNutil/test/test10_PyNutil_web.json")
##Use flat can be set to True if you want to use the flat file
# instead of the visualign json (this is only useful for testing and will be removed)
pnt.get_coordinates(object_cutoff=0, method="per_pixel")
##use_flat can be set to True if you want to use the flat file
## for method select between "all", "per_pixel" and "per_object"
pnt.get_coordinates(object_cutoff=0, method="per_pixel", use_flat=False)
pnt.quantify_coordinates()
......
{"atlas":"ABA_Mouse_CCFv3_2017_25um","sections":[{"filename":"PyNutil_test/test_s001.dzip","width":1500,"height":1000,"snr":1,"format":"png","current":0,"tilesize":254,"overlap":1,"mode":0,"ouv":[-5.145275115966797,361.8014440433213,331.1490739071843,456,0,0,0,0,-320],"markers":[[440.0000000000001,289,450,323]]},{"filename":"PyNutil_test/test_s002.dzip","width":1500,"height":1000,"snr":2,"format":"png","current":0,"tilesize":254,"overlap":1,"mode":0,"ouv":[-3.8589563369750977,318.7157039711191,340.24552914037605,456,0,0,0,0,-320],"markers":[[636.8098159509204,603.4958601655935,672.6993865030674,593.3762649494021],[902.9868982011025,615.5567336628567,843.8650306748466,610.8555657773691],[561.2609204260139,750.3661510917975,558.5889570552147,775.5289788408462]]},{"filename":"PyNutil_test/test_s003.dzip","width":1500,"height":1000,"snr":3,"format":"png","current":0,"tilesize":254,"overlap":1,"mode":0,"ouv":[-2.8942172527313232,275.6299638989171,350.0189942541106,456,0,0,0,0,-320],"markers":[[761.0429447852762,629.2548298068077,741,500],[204.29447852760745,613.6154553817848,365.3374233128834,612.695492180313],[482.6376861494953,714.9876920193675,623.0061349693251,747.0101195952162],[434.00208292806684,606.7676930120547,578.8343558282207,601.6559337626494],[959.8159509202455,636.6145354185834,980.0613496932516,628.3348666053357],[957.8161415293836,523.3987679117937,953.3742331288344,547.3781048758049]]},{"filename":"PyNutil_test/test_s004.dzip","width":1500,"height":1000,"snr":4,"format":"png","current":0,"tilesize":254,"overlap":1,"mode":0,"ouv":[-3.0282087922096252,232.54422382671487,364.1366059225139,456,0,0,0,0,-320],"markers":[[522.6993865030674,712.9714811407543,530.6338374725239,715.7313707451705],[630.6438500513034,523.1833943062713,550.3067484662577,519.7792088316469],[916.4047791164191,534.1886045162021,962.5766871165645,523.4590616375344],[950.8076359295408,705.46368100121,925,668],[1096.1208774051677,649.3153717520049,1115,675],[1030.2378410339393,594.2011916220456,1065.644171779141,604.4158233670653]]},{"filename":"PyNutil_test/test_s005.dzip","width":1500,"height":1000,"snr":5,"format":"png","current":0,"tilesize":254,"overlap":1,"mode":0,"ouv":[-0.6163610816001892,189.45848375451277,374.2485759765199,456,0,0,0,0,-320]}],"bucket":"ewb-3d1dc41f-4256-4db5-bc75-0642369e1354"}
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment