1980年1月1日~2022年1月31日中国各城市逆温数据&每年各城市逆温天数数据(空气污染影响相关研究的工具变量)

前几天给大家分享了一份 1980年1月1日~2022年1月31日的逆温数据:中国各区县逆温数据(1980年1月1日~2022年1月31日),今天我们再更新份城市版的。

×

首先我们先了解下逆温。正常情况下,海拔越高,气温越低,但是有时候会出现海拔高的地方气温反而更高,这个时候冷空气在下方,空气不易流通,污染物扩散慢。这种现象称为逆温,由于逆温对污染物扩散的外生性和相关性,所以逆温是研究空气污染影响很好的工具变量。

逆温的衡量计算方法有很多,这里我们采用 Shuai Chen(2018)中的方法进行计算:

图表

不过文中对这种逆温的衡量计算方法并不完全准确,NASA 的 MERRA-2 数据集提供了 0.5 度×0.625度分辨率、42 个气压层(不同的海拔有着不同的气压)的气温等数据,但是并不是每个格点在 42 个气压层都有数据,例如青藏高原的海拔在 5000 m 以上,底部很多气压层是没数据的:

library(terra)
rast("data/MERRA2_100.inst6_3d_ana_Np.19900718.SUB.nc") -> rst
cairo_pdf("levtemp.pdf", width = 10, height = 10)
plot(rst)
dev.off()
图表

所以我们计算逆温的应该采用每个格点近地的第一层和第二层(也就是最开始有数据的两层)。

因此我们可以通过下面的流程计算中国各城市的逆温:

过几天会开设专题课程讲解逆温的计算,敬请期待。

  1. 从 NASA 下载 1980 年至今的 MERRA-2 数据:https://disc.gsfc.nasa.gov/datasets/M2I6NPANA_5.12.4/summary (需要登陆注册);
  2. 从下载到的 netCDF 数据提取近地的第一、二、三层数据(第三层数据可以用来进行稳健性分析),例如 1990 年 7 月 18 日的:
第一层 第二层 第三层
  1. 把栅格数据准换成城市面板数据(使用的是 2021 年中国市级行政区划):
2022-01-31中国各城市近地第一层平均气温
  1. 比较第一层和第二层的平均气温就可以判断逆温情况了,如果第二层的气温高于第一层就是逆温,差值就是逆温强度,反之就不是逆温,逆温强度为 0(每天都有四个时点的数据,只有有一个时点的结果是逆温当天就视为逆温天);
  2. 另外可以使用一三层的温度进行比较得到逆温2 和逆温强度2 用于稳健性检验。

经过上述的计算就得到了 1980年1月1日~2022年1月31日的城市逆温数据:

1980年1月1日~2022年1月31日各城市逆温数据.rds

这个文件的大小为 1.47GB (使用 R 语言的 readr::read_rds() 函数读取),为了方便大家使用,我把数据拆分成了每年的 xlsx 文件:

图表

该数据包含如下变量,各个变量的含义如下:

  • date:日期
  • year:年
  • month:月
  • day:日
  • 省:省份名称
  • 省代码:省份行政区划代码
  • 市:城市名称
  • 市代码:城市行政区划代码
  • T1_layer1:0 点近地第一层的平均气温
  • T1_layer2:0 点近地第二层的平均气温
  • T1_layer3:0 点近地第三层的平均气温
  • T2_layer1:6 点近地第一层的平均气温
  • T2_layer2:6 点近地第二层的平均气温
  • T2_layer3:6 点近地第三层的平均气温
  • T3_layer1:12 点近地第一层的平均气温
  • T3_layer2:12 点近地第二层的平均气温
  • T3_layer3:12 点近地第三层的平均气温
  • T4_layer1:18 点近地第一层的平均气温
  • T4_layer2:18 点近地第二层的平均气温
  • T4_layer3:18 点近地第三层的平均气温
  • T1_thermal_inv12:0 点根据一二层计算的逆温强度
  • T2_thermal_inv12:6 点根据一二层计算的逆温强度
  • T3_thermal_inv12:12 点根据一二层计算的逆温强度
  • T4_thermal_inv12:18 点根据一二层计算的逆温强度
  • T1_thermal_inv13:0 点根据一三层计算的逆温强度
  • T2_thermal_inv13:6 点根据一三层计算的逆温强度
  • T3_thermal_inv13:12 点根据一三层计算的逆温强度
  • T4_thermal_inv13:18 点根据一三层计算的逆温强度
  • thermal_inv_yesno12:根据一二层判断当天是否是逆温天
  • thermal_inv_yesno13:根据一三层判断当天是否是逆温天

进一步我们可以根据这份详细数据计算各个城市每年的逆温天数:

read_rds("1980年1月1日~2022年1月31日各城市逆温数据.rds") -> df

df %>%
group_by(year, 省, 省代码, 市, 市代码) %>%
summarise(days1 = sum(thermal_inv_yesno12),
days2 = sum(thermal_inv_yesno13)) %>%
ungroup() -> yeardf
yeardf

#> # A tibble: 15,953 × 7
#> year 省 省代码 市 市代码 days1 days2
#> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <dbl>
#> 1 1980 安徽省 340000 安庆市 340800 201 107
#> 2 1980 安徽省 340000 蚌埠市 340300 233 157
#> 3 1980 安徽省 340000 亳州市 341600 253 169
#> 4 1980 安徽省 340000 池州市 341700 209 140
#> 5 1980 安徽省 340000 滁州市 341100 223 129
#> 6 1980 安徽省 340000 阜阳市 341200 259 166
#> 7 1980 安徽省 340000 合肥市 340100 222 130
#> 8 1980 安徽省 340000 淮北市 340600 253 184
#> 9 1980 安徽省 340000 淮南市 340400 243 148
#> 10 1980 安徽省 340000 黄山市 341000 207 144
#> # … with 15,943 more rows

下图展示了 2021 年各个城市的逆温天数分布:

2021年中国各城市逆温天数

还挺有意思,原来华北地区的空气状况不好也跟逆温天太多有关系!

点击这里跳转到 RStata 短书平台获取附件:1980年1月1日~2022年1月31日中国各城市逆温数据&每年各城市逆温天数数据(空气污染影响相关研究的工具变量)

评论