Cloud Datalabとは?
Google Cloud Datalabは、Jupyter Notebookをクラウド上で利用できるサービスです。gcpモジュールにより、NotebookからCloud StorageやBigQueryなどのサービスを利用することができます。
※60日間有効な$300のクレジット(無償利用可能枠)が提供されるので、無償で利用を開始できます。
手順
はじめに、Notebook上で、ImageMagickをインストールしておきます。(Cloud Datalabは、DebianのVMイメージ上で動いているようですね。)
%bash apt-get -y update apt-get -y install imagemagick
※ここでセッションをリスタートしておいた方がよいかも知れません。
動画の作成・保存に必要なモジュールをインポートします。ここでは特に、作成したGIFファイルをCloud Storage経由で取り出すために、gcp.storageモジュールをインポートしています。backet_nameには、事前に作成しておいたバケット名を指定してください。
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation from gcp import storage backet_name = 'your_backet_name'
次は、GIF動画を作成するサンプルです。ボールの放物運動をシミュレーションしています。
class Ball: def __init__(self, m, x, y, vx, vy): self.m = m self.x, self.y = x, y self.vx, self.vy = vx, vy def run(self, fx, fy): self.x += self.vx self.y += self.vy self.vx += fx / self.m self.vy += fy / self.m fig = plt.figure(figsize=(4,3)) images = [] ball = Ball(1,0,0,1,100) for _ in range(22): image = plt.scatter([ball.x],[ball.y]) images.append([image]) fx = 0 fy = -ball.m * 9.8 ball.run(fx,fy) image_file = 'cannon_ball.gif' ani = animation.ArtistAnimation(fig, images, interval=300, repeat_delay=1000) ani.save(image_file, writer='imagemagick', fps=30); with open (image_file,'rb') as f: bucket = storage.Bucket(backet_name) bucket.item(image_file).write_to(f.read(), 'image/gif')
ani.saveで作成したGIFファイルを最後にCloud Storageにアップロードしています。出来上がったファイルは、Cloud Storageのコンソール画面からダウンロードしてください。
完成品はこちらです。