首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

就是想看星星而已嘛,要整这么复杂吗?

看星星除了得看月亮的脸色外,还得看老天爷的心情,月相查一下中国的农历就知道了,而老天爷的心情可是说变就变。中国这么大,在有空的时候怎么才能知道自己该去哪里呢?记得前年的暑假,琢磨着去哪里的时候,第一个想到的当然是沙漠,所以去了巴丹吉林,也只有我这种BT在夏天跑沙漠去了。但是沙漠那边也并非天天都是晴天。

所以,我想可不可以根据天气的历史数据,计算出某一天某个地方出现晴天的概率是多少,虽然没那么准确,但是至少可以作为一个出行的参考。

首先要收集到至少几年最好是几十年内中国所有地区的天气信息。那到什么地方找呢? 第一想到的是中国气象局的数据中心,上去一看,我也不想说什么,对中国的这些什么局提供的服务只能是呵呵!

中国是1951年加入的WMO世界气象组织的,按照组织的条款,天气数据在各成员国间是要共享的,毕竟地球只有一个,天气也不分国界,共享可以更好的来应对各种气候变化,灾难天气!在 WMO 网站的中国页面显示了登记在案的地面及高空气象站,一共 423 个。

WMO 有个全球观测系统:Global Climate Observing System (GCOS) ,收集到的数据放在美国国家海洋和大气管理局的国家气候数据中心:

可以在线查询,也可以通过 HTTP/FTP 下载数据。https://www1.ncdc.noaa.gov/pub/data/ghcn/daily/ghcnd-stations.txt ,这个文件里包含了全球所有提供数据的气象站列表,中国的代号是CH,过滤了一下,才229个气象站,而中国有近三千多个县城。估计只上报了地级市这一级别的气象站数据。

考虑到如今城市的光污染,这些数据完全是无用的唉!怎么办??只能退而求其次,既然没有真实的当天的天气数据,那么历史上当天的天气预报数据可能能找到吧,毕竟天气预报的网站那么多。

于是找到了几个网站:天气后报,2345 天气网,东方天气网等。数据都差不多,但是相对来说,东方天气网的 HTML 源码结构化相对较好,方便爬虫来解析爬取。如下的这一个页面里就包含了全国3166个区县的历史数据获取地址:

而对于每个区县的历史上某个月的天气信息即为上面的地址加上年月,访问这个地址就得到了天气信息,比如,深圳2017年4月份的地址:http://tianqi.eastday.com/shenzhen_history/59493_201704.html

接下来轮到美妙的汤 BeautifulSoup 出场了。它是 Python一个html,xml文件的解析库。只要通过http request 获取某个页面的html源码,可以通过它非常便捷的获取到想要的数据:

再 hist_weather.insert_many(d)保存到mongodb数据库。从2012年1月到2018年3月,一共 6503538 条数据,原材料准备完毕,接下来就可以用 pandas 做统计分析了。

清明节马上要到了,想看看什么地方晴天率最高? 先从mongodb获取所有的数据,筛选出4月4,5,6,7 这几天的全国区县天气数据,然后对地名进行分组得到历史上每一年这几天的天气情况,算出晴天的概率!

晴天率大于 80%的城市一共32个,列表如下:

这样看不是很直观,虽然有省份信息,但是不知道这些地方到底在中国的哪里,最好是能在地图上显示出来。 伟大的Google被伟大的中国防火墙给墙了,而且地图也被强制偏移,所以只能用百度的数据了。先通过地名调用百度的API来获取经纬度信息,比如齐齐哈尔为:{'lat':47.34769981336638,'lng':123.9872889421725}

再用百度的 Echarts 来把数据可视化,可以看到清明时节的确雨纷纷啊,全国大部分地区都沦陷了~~~!

再来看下北半球三大流星雨之一的英仙座流星雨,2018年的极大值出现在8月12,13日,下图是这两天晴天率最高的地方。看来暑假得跑新疆或者内蒙了!

以上仅仅统计了2012到2018年的天气情况,而且是天气预报的数据,所以不一定准确,只能作为参考。尤其像西藏,比如拉萨的天气预报都是阵雨,但是大家知道高原的天气,也就每天下一两场雨,晚上反而因为白天的雨而通透无比!

要是有全国三千多个区县,每小时真实的观测数据就好了,咳咳咳!如果大家有资源可以联系我,万分感谢!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402G1TSMD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券