Skip to content

Instantly share code, notes, and snippets.

@rbnvrw
Last active March 10, 2020 10:36
Show Gist options
  • Save rbnvrw/627f19e9c71ce59f605dd4f42c3f08b1 to your computer and use it in GitHub Desktop.
Save rbnvrw/627f19e9c71ce59f605dd4f42c3f08b1 to your computer and use it in GitHub Desktop.
Annotate, convert, crop, speed-up, scalebar overlay of an ND2 movie

See the Python notebook for the code. If you scroll down all the way down, you see an example of the last frame in a tracked, cropped and sped-up video. Features:

  • Convert an ND2 movie into avi/mp4/mov/wmv format
  • Add a scalebar of your choice to the movie
  • Speed-up the movie by a certain factor
  • With a csv file containing (frame,x,y,r,particle) columns: overlay the trajectories, particle number, circle of tracked radius

Settings can be changed in the settings block. Be sure to also include the arial.ttf or any other font of your choice in the same directory.

If you make improvements to the program, please leave a comment here, so I can update it.

Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 121,
"metadata": {},
"outputs": [],
"source": [
"# import section\n",
"from nd2reader import ND2Reader\n",
"from slicerator import Pipeline\n",
"from pims.display import export_moviepy, to_rgb\n",
"from PIL import Image, ImageDraw, ImageFont\n",
"from pims import pipeline, Frame\n",
"from pims import normalize, to_rgb\n",
"import numpy as np\n",
"import pandas as pd\n",
"from matplotlib import cm\n",
"from itertools import cycle\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 122,
"metadata": {},
"outputs": [],
"source": [
"# Settings\n",
"\n",
"# movie related settings\n",
"movie_path = '/media/DataDisk/Data/flexible_simulations_hydrosub/cluster001_001.nd2'\n",
"movie_speedup = 5.0\n",
"crop_top_left_corner = (200, 420)\n",
"crop_shape = (480, 480)\n",
"target_movie_width = 480\n",
"target_movie_max_height = None\n",
"autoscale_intensity = False\n",
"export_formats = dict(avi=False, mp4=True, mov=False, wmv=False)\n",
"\n",
"# trajectory related settings\n",
"# trajectory file needs the columns frame,x,y,r,particle (units in pxs)\n",
"trajectory_file = '/media/DataDisk/Data/flexible_simulations_hydrosub/tracked_movie/20171026173813_bf_trimers_bilayer_defects_20171026_only_one_trimer_cluster001_001-trajectories.csv'\n",
"trajectory_colors = ['red', 'green', 'blue', 'yellow']\n",
"trajectory_lw = 3\n",
"do_draw_circle = True\n",
"do_draw_number = True\n",
"do_draw_line = True\n",
"\n",
"# scalebar related settings\n",
"do_draw_scalebar = True\n",
"scalebar_padding = 15\n",
"scalebar_width_mpp = 50\n",
"scalebar_thickness_mpp = 10\n",
"scalebar_font = 'arial.ttf' # path to font file you want to use\n",
"scalebar_font_size = 24"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {},
"outputs": [],
"source": [
"# If you edit below, please consider leaving a comment here\n",
"# on github if you fix a bug / add a new feature\n",
"# helper functions\n",
"def to_PIL_Image(image, autoscale=True):\n",
" ndim = image.ndim\n",
" shape = image.shape\n",
" try:\n",
" colors = image.metadata['colors']\n",
" if len(colors) != shape[0]:\n",
" colors = None\n",
" except (AttributeError, KeyError):\n",
" colors = None\n",
"\n",
" # 2D, grayscale\n",
" if ndim == 2:\n",
" pass\n",
" # 2D, has colors attribute\n",
" elif ndim == 3 and colors is not None:\n",
" image = to_rgb(image, colors, False)\n",
" # 2D, RGB\n",
" elif ndim == 3 and shape[2] in [3, 4]:\n",
" pass\n",
" # 2D, is multichannel\n",
" elif ndim == 3 and shape[0] < 5:\n",
" image = to_rgb(image, None, False)\n",
" else:\n",
" raise ValueError(\"No PIL conversion possible for shape {0}\".format(shape))\n",
"\n",
" if autoscale:\n",
" image = (normalize(image) * 255).astype(np.uint8)\n",
" elif image.dtype is not np.uint8:\n",
" if np.issubdtype(image.dtype, np.integer):\n",
" max_value = np.iinfo(image.dtype).max\n",
" # sometimes 12-bit images are stored as unsigned 16-bit\n",
" if max_value == 2 ** 16 - 1 and image.max() < 2 ** 12:\n",
" max_value = 2 ** 12 - 1\n",
" image = (image / max_value * 255).astype(np.uint8)\n",
" else:\n",
" image = (image * 255).astype(np.uint8)\n",
"\n",
" image = Image.fromarray(image)\n",
" return image.convert(\"RGB\")\n",
"\n",
"def crop_resize_add_scalebar_traj(frame, corner=None, shape=None, width=None,\n",
" max_height=None, autoscale=True, mpp=None, pad=5,\n",
" width_mpp=30, th_mpp=2, font=\"arial.ttf\",\n",
" fontsize=10, acceleration=None, trajectories=None,\n",
" trajectory_colors=[(1, 0, 0)],\n",
" trajectory_lw=2, color='white',\n",
" draw_trajectories=dict(line=True, number=True, circle=True)):\n",
" \n",
" im = to_PIL_Image(frame, autoscale)\n",
" font_obj = ImageFont.truetype(font, fontsize)\n",
" draw = ImageDraw.Draw(im)\n",
" \n",
" if trajectories is not None:\n",
" current_frame = trajectories[trajectories['frame'] == frame.frame_no]\n",
" prev = None\n",
" if (frame.frame_no-1) in trajectories['frame'].values:\n",
" prev = trajectories[trajectories['frame'] < frame.frame_no]\n",
" particles = np.sort(np.unique(current_frame['particle'].values))\n",
" color_cycle = cycle(trajectory_colors)\n",
" for pix in particles: \n",
" particle = current_frame[current_frame['particle'] == pix][['x', 'y', 'r']].values[0]\n",
" pcolor = next(color_cycle)\n",
" \n",
" if prev is not None:\n",
" prev_particle = prev[prev['particle'] == pix][['x', 'y']].values\n",
" \n",
" if draw_trajectories['number']:\n",
" draw.text((particle[0]+1.05*particle[2], particle[1]-1.05*particle[2]), '%d' % pix, font=font_obj, fill=pcolor)\n",
" \n",
" if draw_trajectories['circle']:\n",
" top_left = (particle[0]-particle[2], particle[1]-particle[2])\n",
" bottom_right = (particle[0]+particle[2], particle[1]+particle[2])\n",
" draw.ellipse([top_left, bottom_right], outline=pcolor, width=trajectory_lw)\n",
" \n",
" if prev is not None and draw_trajectories['line']:\n",
" for i in range(len(prev_particle)):\n",
" if i == 0:\n",
" continue\n",
" draw.line([(prev_particle[i-1][0], prev_particle[i-1][1]), (prev_particle[i][0], prev_particle[i][1])], fill=pcolor, width=trajectory_lw)\n",
" \n",
" if shape is None:\n",
" shape = (im.size[1], im.size[0])\n",
" \n",
" if corner is not None:\n",
" im = im.crop((corner[1], corner[0],\n",
" min(corner[1] + shape[1], im.size[0]),\n",
" min(corner[0] + shape[0], im.size[1])))\n",
" \n",
" if width is not None:\n",
" w = width\n",
" h = (im.size[1] * w) // im.size[0]\n",
" if max_height is not None and h > max_height:\n",
" h = max_height\n",
" w = (im.size[0] * h) // im.size[1]\n",
" factor = w / im.size[0]\n",
" im = im.resize((int(w), int(h)), Image.LANCZOS)\n",
" else:\n",
" factor = 1 \n",
" \n",
" draw = ImageDraw.Draw(im)\n",
" \n",
" acceleration_offset = 0\n",
" if mpp: # add scalebar\n",
" microns = int((width_mpp * mpp / factor) // 1) # round to whole microns\n",
" if microns == 0:\n",
" microns = int((width_mpp * mpp / factor) // 0.1 * 0.1) # round to tenths of microns\n",
" width_mpp = microns / (mpp / factor) # recalculate width\n",
" label = '{0:d} \\xb5m'.format(microns)\n",
" else:\n",
" width_mpp = microns / (mpp / factor) # recalculate width\n",
" label = '{0:d} \\xb5m'.format(microns)\n",
" \n",
" draw.rectangle((im.size[0] - pad - width_mpp, im.size[1] - pad - th_mpp,\n",
" im.size[0] - pad, im.size[1] - pad), fill=color)\n",
" text_width, text_height = draw.textsize(label, font=font_obj)\n",
" draw.text((im.size[0] - pad - width_mpp / 2 - text_width / 2,\n",
" im.size[1] - pad - th_mpp - 2 - text_height), label,\n",
" font=font_obj, fill=color)\n",
" acceleration_offset = th_mpp + 2\n",
"\n",
" if acceleration and acceleration != 1.0:\n",
" label = \"%.1f x\" % acceleration\n",
" text_width, text_height = draw.textsize(label, font=font_obj)\n",
" draw.text((pad, im.size[1] - pad - text_height - acceleration_offset), label, font=font_obj, fill=color)\n",
"\n",
" return Frame(im, frame_no=frame.frame_no)"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" \n",
"\n",
"\n",
"\u001b[A\u001b[A\u001b[A \n",
"\n",
"\u001b[A\u001b[A \n",
"t: 12%|█▎ | 5/40 [39:10<4:34:10, 470.02s/it, now=None]\n",
"\n",
"\n",
"t: 12%|█▎ | 5/40 [28:45<3:21:18, 345.10s/it, now=None]\u001b[A\u001b[A\u001b[A\n",
"\n",
"t: 22%|██▎ | 9/40 [30:34<1:45:19, 203.87s/it, now=None]\u001b[A\u001b[A\n",
" \u001b[A\n",
"\n",
"\n",
"\u001b[A\u001b[A\u001b[A \n",
"\n",
"\u001b[A\u001b[A \n",
"t: 12%|█▎ | 5/40 [39:10<4:34:10, 470.02s/it, now=None]\n",
"\n",
"\n",
"t: 12%|█▎ | 5/40 [28:45<3:21:18, 345.10s/it, now=None]\u001b[A\u001b[A\u001b[A\n",
"\n",
"t: 22%|██▎ | 9/40 [30:34<1:45:19, 203.87s/it, now=None]\u001b[A\u001b[A\n",
"t: 22%|██▎ | 9/40 [31:30<1:48:32, 210.08s/it, now=None]\u001b[A\n",
"\n",
"\n",
"\n",
"t: 0%| | 0/1501 [00:00<?, ?it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 1%| | 8/1501 [00:00<00:21, 69.04it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Moviepy - Building video /media/DataDisk/Data/flexible_simulations_hydrosub/cluster001_001.nd2_5.0x_exported.mp4.\n",
"Moviepy - Writing video /media/DataDisk/Data/flexible_simulations_hydrosub/cluster001_001.nd2_5.0x_exported.mp4\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n",
"\n",
"\n",
"\n",
"t: 1%| | 14/1501 [00:00<00:23, 62.37it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 1%|▏ | 21/1501 [00:00<00:24, 61.49it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 2%|▏ | 26/1501 [00:00<00:26, 55.57it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 2%|▏ | 35/1501 [00:00<00:24, 60.50it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 3%|▎ | 43/1501 [00:00<00:23, 62.53it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 3%|▎ | 51/1501 [00:00<00:22, 63.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 4%|▍ | 58/1501 [00:00<00:22, 63.23it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 4%|▍ | 65/1501 [00:01<00:23, 61.41it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 5%|▍ | 71/1501 [00:01<00:24, 58.91it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 5%|▌ | 77/1501 [00:01<00:25, 56.90it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 6%|▌ | 84/1501 [00:01<00:24, 57.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 6%|▌ | 90/1501 [00:01<00:25, 56.42it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 6%|▋ | 96/1501 [00:01<00:24, 56.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 7%|▋ | 102/1501 [00:01<00:26, 53.25it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 7%|▋ | 109/1501 [00:01<00:25, 54.98it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 8%|▊ | 117/1501 [00:01<00:23, 58.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 8%|▊ | 124/1501 [00:02<00:22, 60.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 9%|▊ | 131/1501 [00:02<00:21, 63.13it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 9%|▉ | 138/1501 [00:02<00:23, 58.59it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 10%|▉ | 145/1501 [00:02<00:23, 58.91it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 10%|█ | 151/1501 [00:02<00:22, 59.21it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 10%|█ | 157/1501 [00:02<00:23, 56.29it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 11%|█ | 164/1501 [00:02<00:22, 59.55it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 11%|█▏ | 171/1501 [00:02<00:23, 57.30it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 12%|█▏ | 178/1501 [00:02<00:22, 59.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 12%|█▏ | 185/1501 [00:03<00:22, 57.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 13%|█▎ | 191/1501 [00:03<00:22, 57.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 13%|█▎ | 198/1501 [00:03<00:21, 60.56it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 14%|█▎ | 205/1501 [00:03<00:21, 59.13it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 14%|█▍ | 211/1501 [00:03<00:23, 53.90it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 14%|█▍ | 217/1501 [00:03<00:25, 50.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 15%|█▍ | 223/1501 [00:03<00:24, 51.31it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 15%|█▌ | 229/1501 [00:03<00:25, 50.23it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 16%|█▌ | 235/1501 [00:04<00:26, 48.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 16%|█▌ | 240/1501 [00:04<00:27, 46.64it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 16%|█▋ | 245/1501 [00:04<00:27, 45.75it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 17%|█▋ | 250/1501 [00:04<00:26, 46.45it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 17%|█▋ | 255/1501 [00:04<00:26, 46.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 17%|█▋ | 261/1501 [00:04<00:26, 47.34it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 18%|█▊ | 266/1501 [00:04<00:26, 45.76it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 18%|█▊ | 271/1501 [00:04<00:26, 46.00it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 18%|█▊ | 276/1501 [00:05<00:27, 45.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 19%|█▊ | 281/1501 [00:05<00:27, 44.41it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 19%|█▉ | 286/1501 [00:05<00:27, 44.36it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 19%|█▉ | 291/1501 [00:05<00:27, 44.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 20%|█▉ | 296/1501 [00:05<00:26, 45.26it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 20%|██ | 301/1501 [00:05<00:26, 45.30it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 20%|██ | 306/1501 [00:05<00:26, 45.61it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 21%|██ | 311/1501 [00:05<00:25, 46.03it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 21%|██ | 316/1501 [00:05<00:25, 46.01it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 21%|██▏ | 321/1501 [00:05<00:25, 46.10it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 22%|██▏ | 326/1501 [00:06<00:25, 46.41it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 22%|██▏ | 331/1501 [00:06<00:25, 45.38it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 22%|██▏ | 336/1501 [00:06<00:26, 43.90it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 23%|██▎ | 341/1501 [00:06<00:26, 43.70it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 23%|██▎ | 346/1501 [00:06<00:27, 42.42it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 23%|██▎ | 351/1501 [00:06<00:27, 42.52it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 24%|██▎ | 356/1501 [00:06<00:28, 40.05it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 24%|██▍ | 361/1501 [00:06<00:27, 40.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 24%|██▍ | 366/1501 [00:07<00:27, 41.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 25%|██▍ | 371/1501 [00:07<00:26, 42.39it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 25%|██▌ | 376/1501 [00:07<00:26, 43.19it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 25%|██▌ | 381/1501 [00:07<00:25, 43.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 26%|██▌ | 386/1501 [00:07<00:25, 44.40it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 26%|██▌ | 391/1501 [00:07<00:24, 44.40it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 26%|██▋ | 396/1501 [00:07<00:25, 44.16it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 27%|██▋ | 401/1501 [00:07<00:25, 43.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 27%|██▋ | 406/1501 [00:07<00:24, 44.08it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 27%|██▋ | 411/1501 [00:08<00:26, 41.58it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 28%|██▊ | 416/1501 [00:08<00:25, 42.20it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 28%|██▊ | 421/1501 [00:08<00:26, 40.50it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 28%|██▊ | 426/1501 [00:08<00:25, 41.65it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 29%|██▊ | 431/1501 [00:08<00:26, 39.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 29%|██▉ | 436/1501 [00:08<00:25, 41.27it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 29%|██▉ | 441/1501 [00:08<00:26, 39.51it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 30%|██▉ | 446/1501 [00:08<00:25, 40.73it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 30%|███ | 451/1501 [00:09<00:26, 39.29it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 30%|███ | 456/1501 [00:09<00:25, 40.61it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 31%|███ | 461/1501 [00:09<00:26, 39.10it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 31%|███ | 466/1501 [00:09<00:25, 40.31it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 31%|███▏ | 471/1501 [00:09<00:26, 38.71it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 32%|███▏ | 476/1501 [00:09<00:25, 40.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 32%|███▏ | 481/1501 [00:09<00:27, 37.56it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 32%|███▏ | 486/1501 [00:09<00:25, 39.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 33%|███▎ | 490/1501 [00:10<00:26, 37.56it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 33%|███▎ | 495/1501 [00:10<00:25, 38.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 33%|███▎ | 499/1501 [00:10<00:26, 37.29it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 34%|███▎ | 503/1501 [00:10<00:27, 36.49it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 34%|███▍ | 508/1501 [00:10<00:25, 38.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 34%|███▍ | 512/1501 [00:10<00:26, 37.24it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 35%|███▍ | 518/1501 [00:10<00:24, 40.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 35%|███▍ | 523/1501 [00:10<00:25, 38.38it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 35%|███▌ | 527/1501 [00:11<00:26, 37.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 35%|███▌ | 532/1501 [00:11<00:24, 38.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 36%|███▌ | 536/1501 [00:11<00:26, 37.05it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 36%|███▌ | 541/1501 [00:11<00:25, 38.16it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 36%|███▋ | 545/1501 [00:11<00:25, 37.00it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 37%|███▋ | 550/1501 [00:11<00:24, 38.19it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 37%|███▋ | 554/1501 [00:11<00:25, 36.88it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 37%|███▋ | 559/1501 [00:11<00:24, 38.23it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 38%|███▊ | 563/1501 [00:12<00:25, 36.88it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 38%|███▊ | 567/1501 [00:12<00:25, 35.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 38%|███▊ | 572/1501 [00:12<00:24, 37.29it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"t: 38%|███▊ | 576/1501 [00:12<00:25, 36.05it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 39%|███▊ | 581/1501 [00:12<00:24, 37.75it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 39%|███▉ | 585/1501 [00:12<00:25, 36.48it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 39%|███▉ | 590/1501 [00:12<00:24, 37.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 40%|███▉ | 594/1501 [00:12<00:24, 36.63it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 40%|███▉ | 598/1501 [00:12<00:25, 35.50it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 40%|████ | 603/1501 [00:13<00:24, 36.76it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 40%|████ | 607/1501 [00:13<00:24, 35.86it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 41%|████ | 612/1501 [00:13<00:23, 37.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 41%|████ | 616/1501 [00:13<00:24, 36.07it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 41%|████▏ | 621/1501 [00:13<00:23, 37.42it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 42%|████▏ | 625/1501 [00:13<00:24, 36.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 42%|████▏ | 630/1501 [00:13<00:23, 37.51it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 42%|████▏ | 634/1501 [00:13<00:24, 36.10it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 43%|████▎ | 638/1501 [00:14<00:24, 35.15it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 43%|████▎ | 643/1501 [00:14<00:23, 36.80it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 43%|████▎ | 647/1501 [00:14<00:24, 35.51it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 43%|████▎ | 652/1501 [00:14<00:22, 37.00it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 44%|████▎ | 656/1501 [00:14<00:23, 35.69it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 44%|████▍ | 661/1501 [00:14<00:22, 36.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 44%|████▍ | 665/1501 [00:14<00:23, 35.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 45%|████▍ | 669/1501 [00:14<00:24, 34.13it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 45%|████▍ | 674/1501 [00:15<00:23, 35.79it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 45%|████▌ | 678/1501 [00:15<00:23, 34.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 46%|████▌ | 683/1501 [00:15<00:22, 36.44it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 46%|████▌ | 687/1501 [00:15<00:23, 35.31it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 46%|████▌ | 692/1501 [00:15<00:21, 36.80it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 46%|████▋ | 696/1501 [00:15<00:22, 35.58it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 47%|████▋ | 701/1501 [00:15<00:21, 36.57it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 47%|████▋ | 705/1501 [00:15<00:22, 35.26it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 47%|████▋ | 709/1501 [00:16<00:23, 34.22it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 48%|████▊ | 714/1501 [00:16<00:21, 35.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 48%|████▊ | 718/1501 [00:16<00:22, 34.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 48%|████▊ | 723/1501 [00:16<00:21, 35.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 48%|████▊ | 727/1501 [00:16<00:22, 34.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 49%|████▉ | 732/1501 [00:16<00:21, 36.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 49%|████▉ | 736/1501 [00:16<00:22, 34.71it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 49%|████▉ | 740/1501 [00:16<00:22, 33.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 50%|████▉ | 745/1501 [00:17<00:21, 35.18it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 50%|████▉ | 749/1501 [00:17<00:22, 34.10it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 50%|█████ | 754/1501 [00:17<00:20, 35.59it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 50%|█████ | 758/1501 [00:17<00:21, 34.38it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 51%|█████ | 763/1501 [00:17<00:20, 35.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 51%|█████ | 767/1501 [00:17<00:21, 34.46it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 51%|█████▏ | 771/1501 [00:17<00:21, 33.40it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 52%|█████▏ | 776/1501 [00:17<00:20, 34.71it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 52%|█████▏ | 780/1501 [00:18<00:21, 33.71it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 52%|█████▏ | 785/1501 [00:18<00:20, 35.02it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 53%|█████▎ | 789/1501 [00:18<00:21, 33.75it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 53%|█████▎ | 794/1501 [00:18<00:20, 35.12it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 53%|█████▎ | 798/1501 [00:18<00:20, 33.88it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 53%|█████▎ | 803/1501 [00:18<00:19, 35.15it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 54%|█████▍ | 809/1501 [00:18<00:17, 39.84it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 54%|█████▍ | 814/1501 [00:18<00:16, 41.82it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 55%|█████▍ | 820/1501 [00:19<00:15, 45.26it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 55%|█████▍ | 825/1501 [00:19<00:14, 45.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 55%|█████▌ | 831/1501 [00:19<00:13, 49.21it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 56%|█████▌ | 837/1501 [00:19<00:12, 51.20it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 56%|█████▌ | 843/1501 [00:19<00:13, 48.97it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 57%|█████▋ | 849/1501 [00:19<00:12, 51.02it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 57%|█████▋ | 855/1501 [00:19<00:12, 52.76it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 57%|█████▋ | 861/1501 [00:19<00:11, 53.69it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 58%|█████▊ | 867/1501 [00:19<00:12, 50.46it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 58%|█████▊ | 873/1501 [00:20<00:12, 51.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 59%|█████▊ | 879/1501 [00:20<00:11, 53.29it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 59%|█████▉ | 885/1501 [00:20<00:12, 50.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 59%|█████▉ | 891/1501 [00:20<00:11, 51.64it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 60%|█████▉ | 897/1501 [00:20<00:11, 52.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 60%|██████ | 903/1501 [00:20<00:11, 53.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 61%|██████ | 909/1501 [00:20<00:11, 50.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 61%|██████ | 915/1501 [00:20<00:11, 51.70it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 61%|██████▏ | 921/1501 [00:20<00:10, 52.92it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 62%|██████▏ | 927/1501 [00:21<00:11, 49.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 62%|██████▏ | 933/1501 [00:21<00:10, 51.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 63%|██████▎ | 939/1501 [00:21<00:10, 52.55it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 63%|██████▎ | 945/1501 [00:21<00:11, 49.39it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 63%|██████▎ | 951/1501 [00:21<00:10, 50.83it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 64%|██████▍ | 957/1501 [00:21<00:10, 51.97it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 64%|██████▍ | 963/1501 [00:21<00:10, 52.38it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 65%|██████▍ | 969/1501 [00:21<00:10, 48.91it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 65%|██████▍ | 975/1501 [00:22<00:10, 49.99it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 65%|██████▌ | 981/1501 [00:22<00:10, 51.27it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 66%|██████▌ | 987/1501 [00:22<00:10, 48.05it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 66%|██████▌ | 993/1501 [00:22<00:10, 49.16it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 66%|██████▋ | 998/1501 [00:22<00:10, 48.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 67%|██████▋ | 1004/1501 [00:22<00:09, 50.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 67%|██████▋ | 1010/1501 [00:22<00:09, 50.36it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 68%|██████▊ | 1016/1501 [00:22<00:10, 47.49it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 68%|██████▊ | 1022/1501 [00:22<00:09, 49.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 68%|██████▊ | 1027/1501 [00:23<00:09, 47.93it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 69%|██████▉ | 1032/1501 [00:23<00:10, 43.41it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 69%|██████▉ | 1037/1501 [00:23<00:10, 44.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 69%|██████▉ | 1042/1501 [00:23<00:12, 38.05it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 70%|██████▉ | 1047/1501 [00:23<00:11, 40.08it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 70%|███████ | 1052/1501 [00:23<00:12, 35.63it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 70%|███████ | 1057/1501 [00:23<00:11, 38.07it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 71%|███████ | 1062/1501 [00:24<00:12, 34.48it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 71%|███████ | 1067/1501 [00:24<00:11, 37.26it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 71%|███████▏ | 1071/1501 [00:24<00:12, 33.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 72%|███████▏ | 1075/1501 [00:24<00:12, 34.72it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 72%|███████▏ | 1079/1501 [00:24<00:12, 35.12it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 72%|███████▏ | 1083/1501 [00:24<00:11, 35.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 72%|███████▏ | 1088/1501 [00:24<00:10, 37.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"t: 73%|███████▎ | 1092/1501 [00:24<00:11, 34.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 73%|███████▎ | 1097/1501 [00:25<00:11, 36.51it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 73%|███████▎ | 1101/1501 [00:25<00:11, 33.44it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 74%|███████▎ | 1106/1501 [00:25<00:10, 36.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 74%|███████▍ | 1110/1501 [00:25<00:10, 36.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 74%|███████▍ | 1114/1501 [00:25<00:10, 35.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 75%|███████▍ | 1119/1501 [00:25<00:10, 37.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 75%|███████▍ | 1123/1501 [00:25<00:11, 34.07it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 75%|███████▌ | 1128/1501 [00:25<00:10, 36.53it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 75%|███████▌ | 1132/1501 [00:26<00:11, 33.31it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 76%|███████▌ | 1137/1501 [00:26<00:10, 36.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 76%|███████▌ | 1141/1501 [00:26<00:10, 35.63it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 76%|███████▋ | 1145/1501 [00:26<00:09, 35.75it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 77%|███████▋ | 1149/1501 [00:26<00:09, 35.76it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 77%|███████▋ | 1153/1501 [00:26<00:10, 32.81it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 77%|███████▋ | 1159/1501 [00:26<00:09, 36.72it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 77%|███████▋ | 1163/1501 [00:26<00:10, 33.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 78%|███████▊ | 1168/1501 [00:27<00:09, 35.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 78%|███████▊ | 1172/1501 [00:27<00:09, 35.59it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 78%|███████▊ | 1176/1501 [00:27<00:09, 35.52it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 79%|███████▊ | 1180/1501 [00:27<00:09, 35.41it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 79%|███████▉ | 1184/1501 [00:27<00:09, 32.48it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 79%|███████▉ | 1190/1501 [00:27<00:08, 36.56it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 80%|███████▉ | 1194/1501 [00:27<00:09, 32.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 80%|███████▉ | 1199/1501 [00:27<00:08, 35.10it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 80%|████████ | 1203/1501 [00:28<00:08, 34.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 80%|████████ | 1208/1501 [00:28<00:07, 36.77it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 81%|████████ | 1212/1501 [00:28<00:07, 36.32it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 81%|████████ | 1216/1501 [00:28<00:07, 35.89it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 81%|████████▏ | 1221/1501 [00:28<00:07, 37.78it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 82%|████████▏ | 1225/1501 [00:28<00:07, 36.75it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 82%|████████▏ | 1230/1501 [00:28<00:07, 38.46it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 82%|████████▏ | 1234/1501 [00:28<00:07, 33.83it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 83%|████████▎ | 1239/1501 [00:28<00:07, 36.03it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 83%|████████▎ | 1243/1501 [00:29<00:07, 35.52it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 83%|████████▎ | 1247/1501 [00:29<00:07, 35.35it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 83%|████████▎ | 1252/1501 [00:29<00:06, 37.02it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 84%|████████▎ | 1256/1501 [00:29<00:06, 36.26it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 84%|████████▍ | 1261/1501 [00:29<00:06, 37.80it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 84%|████████▍ | 1265/1501 [00:29<00:07, 33.53it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 85%|████████▍ | 1270/1501 [00:29<00:06, 35.69it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 85%|████████▍ | 1274/1501 [00:29<00:06, 35.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 85%|████████▌ | 1279/1501 [00:30<00:06, 36.24it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 86%|████████▌ | 1284/1501 [00:30<00:05, 37.63it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 86%|████████▌ | 1288/1501 [00:30<00:05, 36.48it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 86%|████████▌ | 1293/1501 [00:30<00:05, 37.97it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 86%|████████▋ | 1297/1501 [00:30<00:06, 33.37it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 87%|████████▋ | 1303/1501 [00:30<00:05, 37.02it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 87%|████████▋ | 1307/1501 [00:30<00:05, 35.92it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 87%|████████▋ | 1312/1501 [00:30<00:05, 37.37it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 88%|████████▊ | 1316/1501 [00:31<00:05, 32.98it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 88%|████████▊ | 1321/1501 [00:31<00:05, 35.15it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 88%|████████▊ | 1325/1501 [00:31<00:05, 34.36it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 89%|████████▊ | 1330/1501 [00:31<00:04, 36.40it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 89%|████████▉ | 1335/1501 [00:31<00:04, 37.70it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 89%|████████▉ | 1339/1501 [00:31<00:04, 36.42it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 90%|████████▉ | 1344/1501 [00:31<00:04, 37.28it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 90%|████████▉ | 1348/1501 [00:31<00:04, 35.14it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 90%|█████████ | 1354/1501 [00:32<00:03, 37.42it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 90%|█████████ | 1358/1501 [00:32<00:04, 34.98it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 91%|█████████ | 1363/1501 [00:32<00:03, 35.85it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 91%|█████████ | 1367/1501 [00:32<00:04, 31.22it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 91%|█████████▏| 1372/1501 [00:32<00:03, 33.27it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 92%|█████████▏| 1376/1501 [00:32<00:03, 32.67it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 92%|█████████▏| 1381/1501 [00:32<00:03, 34.09it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 92%|█████████▏| 1386/1501 [00:33<00:03, 35.68it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 93%|█████████▎| 1390/1501 [00:33<00:03, 34.52it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 93%|█████████▎| 1395/1501 [00:33<00:02, 36.02it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 93%|█████████▎| 1399/1501 [00:33<00:02, 35.11it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 94%|█████████▎| 1405/1501 [00:33<00:02, 38.30it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 94%|█████████▍| 1409/1501 [00:33<00:02, 36.07it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 94%|█████████▍| 1414/1501 [00:33<00:02, 36.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 94%|█████████▍| 1418/1501 [00:33<00:02, 34.40it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 95%|█████████▍| 1423/1501 [00:34<00:02, 35.12it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 95%|█████████▌| 1427/1501 [00:34<00:02, 33.53it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 95%|█████████▌| 1432/1501 [00:34<00:01, 34.54it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 96%|█████████▌| 1437/1501 [00:34<00:01, 35.82it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 96%|█████████▌| 1441/1501 [00:34<00:01, 34.56it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 96%|█████████▋| 1446/1501 [00:34<00:01, 35.81it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 97%|█████████▋| 1450/1501 [00:34<00:01, 33.94it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 97%|█████████▋| 1456/1501 [00:34<00:01, 36.08it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 97%|█████████▋| 1460/1501 [00:35<00:01, 33.24it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 98%|█████████▊| 1465/1501 [00:35<00:01, 33.81it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 98%|█████████▊| 1470/1501 [00:35<00:00, 34.16it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 98%|█████████▊| 1476/1501 [00:35<00:00, 36.09it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 99%|█████████▊| 1480/1501 [00:35<00:00, 33.65it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 99%|█████████▉| 1484/1501 [00:35<00:00, 35.30it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 99%|█████████▉| 1488/1501 [00:35<00:00, 32.87it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 99%|█████████▉| 1492/1501 [00:36<00:00, 31.44it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 100%|█████████▉| 1497/1501 [00:36<00:00, 35.33it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
"t: 100%|██████████| 1501/1501 [00:36<00:00, 33.06it/s, now=None]\u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\n",
" \u001b[A\u001b[A\u001b[A\u001b[A\n",
"\n",
"\n",
"\u001b[A\u001b[A\u001b[A \n",
"\n",
"\u001b[A\u001b[A \n",
"t: 12%|█▎ | 5/40 [39:46<4:38:25, 477.29s/it, now=None]\n",
"\n",
"\n",
"t: 12%|█▎ | 5/40 [29:21<3:25:32, 352.37s/it, now=None]\u001b[A\u001b[A\u001b[A\n",
"\n",
"t: 22%|██▎ | 9/40 [31:11<1:47:25, 207.91s/it, now=None]\u001b[A\u001b[A\n",
" \u001b[A\n",
"\n",
"\n",
"\u001b[A\u001b[A\u001b[A \n",
"\n",
"\u001b[A\u001b[A \n",
"t: 12%|█▎ | 5/40 [39:46<4:38:25, 477.29s/it, now=None]\n",
"\n",
"\n",
"t: 12%|█▎ | 5/40 [29:21<3:25:33, 352.37s/it, now=None]\u001b[A\u001b[A\u001b[A\n",
"\n",
"t: 22%|██▎ | 9/40 [31:11<1:47:25, 207.91s/it, now=None]\u001b[A\u001b[A\n",
"t: 22%|██▎ | 9/40 [32:07<1:50:37, 214.12s/it, now=None]\u001b[A"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Moviepy - Done !\n",
"Moviepy - video ready /media/DataDisk/Data/flexible_simulations_hydrosub/cluster001_001.nd2_5.0x_exported.mp4\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"if trajectories is not None and (do_draw_circle or do_draw_number or do_draw_line):\n",
" trajectories = pd.read_csv(trajectory_file, index_col=0)\n",
"\n",
" for c in ['x', 'y', 'frame', 'particle']:\n",
" if c not in trajectories.columns:\n",
" raise ValueError('Column %s not found in trajectory file!' % c)\n",
"\n",
"with ND2Reader(movie_path) as movie:\n",
" mpp = None\n",
" if do_draw_scalebar:\n",
" mpp = movie.metadata['pixel_microns']\n",
" \n",
" kwargs = dict(corner=crop_top_left_corner, shape=crop_shape, \n",
" width=target_movie_width, \n",
" max_height=target_movie_max_height, \n",
" autoscale=autoscale_intensity, mpp=mpp, \n",
" pad=scalebar_padding, width_mpp=scalebar_width_mpp, \n",
" th_mpp=scalebar_thickness_mpp, \n",
" font=scalebar_font, \n",
" fontsize=scalebar_font_size, \n",
" acceleration=movie_speedup,\n",
" trajectories=trajectories,\n",
" trajectory_colors=trajectory_colors,\n",
" trajectory_lw=trajectory_lw,\n",
" draw_trajectories=dict(circle=do_draw_circle, line=do_draw_line, number=do_draw_number))\n",
" \n",
" processed_frames = Pipeline(lambda f: crop_resize_add_scalebar_traj(f, **kwargs), movie)\n",
"\n",
" presets = dict(avi=dict(codec='libx264', quality=1),\n",
" mp4=dict(codec='mpeg4', quality=1),\n",
" mov=dict(codec='mpeg4', quality=1),\n",
" wmv=dict(codec='wmv2', quality=0.005))\n",
"\n",
" try:\n",
" rate = float(movie.frame_rate)\n",
" except AttributeError or ValueError:\n",
" rate = 25.\n",
"\n",
" rate *= kwargs['acceleration']\n",
"\n",
" processed_frames.iter_axes = 't'\n",
" for movie_format in export_formats:\n",
" if not export_formats[movie_format]:\n",
" continue\n",
" filename = movie_path + '_' + str(kwargs['acceleration']) + 'x_exported.' + movie_format\n",
" export_moviepy(processed_frames, filename, rate, **presets[movie_format])\n",
" \n",
" plt.imshow(processed_frames[-1]);"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment