在北京看场雪为什么这么难?

Aidan075
• 阅读 1336

↑关注+置顶~ 有趣的不像个技术号

在北京看场雪为什么这么难?


一下雪,北京就成了北平。

11月29日,北京2019年的“初雪”终于来了,

大家花式“秀雪”的视频和图片成功霸占了我的朋友圈。

在北京看场雪为什么这么难?

小五在北京待了快两年,表示看到北京的雪实在是太太太少了。

少到什么程度呢?

印象中一只手可以数出来。

口说无凭,拿数据说话吧~

获取数据

打开某度,搜索“北京历史天气”,随便打开了一个网站(注意避开广告),发现从2011年到昨天的北京历史天气都可以查询到。

在北京看场雪为什么这么难?

那我们下一步就是,

小五,上爬虫!

def get_data(year, month):  
    soup = get_soup(year, month)  
    all_weather = soup.find('div', class_="wdetail").find('table').find_all("tr")  
    data = list()  
    for tr in all_weather[1:]:  
        td_li = tr.find_all("td")  
        for td in td_li:  
            s = td.get_text()  
            data.append("".join(s.split()))  
    res = np.array(data).reshape(-1, 4)  
    return res

小五用python爬取得到了北京2011年1月-2019年11月的所有历史天气(包括天气、温度、方向),共3256条数据。

【完整爬虫代码和历史天气数据下载地址见文末】

为什么这么难?

我们接着说回北京初雪这件事,

说实话,查阅了历史数据,发现今年北京的这场雪下的竟然异常的“准时”。

怎么个准时法呢?

北京1961-2018年期间平均初雪日正是11月29日!

在北京看场雪为什么这么难?

根据中国气象报的统计数据,北京近些年似乎降雪越来越晚,2010年后多次出现第二年才降初雪的情况。

我们再看看北京每年到底有多少天降雪吧~

小五统计了北京市2011-2019年的各年下雪天数(只要当天的天气含有小雪、大雪就算下雪天)。

我最后甚至把雨夹雪都算上了,还是改变不了北京的降雪天数确实在逐年下降的事实。

最近的两年,北京每年只有四天下过小雪。

在北京看场雪为什么这么难?

结合前文的初雪日期分布图,我们可以明显看出北京确实下雪越来越晚,而且下雪天数也越来越少了。

难道是气温问题?

再用刚才爬取的北京市历史温度验证一下吧。

爬取得到的当日温度都是4℃/-5℃这种格式的,可以将最低最高温度算术平均作为当日的温度。

这样就可以成功得到北京市的气温走势图√

在北京看场雪为什么这么难?

额,

看的也不是太明显。

由于北方降雪主要是10月-2月期间,所以统计这段时间的日均温度就够了。

在北京看场雪为什么这么难?

秋冬季节的温度确实和当年降雪天数有关系,比如2011年气温高降雪就少,2012年气温低降雪就多。但又不太对,尤其最近几年,无论温度高低降雪都少。

经过小五又一番搜索,终于得知与北京郊区相比,北京城区可能受城市热岛效应影响,城区温度较高,确实不利于水汽的凝结。

但是气温并非是影响北京降雪的主要的因素,还有其他几个重要的原因:

  1. 气候干燥降水少。雪是由大量白色不透明的冰晶(雪晶)和其聚合物(雪团)组成的降水。如果没有足够的水分,是没法形成降雪的。北京入冬以来通常空气极度干燥,所以根本没有足够的水汽凝结成雪。

  2. 冷空气不足。降雪的形成需要冷空气和暖湿气流的共同作用。最近几年过境北京的大多都是比较弱的冷空气,真正强大的冷空气并没有几个,来了也不会持续多久,以至于雨滴根本来不及凝结成冰晶就又融化消散了。

  3. 地形影响。北京西部和北部群山环峙,冷空气很难及时攀越群山与水汽相遇。即便越过山脉,冷空气也会居高而下,直接将水汽一冲而散,故无法凝结成雪。

  4. 没有足够的信风条件。虽然靠近东方的渤海,但可惜北京是典型的季风气候,冬季多西北风,仍然很难将水汽带进来。

学习了一波地理知识的东北er朱小五,终于知道北京看场雪有多难了!

在东北,下大雪是要放假的。

那么北京,何时能下一场和东北一样,纷纷扬扬的鹅毛大雪呢?

平日的北京,太忙了,太快了

下雪后的北京,就真的变成闲适自在,静谧安稳的“北平”了吧!

最后,放张故宫博物馆的“宫猫”镇楼吧~

在北京看场雪为什么这么难?

相关爬虫源码和北京历史天气数据已上传github:https://github.com/zpw1995/aotodata/tree/master/interest/weather

作者:朱小五,互联网公司数据分析师。热衷于Python爬虫,数据分析,可视化,个人公众号《凹凸玩数据》,有趣的不像个技术号~

End

在北京看场雪为什么这么难?在北京看场雪为什么这么难?

在北京看场雪为什么这么难?

客官请留步,原创不易,整个**好看** ****在北京看场雪为什么这么难?****

本文转转自微信公众号凹凸数据原创https://mp.weixin.qq.com/s/lMPYr8EzwRga0V5lILXTkw,可扫描二维码进行关注: 在北京看场雪为什么这么难? 如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
4cast
4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:
Wesley13 Wesley13
2年前
KDE发布首个4.7 RC发行
KDEShipsFirst4.7ReleaseCandidateKDE发布首个4.7RC发行By:SebastianKügler,in:20110625,about;KDEOfficialNews发表于:2011年6月25日北京时间08:00KDEhasrelease
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Stella981 Stella981
2年前
OneAPM 技术公开课:北京,北京!
随着互联网行业的高速发展,数据库已经是绝大多数IT应用的核心因素,虽然数据库种类繁多,但是多层体系结构以及SOA的发展,使得应用逻辑的实现前移。数据库的性能与其功能相比较,变得越来越重要了。而对每个开发者或者DBA而言,都应该用更精深的方式来实现数据库性能的优化和改进。本次公开课由应用性能管理领军企业OneAPM主办,特别邀请了来
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这