Source code for patato.convenience_scripts.print_speeds
# Copyright (c) Thomas Else 2023-25.
# License: MIT
import argparse
import glob
from os.path import join, split
import h5py
from ..utils import sort_key
[docs]
def init_argparse():
parser = argparse.ArgumentParser(description="Look at the status of a data folder.")
parser.add_argument("input", type=str, help="Data Folder")
parser.add_argument(
"-v", "--version", action="version", version=f"{parser.prog} version 0.1"
)
return parser
[docs]
def main():
p = init_argparse()
args = p.parse_args()
try:
from tabulate import tabulate
except ImportError:
print(
"Please install tabulate (e.g. pip install tabulate or uv add tabulate) to run this script."
)
raise
names = []
cs = []
fnames = []
print(args.input)
for filename in sorted(glob.glob(join(args.input, "*.hdf5")), key=sort_key):
data_file = h5py.File(filename, "r")
# 1. Check raw data and print name
if "raw_data" in data_file:
fname = split(filename)[-1]
name = data_file["raw_data"].attrs["name"]
sos = str(data_file["raw_data"].attrs.get("speedofsound", "NOT SET"))
if len(names) >= 1:
if (
names[-1].split("-")[0].split("_")[0]
!= name.split("-")[0].split("_")[0]
and names[-1][0] != "="
):
names.append("==========")
cs.append("==========")
fnames.append("=========")
names.append(name)
fnames.append(fname)
cs.append(sos)
print(
tabulate(
zip(fnames, names, cs), headers=["File Name", "Scan Name", "Speed of Sound"]
)
)