这个是gitbub上的一个开源的python小项目,获取气象卫星拍下的实时的地球图片,作为电脑壁纸。



在太空,有一颗日本人发射的气象卫星——向日葵8号,我们的地球图片就来自她的镜头
基本思路是这样,弄清楚她提供的接口,然后转换一下时间,把图片下载下来,然后保存本地,修改为壁纸,大功告成
接口返回的图片是一块一块的感觉,每个块550 * 550像素,你可以请求4个块,每个块550 * 550,那么就会得到一个1100 * 1100分辨率的图片,同样,你可以请求16个块,就可以得到一个2200 * 2200分辨率的地球图片
代码如下

#coding=utf-8
import time
import sys
import json
import requests
from PIL import Image
from io import BytesIO
from datetime import datetime
from dateutil import tz
import win32api, win32con, win32gui
import os#这是图片的接口
conf = {'last_refresh_url': 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/latest.json',
'img_url_pattern': 'http://himawari8-dl.nict.go.jp/himawari8/img/D531106/%id/550/%s_%i_%i.png',
'scale': 1,
}def get_last_time():r = requests.get(conf['last_refresh_url'])# print('r.text',r.text)resp = json.loads(r.text)# resp = r.text# print('resp type',type(resp),resp)last_refresh_time = datetime.strptime(resp['date'], '%Y-%m-%d %H:%M:%S')return last_refresh_time# 转换时间
def utf2local(utc):from_zone = tz.tzutc()to_zone = tz.tzlocal()utc = utc.replace(tzinfo=from_zone)return utc.astimezone(to_zone)def download(args):scale = args['scale']fpath = ''png = Image.new('RGB', (550 * scale, 550 * scale))#还记得我前面说下载图片是一块一块嘛,把大图片分成行列分别下载for row in range(scale):for col in range(scale):strtime = args['time'].strftime("%Y/%m/%d/%H%M%S")url = conf['img_url_pattern'] % (args['scale'], strtime, row, col)print('url',url)r = requests.get(url)tile = Image.open(BytesIO(r.content))png.paste(tile, (550 * row, 550 * col, 550 * (row + 1), 550 * (col + 1)))if 'fout' in args:fpath = args['fout']else:fpath = "%s.bmp" % utf2local(args['time']).strftime("%Y/-%m/-%d/ %H.%M.%S").replace('/', '')png.save(fpath, "BMP")print('下载完成, 保存图片为 %s' % fpath)print('fpath',fpath)setWallPaper(fpath)#我默认scale=4了,这样的图片是2200*2200分辨率,现在大家的电脑普遍都1920*1080了吧
def get_last_image(fout=None, scale=4):last_refresh_time = get_last_time()args = {'time': last_refresh_time}args['scale'] = scaleif fout is not None:args['fout'] = foutdownload(args)pass#setWallpaperFromBMP 和 setWallPaper用于修改电脑壁纸
def setWallpaperFromBMP(imagepath):k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)win32api.RegSetValueEx(k, "WallpaperStyle", 0, win32con.REG_SZ, "6") #2拉伸,0居中,6适应win32api.RegSetValueEx(k, "TileWallpaper", 0, win32con.REG_SZ, "0")win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath, 1+2)def setWallPaper(imagePath):current_file_path = os.path.dirname(os.path.abspath(__file__))print(current_file_path)bmpImage = Image.open(imagePath)newPath = current_file_path + '\\nowimage.bmp'bmpImage.save(newPath, "BMP")setWallpaperFromBMP(newPath)def run(inc):while True:print('下载中......' )if len(sys.argv) == 1:get_last_image()elif len(sys.argv) == 2:get_last_image(fout=sys.argv[1])elif len(sys.argv) == 3:get_last_image(fout=sys.argv[1], scale=int(sys.argv[2]))print('over')time.sleep(inc)if __name__ == '__main__':#你可以传入参数#第一个参数是图片的保存位置#第二个参数影响图片分辨率,1->550*550 2->1100*1100 4->2200*2200run(600)#10分钟执行一次

地球就在那里没日没夜的运动(静止)宇宙如此深邃,黑暗,迷。什么才是我们存在的意义?

用python获取实时地球图像作为壁纸(windows)相关推荐

  1. ros web_video_server的使用及Python获取实时画面

    网络上看有人使用的是 uvc_camera 来提供视频源,但根据 http://wiki.ros.org/Sensors/Cameras 的列表可知,uvc_camera已不再维护,当然也可以直接参考 ...

  2. 免费的实时地球卫星图片壁纸Downlink for mac

    卫星同步实景地球壁纸软件Downlink良心推荐.Downlink mac版可以全天观察阳光和天气在地球上的移动,从不同的地球视角中进行选择,从热带地区的近景到美国大陆,再到来自3个不同的地球同步卫星 ...

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

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

  4. python实时股票数据折线图_如何用python获取实时的股票数据?

    您需要具备以下指示(以Python为例) 1.相关模块及应用原因 requests模块:用于想接口发送请求使用 multiprocessing模块:因为股票数量大单个循环发送请求效率太低,建议进行并发 ...

  5. 创业板股票如何在python取数_如何用python获取实时的股票数据?

    **最近捣鼓股票的东西,想看看股票的实时涨跌信息,又不想去看网上炒股软件现有的信息,所以寻思着自己写了一个Python的股票当前价格抓取工具:** 一.得到沪深两市的所有上市股票数据 考虑主要在东方财 ...

  6. python获取实时基金数据由银河证券提供_我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量...

    原标题:我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量 最近,越来越多的研究员.基金经理甚至财务会计领域的朋友,向小编咨询:金融人需要学Python么? 事实上在2019年,这已 ...

  7. python读awx云图_使用python获取实时卫星云图

    #coding:utf-8 #加载模块 import urllib2 import datetime #时间列表生成函数 def time_list(time_start,time_end,half_ ...

  8. Python—获取电脑的锁屏壁纸

    import os import shutil#锁屏壁纸文件目录,根据自己电脑文件位置更改 source_path = os.path.abspath(r'C:\Users\DBJ\AppData\L ...

  9. python获取实时股票价格_如何使用硒在网站上实时获取股票价格?

    您可以使用requests和BeautifulSoup来获得使用Ajax查询字符串调用提到的三个项目import requests from bs4 import BeautifulSoup url= ...

  10. python获取实时股票价格,python股票价格实时数据馈送(脚本调试)

    我才刚刚开始学习编码,如果这个问题很小,我想提前道歉.在 下面是我复制粘贴的脚本.在import urllib2 # works fine with Python 2.7.9 (not 3.4.+) ...

最新文章

  1. [转] linux系统文件流、文件描述符与进程间关系详解
  2. java源文件到字节码的命令,Java的源代码文件的扩展名是 ,Java源文件通过编译命令编译成的字节码文件(平台无关)的扩展名是 。...
  3. apt-get install用发
  4. java垂直拆分,MyCat分片:垂直拆分实例解析和代码实现
  5. 修改远程桌面端口_花生壳(内网穿透)服务做远程桌面登录
  6. [系统集成] CI持续集成项目简介
  7. shiro学习(4):shiro认证流程
  8. 微服务统一登录认证怎么做?JWT ?
  9. python跟php服务器对比_python学习笔记一和PHP的一些对比
  10. HDU 6312.Game-博弈-签到题 (2018 Multi-University Training Contest 2 1004)
  11. Web1.0、Web2.0、Web3.0的主要区别
  12. 封装一个帮助类来写文件到android外置存储器上
  13. 生态功能区划方法之二:生态服务功能重要性评价
  14. oracle11g磁盘阵列 pdf,融会贯通 从Oracle11g到SQL Server2008 中文PDF版 16.7MB
  15. java中用于定义小数的关键字_Java中用于定义小数的关键字有两个:() 和 (),后者精度高于前者。...
  16. 一个女孩跳楼看到的(漫画)
  17. 线性串联反馈式稳压电路原理分析
  18. String.format()详解与遇到的问题(UnknownFormatConversionException)
  19. FTP服务及部署YUM仓库与NFS服务!
  20. vue中实现浏览器全屏放大

热门文章

  1. 机友分享 | 基于Gokit+机智云的低成本MCU红外遥控器
  2. 雷达篇(十) dB和dBm的意义,功率W和dBm之间的换算
  3. SEGGER_RTT_printf()函数实现打印浮点、负数-示例
  4. excel VBA 编程,数据处理,并画图,详细代码,加解释
  5. js实现html页面转为pdf下载
  6. 网站全国公安机关互联网站安全服务平台备案流程
  7. 计算机设备码的功能,多功能修改电脑机器码序列号工具
  8. ankhsvn vs2017 64位下载 v2.7.12815
  9. Java怎么学?分享6个学习窍门
  10. 深度思考:到底什么是面向接口编程?