Moviepy结合Basemap,用python制作旋转地球视频
python语言可以方便地制作和编辑视频,制作视频的核心是moviepy库,在使用moviepy的基础上综合调用其它的功能库,就可以做出各种有趣的视频。旋转的地球是比较常见的一个视频内容,我们看看怎样用20行代码实现它。
【视频生成的基本概念】
视频的本质就是连续的图片,利用人眼的视觉暂留而形成运动的感觉。视频有一个基本的参数叫做:FPS(frames per second):每秒多少张图片。如果一个视频的FPS=20,也就是每秒会闪过20张图片。
所以,使用moviepy生成视频的一个核心就是如下的两句代码:
animation = VideoClip(make_frame, duration=3.6)
animation.write_videofile("earth.mp4", fps=20)
第一句代码定义一个动画
核心中的核心:make_frame是一个自定义函数,这个函数接收一个时间参数,返回的是一张图片。
duration是视频总时长,秒为单位。比如,这里是生成一个3.6秒的动画。第二句,以某个把这个帧率(FPS)将动画保存为视频文件。其实也完全可以保存为GIF,将第二行改为如下的代码:
animation.write_gif("earth.gif", fps=20)
【怎样画地球】
剩下的工作,就是在make_frame函数中,根据传入的时间参数,画出地球的图片了。我们将使用另外一个库:Basemap。basemap提供了非常方便的画地图的功能。它的安装略有复杂,但按照网上提示肯定可以操作成功,。
我们来看看地球怎样画。
def make_frame(t):# 地图信息,采用正射投影(ortho),就有立体效果# 面向0纬度,经度随时间而变,就出现了旋转效果!map = Basemap(projection='ortho', lat_0=0, lon_0=-t*100)# 地球的底色就是海洋map.drawmapboundary(fill_color='aqua')# 画大洲map.fillcontinents(color='coral',lake_color='aqua')# 海岸线map.drawcoastlines()# 国界线map.drawcountries()
# 将结果转换为图片返回
return mplfig_to_npimage(fig)
是不是非常简单呢?
【加上晨昏线】
在太阳的照射下,地球上才有白天和黑夜。地球是一个球体,恰好半球黑天,半球白天。白天半球和黑夜半球的交界处,就称为晨昏线,由于它正好是一个圆形,也称为晨昏圈。我们注意到晨昏线的角度是倾斜的,因为地轴与太阳平面有一个23.5度的交角。我们还看到,北极部分完全笼罩在阴影中,而南极部分则在阳光下。说明现在是北半球的冬天,北极处于极夜状态,而南极是极昼。
只需增加两行代码,就可以实现这一功能。
time= datetime.fromtimestamp(t*24*1000)map.nightshade(time, delta=0.2)
我们这里,将传入的参数t做一个转换。因为实际制作3.6秒视频地球旋转360度,而在实际上,地球是24个小时才转动360度。相当于放大了24*1000倍。这样的参数转换,才能让晨昏圈处于稳定的位置。
【总结】
本文讲了制作视频的基本原理,以及基于basemap的地图(地球)画法,你记住了么?
Moviepy结合Basemap,用python制作旋转地球视频相关推荐
- 用python实现旋转地球
用python实现旋转地球 先上效果图 素材 本文只讲最简单也是最常见的正侧面旋转地球. 首先你得有一张360度贴图,效果如下图.在网上搜一下,这种图很多,容易获得. 它的特点是高度恰好是宽度的一半, ...
- 利用Python制作旋转花灯,祝大家元宵节快乐
1.原材料 1.1 花灯纸 如下所示,还可以加上自己喜欢的图案.文字等. 2.2 Python环境和模块 一台安装了Python环境的电脑,Python环境需要安装以下模块. 干货主要有: ① 200 ...
- 百万点赞怎么来?用 Python 制作抖音视频原来这么简单
关于视频的文章之前也讲几篇,那么今天我就和大家来分享一下Python同样也可以用来制作视频,也就是调用moviepy的模块. 喜欢本文记得收藏.点赞.关注. 完整代码.技术交流,文末获取 关于Movi ...
- 百万点赞怎么来?用Python制作抖音视频原来这么简单!
那么在上一篇教程当中,我们讲了Python在图片处理当中的应用,通过调用当中的opencv的模块,那么今天小编就和大家来分享一下Python同样也可以用来制作视频,也就是调用moviepy的模块. 关 ...
- python制作鬼畜_视频剪辑什么鬼?Python 带你高效创作短视频
近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节;在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. 之前有两篇文章分别是实现了制作卡 ...
- 百万点赞怎么来?用Python制作抖音视频原来这么简单
前言 今天小编就和大家来分享一下Python同样也可以用来制作视频,也就是调用moviepy的模块. 关于Moviepy模块 Moviepy是一个用于视频剪辑的Python模块,可被用来进行一些基本的 ...
- Python制作卡点视频
欢迎关注 Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.ne ...
- python制作代码舞视频来啦~
上一篇文章我们介绍了如何制作字符画视频,今天就来给大家介绍一下代码舞的视频制作 最后效果展示 首先是原版 接着是黑白版的 最后是彩色版的 是不是看着很nice呢,哈哈哈哈 项目实现 第一步 首先我们要 ...
- python制作旋转小风车
import turtle as t t.goto(100,0) for i in range(100): t.left(80) t.fd(100) t.left(135) t.fd(165) t.l ...
最新文章
- Permission denied: make_sock: could not bind to address [::]:81 Apache 虚拟主机
- 网络营销外包专员浅析从用户角度出发如何完善网络营销外包?
- JframeMaxSize
- Angular里的style property binding的一个例子
- ue默认高亮mysql_UE设置打开文件的默认高亮语言
- 刚刚!北京高考时间和开学时间定了
- 快速掌握用python写并行程序
- zookeeper的会话
- Go两个协程生产消费者模型
- 微信小程序斩获世界大奖后,中小企业怎样搭上这辆快速列车?
- 《数据库系统原理》课程设计:超市订单管理系统
- jdk文件夹里点哪个是安装_jdk在哪个文件夹里面
- 简单分析暴风影音的最新0DAY菜鸟版
- ngrok服务的编译与环境搭建
- dropping incoming packet
- 帝国CMS系统提示登录超时解决办法
- 百度地图Javascript API 使用记录
- (环境搭建+复现)CVE-2020-1472 NetLogon 域内提权漏洞
- 大学可以这样读——我的心路历程和一点思考
- 计算机学院元旦晚会对联,元旦对联集锦