爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 208119|回复: 160

[源代码] 下载雷达反射率的爬虫

  [复制链接]

新浪微博达人勋

发表于 2018-9-18 17:42:48 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 忽忽儿 于 2018-9-18 17:52 编辑

想及时保存下雷达拼图,但是苦于网站保存期限过短,如果前一天有天气发生,可以用这个小程序把网站上的雷达拼图保存下来然后做动画,以便后期做分析哟~~
python初学者,是在前人的程序基础上修改的(参考的程序也是在家园里找的,但是2015年已经不能使用了,于是就在这个基础上改了一下),迫不及待想跟大家分享一下第一次用python编程成功的喜悦。程序还有很多不成熟或者啰嗦的地方,可以正常运行,如果有错误或修改意见望各位赐教!
源代码如下:

  1. # -*- coding: utf-8 -*-

  2. """
  3. wget radar png from 中国天气网
  4. @author: kaobozai
  5. """

  6. import os
  7. import time
  8. import pandas as pd
  9. import numpy as np


  10. # 输入前一天选定站点雷达图的url(主要包括中国各区域、北京、天津等)
  11. def get_img(year_in, month_in, day_in, station_info, path_to_save):
  12.     hr = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17",
  13.           "18", "19", "20", "21", "22", "23"]
  14.     mi = ["00", "06", "12", "18", "24", "30", "36", "42", "48", "54"]
  15.     if station_info[1] == "z":
  16.         image_path = "00000"
  17.     if station_info[1] != "z":
  18.         image_path = "00001"
  19.     for hr_cell in hr:
  20.         hr_str = hr_cell
  21.         for mi_cell in mi:
  22.             mi_str = mi_cell
  23.             url_path = "http://pi.weather.com.cn/i/product/pic/l/sevp_aoc_rdcp_sldas_ebref_" + station_info + "_l88_pi_" + year_in + month_in + day_in + hr_str + mi_str + image_path + ".png"
  24.             save_path = path_to_save + station_info + "/"
  25.             os.system("wget -P " + save_path + " " + url_path)
  26.             flag = year_in + month_in + day_in + hr_str + mi_str
  27.             flag2 = "http://pi.weather.com.cn/i/product/pic/l/sevp_aoc_rdcp_sldas_ebref_" + station_info + "_l88_pi_" + year_in + month_in + day_in + hr_str + mi_str + image_path + ".png"
  28.             print(flag)
  29.             print(flag2)
  30.     return 1

  31. # 调用当天日期并计算前一天,输出数据下载成功与否的结果并压缩文件
  32. yesterday = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(time.time() - 86400)).split("-")
  33. yesterday1 = yesterday[0] + yesterday[1] + yesterday[2]  # type: str
  34. path_to_save = "./radar_img/"+yesterday1+"/"
  35. record = []
  36. # 选择下载的雷达站点
  37. radar = pd.read_csv('radar_site.txt')
  38. datax = np.array(radar['site'])  # 读取站点数据转化为nparray
  39. datay = np.array(radar['站名'])
  40. sitelistx = datax.tolist()  # nparray转化为list
  41. sitelisty = datay.tolist()
  42. a = input("Enter a site:")
  43. for i in range(0, 11):
  44.     if a == sitelisty[i]:
  45.         print(sitelistx[i])
  46.         station_info = sitelistx[i]  # 站点选择完毕
  47.         flag = get_img(yesterday[0], yesterday[1], yesterday[2], station_info, path_to_save)
  48.         if flag == 1:
  49.             record += [station_info + " !!!success!!!"]
  50.         else:
  51.             record += [station_info + "!!!fail!!!"]
  52. if os.system("tar -cvf  radar_img_" + yesterday1 + ".tar.gz " + path_to_save)==0:
  53.     record += ["tar file !!!success!!!"]
  54. else:
  55.     record += ["tar file !!!fail!!!"]
  56. for cell in record:
  57.     print(cell)
  58.     print(time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(time.time())))



复制代码

源代码文件和站点文本回复可见:
游客,如果您要查看本帖隐藏内容请回复







密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-22 07:16:06 来自手机 | 显示全部楼层
感谢分享,这是爬虫吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-22 09:30:07 | 显示全部楼层
感谢分享
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-9-22 10:07:35 | 显示全部楼层
学习一下!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-9-22 10:07:38 | 显示全部楼层
学习一下!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2018-9-22 10:43:28 | 显示全部楼层

厉害了,大波姐
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-23 08:32:13 | 显示全部楼层
来看看,一直没时间学啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-23 09:06:17 | 显示全部楼层
感谢分享,这是爬虫吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-9-23 09:20:53 | 显示全部楼层
rosecjm 发表于 2018-9-22 07:16
感谢分享,这是爬虫吗

是的 爬雷达图片的哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-9-23 10:44:43 | 显示全部楼层
谢谢楼主,你这是用哪个版本写的?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表