Skip to content

Commit

Permalink
New script for converting WALN to JSON format
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
Sharon Christine Yates committed Apr 4, 2024
1 parent 012c860 commit c1bd454
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 3 deletions.
61 changes: 61 additions & 0 deletions scripts/waln_to_json.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
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 changes: 3 additions & 3 deletions testOOP.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

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()

Expand Down
1 change: 1 addition & 0 deletions test_data/PyNutil_test_2.waln
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"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"}

0 comments on commit c1bd454

Please sign in to comment.