PythonTip >> 博文 >> python

使用python获取实时卫星云图

zihua 2014-01-20 23:01:22 点击: 2045 | 收藏


先上效果图一张

gif图片太大,为了我的空间流量着想,请留言后再查看

此处内容需要回复后,刷新页面才能查看。

引言

desktop

我的电脑桌面习惯性使用超级大的图标。昨天晚上整理电脑,突然发现桌面上有个文件夹好久没打开了。

打开一看,原来是我以前在公司加班无聊时写的一小段程序。用来获取一段时间的卫星云图并生成gif图片。代码的编写日期是2012.2.11日,竟然已经过了1年两个多月了。桌面需要清理更干净些,这个文件夹就删掉吧。

删除前我重新把里面的代码细节修缮了下,发表出来供大家参考。

加载模块

主要用到了url和time处理的模块

1

2

3

4

5

6

7

8

9

# -*- coding: utf-8 -*-
"""
Created on Sat Feb 11 12:42:37 2012
Modified on Fri Apr 26 08:09:14 2013
@author: Leniy
"""
import datetime
#import time
import urllib2

时间列表生成函数

提供风云二号卫星云图的这家站点,每半个小时更新一幅图。另外图片的url中也包含有时间信息。故用这个函数生成列表

1

2

3

4

5

6

7

8

9

10

11

12

13

14

def leniy_timelist(leniy_time_start, leniy_time_end, leniy_halfhour):
#获取14位的时间列表,形如20130426080000
leniy_li = []
leniy_time_temp = leniy_time_start
while leniy_time_temp <= leniy_time_end:
a1 = str(leniy_time_temp)[0:4]
a2 = str(leniy_time_temp)[5:7]
a3 = str(leniy_time_temp)[8:10]
a4 = str(leniy_time_temp)[11:13]
a5 = str(leniy_time_temp)[14:16]
a6 = str(leniy_time_temp)[17:19]
leniy_li.append(a1+a2+a3+a4+a5+a6)
leniy_time_temp += leniy_halfhour
return leniy_li

下载卫星云图文件函数

将所有图片下载到当前目录下的jpg子文件夹中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

def leniy_download(leniy_timelist):
#下载卫星云图
for leniyonetime in leniy_timelist:
url = "http://i.weather.com.cn/i/product/pic/l/sevp_nsmc_wxcl_asc_e99_achn_lno_py_" + leniyonetime + "000.jpg"
socket = urllib2.urlopen(url)
data = socket.read()
if data[0] != "<" :
#如果数据开头是<符号,说明返回的不是图片数据而是html数据
#也就是说,网站的404返回页面。
#此时本图片不存在,跳过不下载
#只有数据开头不是<符号,才执行后续下载
leniy_download_path = "./jpg/" + leniyonetime + ".jpg"
with open(leniy_download_path, "wb") as leniy_jpg:
leniy_jpg.write(data)
socket.close()

执行

下载2013.4.24到今天的图片

1

2

3

4

leniy_time_start = datetime.datetime(2013, 4, 24, 8, 30, 0)
leniy_time_end   = datetime.datetime(2013, 4, 26, 8, 30, 0)
leniy_halfhour   = datetime.timedelta(minutes=30)
leniy_download( leniy_timelist(leniy_time_start, leniy_time_end, leniy_halfhour) )

生成gif

google一搜索“python 生成gif”,瞬间出来了好多结果。而且各个站点内容都是一样的,且没有提供代码作者相关信息。

我的这部分代码也是参考的网上这个代码,就不写出来了。

原文链接:http://www.wumii.com/item/NZ7kfloI

作者:zihua | 分类: python | 标签: python | 阅读: 2045 | 发布于: 2014-01-20 23时 |