python气象卫星云图解析_python下载卫星云图合成gif

# -*- coding:utf-8 -*-

# -Author-= JamesBen

# Email: 1597757775@qq.com

# -*- coding:utf-8 -*-

# -Author-= JamesBen

# Email: 1597757775@qq.com

import requests

from lxml import etree

import imageio

import re

import pyglet

import os

from tqdm import tqdm

# 在脚本同目录下,新建一个文件夹,存储当天12张图

def ckdir():

if os.path.exists('wxyt_pic') == False:

os.mkdir('wxyt_pic')

# 获取图片url列表

def getpage(page):

try:

r = requests.get(page, headers=headers)

html = etree.HTML(r.text)

result = html.xpath('//script[@type="text/javascript"]/text()')[2] urls = re.findall('/product.*.JPG', result)

return urls

except Exception as e:

print(e)

# 下载图片

def dlpic(urls):

filenames = [] for item in tqdm(urls):

r = requests.get(base_url + item, headers)

filename = item.split('/')[-1] filenames.append(filename)

with open('wxyt_pic' + filename, 'wb') as f:

f.write(r.content)

#print('已下载:' + item)

return filenames

# 制作gif

def makegif(images):

frames = [] images.reverse()

for item in images:

frames.append(imageio.imread('wxyt_pic' + item))

imageio.mimsave('hecheng.gif', frames, 'GIF', duration=1)

# 播放gif

def playgif(seq=0):

if set == 0:

# 播放12张合成好的gif

animation = pyglet.resource.animation('hecheng.gif')

else:

pyglet.resource.path = ['wxyt_pic'] la = os.listdir('wxyt_pic')

images = [] for n in la:

images.append(pyglet.resource.image(n))

# 播放库存中的所有照片

animation = pyglet.image.Animation.from_image_sequence(images, period=0.5, loop=True)

# 显示动画

sprite = pyglet.sprite.Sprite(animation)

windows = pyglet.window.Window(width=sprite.width, height=sprite.height)

@windows.event

def on_draw():

windows.clear()

sprite.draw()

pyglet.app.run()

# init

if __name__ == '__main__':

base_url = 'http://image.nmc.cn'

page = 'http://www.nmc.cn/publish/satellite/fy2.htm'

headers = {"user-agent": "firefox"}

ckdir()

urls = getpage(page)

images = dlpic(urls)

makegif(images)

# 0只播放今天12张,1播放库存里所有照片

playgif(1)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值