Python 定时获取卫星图像做为桌面背景


简介

这两天看新闻的时候,突然发现最近有个台风产生,并且在不断的增强中。幸运的是从中央气象台预报的路径来看,不会登陆我国。也正是通过这则新闻,我发现了一个不错的卫星云图网站。

向日葵-8号实时网页

简单的介绍一下,向日葵-8号是日本气象厅的一颗气象卫星,于2014年10月7日发射。设计寿命15年以上,主要用于检测暴雨云团、台风动向和火山活动等防灾领域。

因为是日本的网站,所以访问的速度可能会比较慢。网页截图如下:

下面我将简单的介绍一下如何将这个网站上定时更新的卫星云图爬取下来,设置为自己的电脑桌面。这样每时每刻你都可以关注到西太平洋上空的动态了。哈哈哈哈~

Python实现思路

1. 获取卫星云图

由于这个是日本的网站,所以访问的速度可能会有点慢。但是只要能够正常访问就都不是问题。
首先对这个网站进行分析,打开firebug看看先:

从图中,我们可以看到只要获取图片的链接,用get方法就能够直接下载到本地了。因此要获取这个网站的图片是非常的简单的,如果会一点python爬虫知识,很容易就能够将这张图片爬取下来。选择就是具体的分析一下图片的链接是这么组成的呢?

http://himawari8-dl.nict.go.jp/himawari8/img/D531106/thumbnail/550/2018/09/26/063000_0_0.png

为了便于理解,我把它拆分为以下几条:

链接段 意思(我猜的)
http://himawari8-dl.nict.go.jp/ 网站域名
himawari8/ 卫星名字:向日葵8号
img/ 图片
D531106/ 布吉岛
thumbnail/ 布吉岛
550/ 卫星图像像素
2018/09/26/ 卫星图像日期
063000_0_0 卫星图像时间(GMT:格林威治标准时间)
.png 图像格式(GMT:格林威治标准时间)

好了,通过上面的分析,我们其实只要修改卫星图像日期卫星图像时间就可以获取你想要的时间段的卫星图像图片了。但是要注意的是,你不可能获取未来的图片。

接下来贴上程序:

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#
# @Version : 1.0
# @Time    : 2018/9/25
# @Author  : 圈圈烃
# @File    : NICT_download
# @Description: http://himawari8.nict.go.jp/ 向日葵8号卫星实时图片下载
#
#
from PIL import Image
import requests
import re
import datetimedef download_img(url, img_save_path):img = requests.get(url)with open(img_save_path, "wb") as fwi:fwi.write(img.content)print(img_save_path + "图片下载成功")def fill_img(img, img_save_path):width, height = 1920, 1080      # 电脑屏幕大小new_img = Image.new(img.mode, (width, height), color='black')new_img.paste(img, (int(width/2 - 250), int(height/2 - 250)))new_img.save(img_save_path)print(img_save_path + "图片合成成功")def dl_main():# 获取当前系统时间utc_today = datetime.datetime.utcnow() - datetime.timedelta(minutes=30)  # 获取GMT时间并减去30分钟delat_utc_today = utc_today.strftime("%Y/%m/%d/%H%M")  # 时间格式化# 分钟向下取整delat_utc_today_list = list(delat_utc_today)delat_utc_today_list[-1] = "0"delat_utc_today = "".join(delat_utc_today_list)# 整合为链接 格式为:http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/2018/09/25/065000_0_0.pngimg_url = "http://himawari8-dl.nict.go.jp/himawari8/img/D531106/1d/550/" + delat_utc_today + "00_0_0.png"name = delat_utc_today.replace("/", "_") + "00_0_0.png"  # 获取图片名字# 图片保存路径img_save_path = "Download_Picture/" + namenew_img_save_path = "Wallpaper/new_" + name# 下载图片download_img(img_url, img_save_path)# 合成图片img = Image.open(img_save_path)fill_img(img, new_img_save_path)return new_img_save_pathif __name__ == '__main__':dl_main()

在上面的程序中,有个 fill_img(img, img_save_path) 函数,由于我们获取的卫星图像的大小为550*550,直接作为背景不好看,所以在这里对这个图片进行填充,填充背景为黑色。至于最后图片的大小可以根据自己显示器的屏幕大小来修改。

2. 设置桌面背景

成功获取图片之后就是将获取的图片设置为左面的壁纸了,我的系统是win10,亲测可用。

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#
# @Version : 1.0
# @Time    : 2018/9/25
# @Author  : 圈圈烃
# @File    : Auto_Wallpaper
# @Description: 自动设置桌面壁纸
#
#
import win32api, win32con, win32gui
import NICT_Downloaddef set_desktop_windows(imagepath):k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "2")  # 2拉伸适应桌面,0桌面居中win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, imagepath, 1 + 2)if __name__ == '__main__':print("正在下载图片")try:new_img_save_path = NICT_Download.dl_main()except Exception as e:print(e)# 这里的路径必须为绝对路径wallpaper_path = "D:\\Users\\Administrator\\Documents\\Python Files\\Auto_Background\\" + new_img_save_pathset_desktop_windows(wallpaper_path)

