gpt4 book ai didi

使用 FFMpegwriter 的 Python Matplotlib basemap 动画在 820 帧后停止?

转载 作者:太空宇宙 更新时间:2023-11-03 11:54:03 25 4
gpt4 key购买 nike

如果我运行以下代码,它会在 820 帧后停止。我在 Ubuntu 12.04 VM 和 Linux Mint 15 上测试了这个。不幸的是没有错误消息。程序在打印 2012-06-02T16:54:00 后挂起

import os, sys
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
import matplotlib.animation as animation
from datetime import datetime,timedelta

def animation_test(start,end,fps=10,save_path='/home/username/animation_test/',\
save_name="test.mp4",dpi=80):

step = timedelta(minutes = 3)

current = start

dates =[]

frame = 0

while current <=end:
dates.append(current)
current += step

fig = plt.figure(figsize=(16,9),facecolor='k',edgecolor='k')
ax = fig.add_subplot(111)

metadata = dict(title='Movie Test', artist='Matplotlib',
comment='Movie support!')
writer = animation.FFMpegWriter(fps=fps, metadata=metadata,bitrate=20000)

direction = -0.5
lat_current = 0
lon_current = 0

with writer.saving(fig,os.path.join(save_path,save_name),dpi):

for current in dates:

ax.cla()
if direction > 0 and lat_current > 40 or \
direction < 0 and lat_current < -40:
direction = - direction

lat_current = lat_current + direction
lon_current = lon_current - 0.75
if lon_current < -180 :
lon_current += 360
basem = Basemap(projection='ortho', lat_0=lat_current, lon_0=lon_current, resolution='l',ax=ax)
basem.drawcoastlines()

#plt.show()

plt.savefig(os.path.join(save_path, 'frame%d.png'%frame),
dpi=dpi,facecolor='w',edgecolor='k')

writer.grab_frame()
frame += 1
print current.isoformat()

start = datetime.now()
animation_test(datetime(2012,6,1,0,0,0),datetime(2012,6,4,0,0,0),fps=10,dpi=80)
print datetime.now() - start

稍微解释一下代码:我想制作一个 3 分钟小文件的卫星数据动画,并将其显示在旋转的地球上。这就是为什么我选择让下面示例代码中的循环以 3 分钟的步长完成动画。我只是删除了卫星数据的读取和绘图,以使任何人都可以执行代码。

当我从程序中删除 basemap 并绘制随机数据的散点图时,程序会一直运行。

我不确定,但我认为这不是内存问题,因为我的 RAM 只使用了大约 20 次。程序运行时 20%。

感谢您提供帮助,帮助我们查明真相。

最佳答案

在我从 https://launchpad.net/~jon-severinsson/+archive/ffmpeg 安装 FFMPEG 版本 0.10.7 之后它有效。

看来这可能是 ubuntu 默认使用的 libav 的问题。

关于使用 FFMpegwriter 的 Python Matplotlib basemap 动画在 820 帧后停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17887117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com