Source code for piscat.InputOutput.write_video

import os
import time

import imageio
from tqdm.autonotebook import tqdm


[docs]def write_binary(dir_path, file_name, data, type="original"): """ This function writes video as a binary. Parameters ---------- dir_path: str Path of the directory that video save on it. file_name: str Name of the save file. data: NDArray Video with numpy format. type: str or bin_type The video bin type is not changed by 'original,' but the user can convert it (e.g. float --> int16). Returns ------- The path to the new folder that was created to save the video is returned. """ timestr = time.strftime("%Y%m%d-%H%M%S") try: dr_mk = os.path.join(dir_path, timestr) os.mkdir(dr_mk) print("Directory ", timestr, " Created ") except FileExistsError: print("Directory ", timestr, " already exists") save_path = os.path.join(dir_path, timestr, file_name) save_path_ = os.path.join(dir_path, timestr) if type == "original": data = data else: data = data.astype(type) data = data.copy(order="C") with open(save_path, "wb") as outfile: outfile.write(data) return save_path_
[docs]def write_MP4(dir_path, file_name, data, jump=0): """ This function writes video as a MP4. Parameters ---------- dir_path: str Path of the directory that video save on it. file_name: str Name of the save file. data: NDArray Video with numpy format. jump: int Define stride between frames. Returns ------- The path to the new folder that was created to save the video is returned. """ timestr = time.strftime("%Y%m%d-%H%M%S") try: dr_mk = os.path.join(dir_path, timestr) os.mkdir(dr_mk) print("Directory ", timestr, " Created ") except FileExistsError: print("Directory ", timestr, " already exists") save_path = os.path.join(dir_path, timestr, file_name) save_path_ = os.path.join(dir_path, timestr) data = data.copy(order="C") image_ = [] for frame_number in tqdm(range(0, data.shape[0] - jump, jump)): image_.append(data[frame_number, ...]) imageio.mimsave(save_path, image_, format="MP4") return save_path_
[docs]def write_GIF(dir_path, file_name, data, jump=0): """ This function writes video as a GIF. Parameters ---------- dir_path: str Path of the directory that video save on it. file_name: str Name of the save file data: NDArray Video with numpy format. jump: int Define stride between frames. Returns ------- The path to the new folder that was created to save the video is returned. """ timestr = time.strftime("%Y%m%d-%H%M%S") try: dr_mk = os.path.join(dir_path, timestr) os.mkdir(dr_mk) print("Directory ", timestr, " Created ") except FileExistsError: print("Directory ", timestr, " already exists") save_path = os.path.join(dir_path, timestr, file_name) save_path_ = os.path.join(dir_path, timestr) data = data.copy(order="C") image_ = [] for frame_number in tqdm(range(0, data.shape[0] - jump, jump)): image_.append(data[frame_number, ...]) imageio.mimsave(save_path, image_, format="GIF") return save_path_