效果图为:

3. 开启定时更新

为了实现能够定时更新桌面的卫星图像,我们需要设置定时任务。通过分析可知,向日葵-8号实时网页每隔10分钟会更新图片,所以我们也设置为10分钟更新一次。

  1. 打开 win10 的计划任务程序
  2. 创建任务
  3. 填写任务名称
  4. 新建触发器,如图设置
  5. 新建操作,如图设置,这里注意一点:不要用python.exe 打开py文件,使用pythonw.exe 打开pyw文件。这样就不会出现哪个黑色的cmd窗口。
  6. 接下来就是一直“确定”。
  7. 完成设置

最后

实现效果:

希望对大家有所帮助!:-)

Python 定时获取卫星图像做为桌面背景相关推荐

  1. python浪漫文艺_从零开始,如何用python定时更新炫酷文艺的桌面背景

    先介绍一个网站--句子迷,网站上有众多网友分享的经典句子,我们将搜索我们喜欢的作者,爬取所有该作者的名句. 我们利用selenium来进行可视化的爬虫,首先要pip install selenium, ...

  2. 【Python】定时获取卫星地球图像作为电脑壁纸

    虽然网上关于这个的教程不少,但是写在这里,就当作自己的学习记录吧. 开发工具:Python 3.7 环境:win10 图像来源:日本himawari-8气象卫星官网 思路:利用爬虫从官网抓取图像,然后 ...

  3. Python定时获取外网IP地址并发送邮件

    去年入手了树莓派4B,放在家里当服务器用.由于电信公网IP经常更换,所以需要定期获取公网IP才能连上. import os import threading from smtplib import S ...

  4. python海康威视网络摄像头_OpenCV:非海康威视大华宇视(其他)网络摄像头IPC 二次开发(Python)获取视频图像...

    # -*- coding: UTF-8 -*- # ! /usr/bin/python import cv2 # 参数 # -------------------------------------- ...

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

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

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

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

  7. 每天定时获取必应每日一图并保存做壁纸

    每天定时获取必应每日一图并保存做壁纸 ​ 必应每天会更新每日一图,这些图片都是特别好看,适合做封面壁纸等等.我做了一个自动脚本,让它每天定时获取每日一图,然后设置为个人主页博客的封面,封面和背景一共九 ...

  8. Python 把OpenCV 获取的图像传递到C

    Python 把OpenCV 获取的图像传递到C 2016年10月11日 14:47:49 阅读数:1946 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创建Py ...

  9. 如何把OpenCV Python获取的图像传递到C层处理

    原文:https://blog.csdn.net/yushulx/article/details/52788051 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创 ...

  10. A311D用工业相机APP获取raw图像并做各种格式转换

    A311D用工业相机APP获取raw图像并做各种格式转换 目录 主要涉及的知识点有: 2 RAW 图格式转换(主要意义) 2 Android 通用串口通信,及usb转串口通信 2 1先创建androi ...

最新文章

  1. laravel 模型查找数据
  2. C~K要找女朋友了!!!_JAVA
  3. 跟锦数学190314
  4. Linux shell 条件判断if
  5. [DeeplearningAI笔记]卷积神经网络2.9-2.10迁移学习与数据增强
  6. leetcode 304. Range Sum Query 2D - Immutable |304. 二维区域和检索 - 矩阵不可变(二维前缀和问题)
  7. 【渝粤题库】陕西师范大学163112 旅游管理英语听说 作业 (高起专)
  8. xyz坐标图_“色觉地图”的建立(二):辐照度与亮度、rgb空间、“颜色图”的混色方式...
  9. asp.net中Roles和User的异常处理机制的思考
  10. 将Kinect的v2.0 Motion存储到BVH文件中
  11. 最新python招聘_重磅 | 最新报告:会Python竟成四大招人硬性指标?
  12. python socketserver并发实例
  13. Rust: rev()、Vec、其它
  14. windows文件自动同步
  15. 柠檬班python自动化百度云_柠檬班python
  16. 感恩2020,期待2021
  17. 网站的权重怎么计算以及网站降权的分析处理方法
  18. (最全干货分享)渗透测试全流程归纳总结之二
  19. python django 动态网页_Django创建动态网页的基础知识
  20. 纽约大学计算机与科学,纽约大学计算机科学专业排名第30(2020年USNEWS美国排名)...

热门文章

  1. SVN :找不到这样的主机
  2. vs2017 自定义背景图片
  3. 接力队选拔matlab,这是我见过的操作最好的接力队之一= =
  4. amazon alexa simple demo code for libcurl
  5. RestTemplate源码剖析:Encode
  6. NIKE ZOOM ASTORIA SKY HI ACG (MUSTARD/TAN)
  7. 知言:《第一行代码》作者郭霖:不要成为工具的奴隶
  8. 第1章Activity的生命周期和启动模式
  9. 自定义View之MultiStateView根据不同状态显示不同布局的View(雷惊风)
  10. 远程启动IDEA时报错Startup Error: Unable to detect graphics environment