利用Python获取地球实时卫星照片最详细攻略,附代码。

一、基础信息

环境:Python3

卫星向日葵8号主页

卫星接口

http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json

a.实时图片接口示例

注:2020/02/27为日期,0550为格林威治时间

http://himawari8-dl.nict.go.jp/himawari8/img/D531106/thumbnail/550/2020/02/27/055000_0_0.png

b.实时视频接口

注:20200227为日期

http://himawari8-dl.nict.go.jp/himawari8/movie/720/20200227_pifd.mp4

http://himawari8-dl.nict.go.jp/himawari8/movie/720/coastline/20200227_pifd.mp4

二、代码

import datetime
import gc
import time
import urllib.requestfrom PIL import Image, ImageFile
from retrying import retrydef getDate():localTime = datetime.datetime.now() - datetime.timedelta(minutes=30)zeroTime = localTime - datetime.timedelta(hours=8)localDate = "{}年{}月{}日\n  {}时{}分00秒" \.format(localTime.year, '0' * (2 - len(str(localTime.month))) + str(localTime.month),'0' * (2 - len(str(localTime.day))) + str(localTime.day),'0' * (2 - len(str(localTime.hour))) + str(localTime.hour),str(localTime.minute // 10) + '0' * (2 - len(str(localTime.minute // 10))))zeroDate = {'year': str(zeroTime.year), 'month': '0' * (2 - len(str(zeroTime.month))) + str(zeroTime.month),'day': '0' * (2 - len(str(zeroTime.day))) + str(zeroTime.day),'hour': '0' * (2 - len(str(zeroTime.hour))) + str(zeroTime.hour),'minute': str(zeroTime.minute // 10) + '0' * (2 - len(str(zeroTime.minute // 10)))}return localDate, zeroDatedef getURL(multiple, zeroDate, i, j):rawURL = 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/{}d/550/{}/{}/{}/{}{}00_{}_{}.png'earthURL = rawURL.format(multiple, zeroDate['year'], zeroDate['month'], zeroDate['day'], zeroDate['hour'],zeroDate['minute'], i, j)return earthURLdef downloadImg(multiple, zeroDate):earth = Image.new('RGB', (multiple * 550, multiple * 550))for i in range(multiple):for j in range(multiple):URL = getURL(multiple, zeroDate, i, j)print('{}/{} picture started to download\n''    URL->{}'.format(i * multiple + j + 1, pow(multiple, 2), URL))image = down(URL)f = ImageFile.Parser()f.feed(image)tempImg = f.close()earth.paste(tempImg, (i * 550, j * 550, (i + 1) * 550, (j + 1) * 550))print('{}/{} picture has been download'.format(i * multiple + j + 1, pow(multiple, 2)))return earth# @retry(wait_random_min=0, wait_random_max=3000)
@retry
def down(URL):print('    Try')headers = {'Connection': 'Keep-Alive','Accept': 'text/html, application/xhtml+xml, */*','Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3','User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'}req = urllib.request.Request(URL, headers=headers)image = urllib.request.urlopen(req, timeout=1).read()return imagedef start():# multiple 可以是 1, 2, 4, 8, 16, 20,数字越大图片质量越好multiple = 8localDate, zeroDate = getDate()earth = downloadImg(multiple, zeroDate)return earthif __name__ == '__main__':while True:try:a = time.time()gc.disable()earth = start()earth.save('earth.jpg')gc.enable()b = time.time()print('{}s'.format(b - a))except Exception as e:print(e)finally:gc.collect()c = time.time()print('{}s'.format(c - b))print('------picture has been saved------')print('Start waiting')time.sleep(300)

Python3:获取地球实时卫星照片相关推荐

  1. 地球实时卫星图片资源-与当前时间只相差30分钟

    地球实时卫星图片资源-与当前时间只相差30分钟 在这里跟大家分享一个有趣的项目.这个项目提供一个实时地球照片源,通过向其服务器发送请求,能抓取到当前地球的照片.对于图片壁纸类的应用来说是一个不错的图片 ...

  2. 用Python实时获取地球卫星图并自动更新为桌面

    本文转载自数据札记馆,作者吴小鹏,详情可以扫描下方二维码: 如何拥有够酷炫逼格够高的桌面?本文教你轻松定制自己的桌面背景 (建议带上耳机听一下地球的声音) 最近疯狂迷恋地球卫星图和地球的卫星视频,看上 ...

  3. 你见过卫星眼里的地球吗?带你实时获取地球卫星图并设为桌面背景!真的很美!

     概述 为什么会突然写这样的一个脚本呢?因为今天同事突然说到:宇宙这么大,我们人这么渺小,那么在别人眼里我们的地球是什么样子的?问到这个话题我想很多人都会想起地球仪或者一系列的电视剧!蓝白相间是吧!所 ...

  4. 让地球的实时美丽照片显示在你的Mac桌面上-即刻地球 mac中文版

    如果您想领略地球的实时美丽照片,那么即刻地球 mac版这款4K高清实时地球壁纸软件是您的不错选择!即刻地球通过涓流下载的方式获取资源,占用极少的的网速.当设备在执行其它复杂操作时,即刻地球会自动避开图 ...

  5. 从Google卫星地图服务器上获取卫星照片的方法

    随着Google公司2005年推出基于客户真个GoogleEarth和基于web的GoogleMaps(http://maps.google.com)以来,在GIS行业无疑是掀起一次革命性的浪潮,成为 ...

  6. 【转】异常清晰GeoEye-1 卫星照片来了

    Google Earth 粉丝有福了,GeoEye 最新卫星 GeoEye-1 拍摄的高清照片已经传回,该照片拍的是宾西法尼亚的 Kutztown 大学.Google Earth 最终将采用这些照片. ...

  7. 谷歌有超清实时卫星地图吗?

    谷歌有超清实时卫星地图吗? 答案是没有! 为什么呢? 因为谷歌卫星地图的卫星图数据都是购买来自几个国际大的卫星图公司,卫星公司的卫星绕地球一圈是需要时间的,卫星造价昂贵也不可能在同步轨道卫星盯着一个地 ...

  8. 谷歌有超清实时卫星地图吗?答案是没有

    谷歌有超清实时卫星地图吗? 答案是没有!那些打着谷歌超清实时卫星地图的口号的人(网站)都是骗子! 为什么呢? 因为谷歌卫星地图的卫星图数据都是购买来自几个国际大的卫星图公司,卫星公司的卫星绕地球一圈是 ...

  9. python3 获取当前路径_如何使用python3获取当前路径及os.path.dirname的使用

    这篇文章主要介绍了如何使用python3获取当前路径及os.path.dirname的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一: ...

  10. python3文件下载-python3获取文件中url内容并下载代码实例

    这篇文章主要介绍了python3获取文件中url内容并下载代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #!/usr/bin/env py ...

最新文章

  1. Java虚拟机详解(五)------JVM参数(持续更新)
  2. 【PAT乙级】1090 危险品装箱 (25 分)
  3. 为什么安装Android SDK后无法安装flatform?
  4. 链接器工具错误 LNK2019 必须在友元声明中显式指定模板参数
  5. 2017.4.2 loli测试
  6. 使用对称加密来加密Spring Cloud Config配置文件
  7. TCP网络通讯如何解决分包粘包问题
  8. 计算机无法播放flash,电脑中已安装Flash网页视频还是提示未安装Flash播放器怎么办...
  9. C语言——蔡勒(Zeller)公式的使用
  10. 计算机主板外部接口功能,笔记本电脑主板接口功能分享
  11. webrtc整体框架
  12. 如何加水印在图片上面?
  13. 906. 超级回文数
  14. 7-46 新浪微博热门话题 (30分)
  15. 苹果摄像头黑屏_品牌借势:苹果12发布会,王守义十三香领衔,杜蕾斯再出手...
  16. APK Multi-Tool(反编译工具)教程
  17. 怎么生成html链接,终于认识如何创建网页超链接
  18. UVA1445 Cubist Artwork
  19. Gitlab 可以push但web端不显示文件
  20. elementui的使用问题

热门文章

  1. 数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发【转】...
  2. MeScroll 移动端刷新,分页
  3. 什么是脏数据,缓存中是否可能产生脏数据,如果出现脏数据该怎么处理?
  4. 面试必问JavaScript基础面试题(附答案详解)
  5. 贝叶斯公式的最通俗解释
  6. magisk卸载内置软件_手机发烧友必备之 Magisk
  7. 太强了 GitHub中文开源项目榜单出炉,暴露了程序员的硬性需求
  8. python使用百度翻译api
  9. 电子元件识别 测量
  10. 使用ESAPI 解决veracode 漏洞